Я делаю simon говорит игру с corona sdk, используя Lua в качестве основного языка, и я написал несколько функций. Когда я запускаю свой код, он успешно проходит первый цикл, но после того, как моя очередь нажимает на это поле, и после того, как я нажму на поле CORRECT, программа просто остановится и даст мне игру (после того, как она сообщила, что это правильно) , вместо повтора цикла и добавления другого шаблона шаблона к шаблону со случайным числом ... таким образом, снова запрашивая ввод пользователя в следующем порядке.Программа не зацикливается после первого
я задать начальные значения таковы:
started = false
pattern = true
gameOver = false
repeating = true
Вот часть моего кода: Начало функции:
function start()
--fix pat--
pat = {}
random = math.random(9)
patternIndex = 0
light = 2
clicked = 0
count = 0
end
ожидание функции:
function wait(seconds)
local _start = os.time()
local _end = _start+seconds
while (_end ~= os.time()) do
end
end
clickedNot функции :
function clickedNot()
if(clicked ~= 0) then
--if ur right--
if(pat[patternIndex] == clicked) then
print("ur right!")
print("patternIndex: "..patternIndex)
patternIndex = patternIndex + 1
print("patternIndex after ++: "..patternIndex)
print(table.getn(pat))
print("light: "..light)
repeating = true
end
if(pat[patternIndex] ~= clicked) then
gameOver = true
gameoverText = display.newText("Game Over!", 0, 0, native.systemFont, 40)
gameoverText.x = display.contentWidth/2
gameoverText.y = display.contentWidth/4
gameoverText:setTextColor(255,110,110)
print("Game Over")
end
end
end
Здесь я называю выше функция:
function onTouchListener(event)
if (pattern == false and gameOver == false) then
if(event.target == btnclick1) then
count = 1
clicked = 1
elseif(event.target == btnclick2) then
count = 1
clicked = 2
elseif(event.target == btnclick3) then
count = 1
clicked = 3
elseif(event.target == btnclick4) then
count = 1
clicked = 4
elseif(event.target == btnclick5) then
count = 1
clicked = 5
elseif(event.target == btnclick6) then
count = 1
clicked = 6
elseif(event.target == btnclick7) then
count = 1
clicked = 7
elseif(event.target == btnclick8) then
count = 1
clicked = 8
elseif(event.target == btnclick9) then
count = 1
clicked = 9
end
paint()
clickedNot()
elseif (gameOver == true) then
start()
gameOver = false
end
end
btnclick1: addEventListener("touch", onTouchListener)
btnclick2: addEventListener("touch", onTouchListener)
btnclick3: addEventListener("touch", onTouchListener)
btnclick4: addEventListener("touch", onTouchListener)
btnclick5: addEventListener("touch", onTouchListener)
btnclick6: addEventListener("touch", onTouchListener)
btnclick7: addEventListener("touch", onTouchListener)
btnclick8: addEventListener("touch", onTouchListener)
btnclick9: addEventListener("touch", onTouchListener)
Наконец, здесь является основной функцией с алгоритмом «подключение петлей»
function starting(event)
if (event.phase == "began") then
startText.isVisible = false
if (started == false) then
started = true
end
start()
count = count + 1
onTouchListener(event)
---------------------------------
print("count: "..count)
while (repeating == true) do
print("repeatedddd")
if (started == true) then
print("hello")
--if started--
----------------------------------------------
if(count%20 == count - math.floor(count/20)*20) then
clicked = 0
while(light >= 0) do
light = light - 1
print(light)
end
end
if (pattern == true) then
if (light <= 0) then
wait(1)
if (patternIndex >= table.getn(pat)) then
--randomizes lights--
clicked = math.random(0,8)+1
table.insert(pat,clicked)
patternIndex = 1
pattern = false
print ("box: "..clicked)
print("element 1 in pattern: "..pat[1])
wait(1)
print("your turn")
print("size of array: "..table.getn(pat))
repeating = false
else
clicked = pat[patternIndex]
patternIndex = patternIndex + 1
print("lights up random box")
print (clicked)
wait(1)
end
light = 1
end
elseif (patternIndex == table.getn(pat)) then
pattern = true
patternIndex = 0
light = 2
wait(1)
print("your turn ended")
print(pat[patternIndex])
end
end
end
end
end
startText: addEventListener("touch", starting)
Просьба игнорировать операторы печати, как он был использован для отладки проблемы! Спасибо!
Вы должны удалить Java-тег – Jan
Это не код Java. – Andrew
Ох. К сожалению! Сожалею! Я просто удалил его – Alanhjkim