2014-04-15 4 views
0
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을 사용해야합니까?

답변

1

Gideros가 실행하는 모든 프레임에 대해 Event.ENTER_FRAME이 한 번 호출됩니다. 이 코드를 사용하지 않고 위의 코드를 실행하면 코드가 한 번 실행되고 공이 이동 한 다음 공의 이동이 중지됩니다. a example of enterframe usage (see #6)

+0

감사합니다. 일정한 동작을 기대한다면 프레임이 있어야합니다. 맞습니까? –

+1

직선 운동이라고 가정합니다. 거의 모든 모션에 대한 엔터 프레임이 필요합니다. 그렇습니다. – DivideByZero