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, 1100);
 
    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
Posted by misty_
,