为什么我需要在Gideros中使用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,它有什么区别?为什么我需要在Gideros中使用Event.ENTER_FRAME?

对Gideros运行的每一帧都调用一次Event.ENTER_FRAME。如果你没有它就运行上面的代码,它只会运行代码一次,球会移动,然后球停止移动。 a example of enterframe usage (see #6)

+0

谢谢,所以如果我期待一些定期的议案,我需要一个框架,对吧? –

+1

我假设你的意思是线性运动。几乎所有的运动都需要一个框架,所以是的。 – DivideByZero