需要帮助在Corona中停止函数。

当函数达到某个点时,我想停止其中的 3 个动画,然后显示一条消息“Animations Stopped”。

我该如何实现呢?我知道 display.NewText() 可以在屏幕上显示文本消息,但如何停止动画并同时显示消息呢?

以下是我尝试停止的函数。

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

-- 显示主飞船
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 -- 显示 20 个小兵
    local minion = display.newImageRect("minion.png", 50, 50)
    minion.x = x
    minion.y = y

    minions[n] = minion
    x = x + 60  -- 下一个敌人将位于此敌人的右侧
    if x >= WIDTH then  -- 如果需要,开始一个新的行
        y = y + 60 -- 小兵之间的间隔
        x = 40
        end
    end
end

-- 显示巨母舰
m = display.newImageRect("mothership.png", 150, 150)
m.x = 160
m.y = 10

function nextFrame()
-- 开始向右移动主飞船
r.x = r.x + 5
if r.x > 350 then
    r.x = -100
end
-- 开始向左移动小兵
    for i = 1, 20 do
        local minion = minions[i]
        minion.x = minion.x - 8
        if minion.x < -100 then
            minion.x = 400
        end
    end
-- 开始朝向小飞船迫近的大型飞船运动
    m.y = m.y + 10
    if m.y > 460 then
        m.y = -100
    end
    -- 停止所有动画
    if m.y > 450 then
        --r.x = r.x + 0
        --m.y = m.y + 0
        --minion.x = minion.x + 0
        local s = true
        -- 显示游戏结束文本
        s = display.newText("Game Over", WIDTH/2, 400, native, 30)

    end

end
createMinions()

Runtime:addEventListener( "enterFrame", nextFrame )

-- 隐藏状态栏
display.setStatusBar( display.HiddenStatusBar )
点赞
用户2260604
用户2260604

为了让它变得简短明了 -

这是针对您的问题特定的代码。

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

对于未来,我建议参考以下链接:

Corona Docs:API>库>转换>至 - 移动显示对象。

以及

Corona Docs:API>类型>事件侦听器>addEventListener - 根据事件触发代码。

2014-09-13 19:51:43