캐릭터를 움직이면 화면을 움직이는 방법은
헤더(.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());
}
이렇게하면 계속 화면의 위치를 플레이어의 위치로 바꿔 줄 수 있다.
댓글 없음:
댓글 쓰기