(새 문서: =Timer= ==개요== Timer 클래스는 지정한 시간 이후에 특정 행동을 하기 위한 클래스입니다. ==상속관계== 어느 클래스로부터도 상속받지 않...) |
(→예제) |
||
31번째 줄: | 31번째 줄: | ||
==예제== | ==예제== | ||
+ | ===똥피하기 예제=== | ||
+ | <lnx> | ||
+ | |||
+ | local function m(XVM) | ||
+ | |||
+ | local playerNode = pini.Sprite("player","boy.png",nil) | ||
+ | pini:AttachDisplay(playerNode) | ||
+ | playerNode:setAnchorPoint(0.5,0.5) | ||
+ | playerNode:setScale(1.0,1.0) | ||
+ | playerNode:setPosition(300,575) | ||
+ | |||
+ | pini:scene():registKeyboard("escapeTouch",function(press,keyCode,arg,x,y) | ||
+ | if keyCode == 1000 and press == 1 then | ||
+ | playerNode:StopAction() | ||
+ | local xPos,yPos | ||
+ | xPos,yPos = playerNode.node:getPositionX() | ||
+ | local moveTime = math.abs(x-xPos) / 300 | ||
+ | playerNode:runAction(cc.MoveTo:create(moveTime,cc.p(x,25))) | ||
+ | end | ||
+ | end) | ||
+ | |||
+ | local shitCounter = 1 | ||
+ | |||
+ | pini.Timer("genShit",0.1,function(t,dt) | ||
+ | |||
+ | local shitNode = pini.Sprite("shit"..tostring(shitCounter),"shit.png",nil) | ||
+ | shitCounter = shitCounter + 1 | ||
+ | pini:AttachDisplay(shitNode) | ||
+ | shitNode:setAnchorPoint(0.5,0.5) | ||
+ | shitNode:setScale(1.0,1.0) | ||
+ | shitNode:setPosition(math.random(0,800),25) | ||
+ | |||
+ | shitNode:runAction(cc.EaseIn:create(cc.MoveBy:create(3,cc.p(0,-600)),3.0)) | ||
+ | |||
+ | pini.Timer(pini:GetUUID(),4,function(t,dt) | ||
+ | shitNode:removeSelf() | ||
+ | end,false,nil,nil):run() | ||
+ | |||
+ | end,true,nil,nil):run() | ||
+ | end | ||
+ | return m | ||
+ | </lnx> | ||
+ | |||
+ | |||
+ | ===사용 코드=== | ||
+ | <lnx> | ||
+ | [스크립트 실행="아니오" 파일명="EscapeShit.lua" ] | ||
+ | </lnx> | ||
+ | ※ 이 예제는 매크로 등록 및 사용이 아닌, 스크립트를 불러오자마자 작동하는 예제이므로, lua 와 짝이 되는 lnx 파일은 없습니다. | ||
+ | |||
+ | ===결과=== | ||
+ | |||
+ | http://i.imgur.com/cfcCYCI.gif |
2015년 9월 1일 (화) 17:38 판
Timer
개요
Timer 클래스는 지정한 시간 이후에 특정 행동을 하기 위한 클래스입니다.
상속관계
어느 클래스로부터도 상속받지 않은 클래스입니다.
멤버 변수
이름 | 설명 |
id | 타이머 아이디입니다. |
멤버 함수
이름 | 설명 |
init(id,time,func,re,count,userdata) | 타이머를 초기화합니다. id 라는 고유 아이디로 설정하며, time 시간 뒤에 func 를 호출하며, re 가 true 인 경우 count 횟수만큼 반복합니다. 콜백 func 를 호출할 때에는, 첫번째 인자로 이 객체, 두번째 인자로 이전 호출과의 실제 시간차를 초 단위로 전달해 줍니다. 사용자 정의 데이터는 호출된 콜백 함수에서 t.userdata 를 통하여 사용가능합니다. |
run() | 생성된 타이머를 실행합니다. |
stop() | 작동중인 타이머를 정지합니다. |
예제
똥피하기 예제
피니엔진 LNX 소스코드
local function m(XVM) |
local playerNode = pini.Sprite("player","boy.png",nil) |
pini:AttachDisplay(playerNode) |
playerNode:setAnchorPoint(0.5,0.5) |
playerNode:setScale(1.0,1.0) |
playerNode:setPosition(300,575) |
pini:scene():registKeyboard("escapeTouch",function(press,keyCode,arg,x,y) |
if keyCode == 1000 and press == 1 then |
playerNode:StopAction() |
local xPos,yPos |
xPos,yPos = playerNode.node:getPositionX() |
local moveTime = math.abs(x-xPos) / 300 |
playerNode:runAction(cc.MoveTo:create(moveTime,cc.p(x,25))) |
end |
end) |
local shitCounter = 1 |
pini.Timer("genShit",0.1,function(t,dt) |
local shitNode = pini.Sprite("shit"..tostring(shitCounter),"shit.png",nil) |
shitCounter = shitCounter + 1 |
pini:AttachDisplay(shitNode) |
shitNode:setAnchorPoint(0.5,0.5) |
shitNode:setScale(1.0,1.0) |
shitNode:setPosition(math.random(0,800),25) |
shitNode:runAction(cc.EaseIn:create(cc.MoveBy:create(3,cc.p(0,-600)),3.0)) |
pini.Timer(pini:GetUUID(),4,function(t,dt) |
shitNode:removeSelf() |
end,false,nil,nil):run() |
end,true,nil,nil):run() |
end |
return m |
사용 코드
피니엔진 LNX 소스코드
[스크립트 실행="아니오" 파일명="EscapeShit.lua" ] |
※ 이 예제는 매크로 등록 및 사용이 아닌, 스크립트를 불러오자마자 작동하는 예제이므로, lua 와 짝이 되는 lnx 파일은 없습니다.
결과