update를 사용하기위해서 우선 update함수를 생성한다.
1 | void update(float delta); | cs |
그리고 init함수에서 scheduleUpdate()를 호출해준다.
이 함수를 호출해주어야지만 update함수가 실행되게 된다.
1 2 3 4 5 6 7 8 | bool GameLayer::init() { Sprite* pSprite = Sprite::create("res/kirby.png"); addChild(pSprite, 1, 100); scheduleUpdate(); return true; } | cs |
update함수에서는 매 프레임마다 실행되어 1초에 60프레임이 실행된다.
1 2 3 4 5 | void GameLayer::update(float delta) { Sprite* pSprite = (Sprite*)getChildByTag(100); pSprite->setPositionX(pSprite->getPositionX() + 30.0f * delta); } | cs |
컴퓨터가 좋은경우 항상 60프레임을 유지하지만 컴퓨터 사양이 낮은경우 사양에 맞게끔 프레임이 실행된다.
delta값은 프레임당 시간을 뜻하는데 1초에 60프레임이면 delta는 0.0166 정도가 될것이다.
1초에 30프레임이 실행된다면 delta는 0.0333이 될것이다.
그렇기에 30.0f * delta를 하게되면 컴퓨터 사양과는 관계없이 1초에 30프레임씩 이동하게 되며
(1초간 delta의 합은 1이므로)
그냥 +30.0f으로 코드를 짰다면 1프레임당 30픽셀씩 이동하며 컴퓨터 사양에 따라 다른거리를 이동하게된다.
'프로그래밍 공부 > cocos2d-x' 카테고리의 다른 글
터치, 마우스, 키보드 사용하기 (0) | 2018.03.27 |
---|---|
오브젝트 삭제하기 (0) | 2018.03.26 |
간단한 액션기능 (0) | 2018.03.26 |
레이어 및 스프라이트 생성하기 (0) | 2018.03.26 |
기본설정 및 씬 만들기 (0) | 2018.03.22 |