更新嵌套在组中的精灵

时间:2013-04-04 15:57:19

标签: lua corona

如何更新或操作嵌套在多个组中的精灵?

我首先尝试使用sprite将“enterFrame”事件直接添加到所需的类中(没有成功)

我的代码

local box = {}

-- PUBLIC FUNCTIONS

function box:new(  )

    local group = display.newGroup()

    local image = display.newImage("crate.png")

    group:insert(image)

    function group:update()
        image.rotation = image.rotation + 1
    end

    return group
end

return box

第二我虽然添加了

Runtime:addEventListener("enterFrame", enterFrame)

在我的场景中,然后循环遍历添加到场景中的组(scene.view)并在那里调用自定义更新函数,将更新向前发送,直到它到达我的班级。但是,我还没有找到一种检查组是否有更新方法的方法。现在我只是调用更新,即使该组没有它。

function enterFrame (event)
    local group = scene.view
    for i=1,group.numChildren do
        group[i]:update()
    end
end

1 个答案:

答案 0 :(得分:1)

local box = {}

您可以尝试这个简单的解决方案

-- PUBLIC FUNCTIONS

function box:new(  )

    local group = display.newGroup()

    local image = display.newImage("crate.png")

    group:insert(image)
    group.isThereUpdate = true
    // or group.isThereUpdate = false

    function group:update()
        image.rotation = image.rotation + 1
    end

    return group
end

return box


function enterFrame (event)
    local group = scene.view
    for i=1,group.numChildren do
        if group[i].isThereUpdate then
            group[i]:update()
        end
    end
end