2015년 1월 12일 월요일

cocos2d-x tiled를 이용한 타일게임 제작 -cocos2d-x 에 타일맵에 플레이어 와 카메라 같이 움직이기

캐릭터를 움직이면 화면을 움직이는 방법은

헤더(.h)에

void setViewPointCenter(CCPoint position);

cpp에

void HelloWorld::setViewPointCenter(CCPoint position) {
 CCSize winSize = CCDirector::sharedDirector()->getWinSize();
 int x = MAX(position.x, winSize.width / 2);
 int y = MAX(position.y, winSize.height / 2);
 x = MIN(x, (_tileMap->getMapSize().width * this->_tileMap->getTileSize().width) - winSize.width / 2);
 y = MIN(y, (_tileMap->getMapSize().height * _tileMap->getTileSize().height) - winSize.height / 2);
 CCPoint actualPosition = ccp(x, y);
 CCPoint centerOfView = ccp(winSize.width / 2, winSize.height / 2);
 CCPoint viewPoint = ccpSub(centerOfView, actualPosition);
 this->setPosition(viewPoint);
}

그후 init 함수에

this->scheduleUpdate();

해주고

void HelloWorld::update(float delta){

 this->setViewPointCenter(_player->getPosition());

}

이렇게하면 계속 화면의 위치를 플레이어의 위치로 바꿔 줄 수 있다.

댓글 없음:

댓글 쓰기