Почему мне нужно использовать Event.ENTER_FRAME здесь, в Гидеросе?

local W = application:getLogicalWidth() 
local H = application:getLogicalHeight()
local xD, yD, speed = 1, 1, 10 
local img = newImage("myImage2.png", 0, 0) 
local wd, ht = img:getWidth(), img:getHeight()

function onEnterFrame(event) 
    local xP, yP = img:getPosition()
    xP = xP + xD*speed yP = yP + yD*speed 

    if xP >= W-wd or xP == 0 then
        xD = −xD
    end

    if yP >= H-ht or yP == 0 then
        yD = −yD
    end 

    img:setPosition(xP, yP)
end

img:addEventListener(Event.ENTER_FRAME, onEnterFrame)

У меня есть кусок кода выше, и мой вопрос, почему Event.ENTER_FRAME Вот? Все, что делает этот код - перемещает шар по экрану, мы не меняем ни одного кадра, тогда зачем мне это? Какая разница, если я использую его без Event.ENTER_FRAME?

1 ответ

Решение

Event.ENTER_FRAME вызывается один раз для каждого кадра, который запускает Гидерос. Если бы вы запустили приведенный выше код без него, он просто один раз пробежал бы по коду, мяч будет двигаться, а затем шар перестанет двигаться. пример использования энтерфрейма (см. № 6)

Другие вопросы по тегам