在这个特定的代码中,我有3个框当前显示在屏幕上。屏幕中央的框是我想要作为角色处理的框。屏幕顶部的框随机生成其中一个字符的图像,在本例中为红色框或蓝色框。例如,如果在顶部选择了红色框作为随机生成的图像,我希望玩家点击将被视为角色的红色框。如果这个人由于顶部的方框而点击了正确的方框,我希望顶部的方框再次改变,因此在字符和顶部的方框之间创建一个循环。如果玩家点击错误的盒子,我会希望游戏结束。我做错了什么,更重要的是我该如何解决?这是我的代码:
local imageFiles = {"bluebox.png", "redbox.png"}
local imageFile = imageFiles[math.random(2)]
local randomImage = display.newImage(imageFile, 40, 40)
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 randomize(event)
if button2 == randomImage then
(insert code here)
end
end
local function generate(event)
if button2 ~= imageFile then
storyboard.gotoScene ("restartEasy")
elseif button2 == imageFile then
(insert code here)
end
end
button1:addEventListener("tap", randomize)
button2:addEventListener("tap", generate)
答案 0 :(得分:1)
if button2 ~= imageFile then
elseif button2 == imageFile then
您正在将图像与字符串进行比较。这永远不会奏效。但是现在让我们忽略它。
虽然我不熟悉Corona,但我相信randomImage
永远不会与button1
或button2
相等,因为它是一个单独的图像(具有独立的坐标和/或尺寸)。
我在第二次调用group:insert()
后立即用以下行替换您的随机选择代码(前三行):
local one_or_two = math.random(2)
local endGameButton, shuffleButton
if one_or_two == 1 the
endGameButton, shuffleButton = button1, button2
else
endGameButton, shuffleButton = button2, button1
end
最后,我用以下内容替换您的两条addEventListener
行
shuffleButton:addEventListener("tap", randomize)
endGameButton:addEventListener("tap", generate)
然后我会从您的功能中移除所有条件(if buttonX == whatever
),因为不再需要它们。
换句话说:每次点击某些内容(正如您现在所做的那样),而不是测试哪个按钮是随机按钮,我们会为每个按钮分配一个含义。
答案 1 :(得分:0)
好的,为了让顶部按钮与字符对应,我需要使用图像的png文件,而不是使用由这些png图像定义的变量。在这种情况下,而不是使用 如果button2 = randomimage 使用 if imageFile =" nameofimagefile.png"