2014-09-13 6 views
0

Я пытаюсь остановить 3 анимации в моей функции, когда она достигает определенной точки, а затем отобразить сообщение «Анимация остановлена».Нужна помощь при остановке функций в короне

Как мне это сделать? Я знаю о display.NewText(), но как я могу остановить анимацию и получить сообщение одновременно?

Вот функция, которую я пытаюсь остановить.

WIDTH = display.contentWidth 
HEIGHT = display.contentHeight 
--displays background 
local s = display.newImageRect("space.png" ,1136, 640) 
s.x = 900/2 
s.y = 500/2 

--display main ship 
local r = display.newImageRect("ship.png", 70, 70) 
r.x = 20 
r.y = 450 

local minions = {} 

function createMinions() 
    local x = 40 
local y = 120 
for n = 1, 20 do -- displays 20 minions 
    local minion = display.newImageRect("minion.png", 50, 50) 
    minion.x = x 
    minion.y = y 

    minions[n] = minion 
    x = x + 60 -- next enemy will be to the right 
    if x >= WIDTH then -- start a new row if necessary 
     y = y + 60 -- seperation between minions 
     x = 40 
     end 
    end 
end 

--display mothership 
m = display.newImageRect("mothership.png", 150, 150) 
m.x = 160 
m.y = 10 

function nextFrame() 
-- begins movements of main ship to right 
r.x = r.x + 5 
if r.x > 350 then 
    r.x = -100 
end 
-- begins movement of minions to the left 
    for i = 1, 20 do 
     local minion = minions[i] 
     minion.x = minion.x - 8 
     if minion.x < -100 then 
      minion.x = 400 
     end 
    end 
--begins movement of mothership towards small ship 
    m.y = m.y + 10 
    if m.y > 460 then 
     m.y = -100 
    end 
    --stops all animations 
    if m.y > 450 then 
     --r.x = r.x + 0 
     --m.y = m.y + 0 
     --minion.x = minion.x + 0 
     local s = true 
     --displays game over text 
     s = display.newText("Game Over", WIDTH/2, 400, native, 30) 

    end 

end 
createMinions() 

Runtime:addEventListener("enterFrame", nextFrame) 

--hides status bar 
display.setStatusBar(display.HiddenStatusBar) 
+0

Что значит, что вы пытаетесь «остановить» его? Просто перестань называть его? Вам нужно показать нам, где вы звоните, чтобы мы рассказывали вам, как остановить его. –

+0

Хорошо, просто выложил весь сценарий из короны. Я просто хочу, чтобы все объекты в моей анимации остановились, как только m.y> 450 и отобразили игру над значком – Chris

+0

Просто оберните ее все в'if (m.y <450), затем YOURCODE end' –

ответ

0

Просто сделать это очень короткий -

Это код специфичны для вашей проблемы.

if(m.y < 450) then YOURCODE else DISPLAYTEXTCODE end 

На будущее я предлагаю людям, чтобы посмотреть на:

Corona Docs: API > Libraries > Transition > To - Для перемещения экранных объектов.

и

Corona Docs: APi > Types > EventListener > addEventListener - Для запуска кода на основе событий.

Смежные вопросы