如何在两个函数之间创建一个循环?

我想制作一个游戏,玩家需要根据屏幕上显示的图像点击相应的图像。如果上面的图像是红色的,我希望玩家点击红色的角色;如果图像是蓝色的,我希望玩家点击蓝色的角色。如果玩家点击了错误的角色,游戏就会结束。我的代码问题在于,每当上面的图像颜色改变时,我希望玩家需要点击的角色也会相应改变。举个例子,当我开始游戏时,上面的红色图像出现了。因为红色图像在上面,所以玩家应该点击红色角色。当上面的图像从红色变成蓝色时,我希望玩家将点击蓝色角色而不是红色角色。问题是,如果我在这种情况下点击蓝色角色,玩家会输掉游戏。我该如何解决这个问题?

function scene:createScene ( event )
local group = self.view

local tap = display.newText("Tap:", 0, 0, "Helvetica", 36)
tap.x = 100
tap.y = screenTop + 20
group:insert(tap)

local imageFiles = {"redbox.png", "bluebox.png"}
local imageFile = imageFiles[math.random(2)]
local randomImage = display.newImage(imageFile, centerX, screenTop + 20)

local button1 = display.newImage("redbox.png")
button1.x = centerX
button1.y = centerY
group:insert(button1)

local button2 = display.newImage("bluebox.png")
button2.x = centerX
button2.y = centerY - 100
group:insert(button2)

local function endGame(event)
if imageFile == "redbox.png" then
button1.x = math.random( 55, 300)
button1.y = math.random( 55, 300)
button2.x = math.random( 55, 300)
button2.y = math.random( 55, 300)
local imageFile = imageFiles[math.random(2)]
local randomImage = display.newImage(imageFile, centerX, screenTop + 20)
else
storyboard.gotoScene( "restartEasy" )

end
end

local function endGame2(event)
if imageFile == "bluebox.png" then
button1.x = math.random( 55, 300)
button1.y = math.random( 55, 300)
button2.x = math.random( 55, 300)
button2.y = math.random( 55, 300)
local imageFile = imageFiles[math.random(2)]
local randomImage = display.newImage(imageFile, centerX, screenTop + 20)
else
storyboard.gotoScene("restartEasy")

end
end

button1:addEventListener("tap", endGame)
button2:addEventListener("tap", endGame2)
点赞
用户4673197
用户4673197

根据我理解,你使用 imageFile 变量来表示用户将要点击的类型。使用 button1 表示红色框,button2 表示蓝色框。每次点击后,如果点击正确的按钮,则重新定位 button1button2,并将 imageFile 重置为新的随机类型。

如果是这样的话,你只需要将 endGameendGame2 函数中的 local 关键字删除。imageFile 变量引用了外部的变量,但当你声明一个本地的 imageFile 变量时,它会覆盖外部变量,导致不起作用。

2015-03-19 05:29:19