Почему мне нужно использовать 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)