[convertToWorldSpace]
convertToWorldSpace 함수에 대해서 알아봅시다.
예를 들어 게임을 제작시 배경하면을 스크롤 하는 기능을 넣을 시 배경화면에 자식노드를 넣고 처리할때 자식노드의 좌표를 알고 싶을때가 있다.
convertToWorldSpace는 부모 노드의 좌표를 기준으로 자식노드의 좌표를 구합니다.
CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite * background = CCSprite::create("HelloWorld.png"); background->setPosition(ccp(0,0)); this->addChild(background); CCSprite *closeSprite = CCSprite::create("CloseNormal.png"); closeSprite->setPosition(ccp(10,10)); background->addChild(closeSprite); CCPoint convertPos = background->convertToWorldSpace(closeSprite->getPosition()); CCLog("%2.f %2.f",convertPos.x, convertPos.y); CCLog("%2.f %2.f",closeSprite->getPosition().x, closeSprite->getPosition().y);
출력결과
-230 -150 10 10
배경화면이 480*320인 스프라이트를 0,0 좌표에 add해줄시 화면의 중간에 위치하게 됩니다.
close 스프라이트는 배경화면 기준으로 10,10 에 위치하게 되며
배경화면은 -240,-160 에서 부터 그려지게 되므로
배경화면을 기준으로 한 절대 좌표는 -230, -150이 됩니다.
만약 배경화면의 좌표를 480,320 으로 수정하면 아래 그림처럼 보이며
로그 값은
250,170
10,10 이 됩니다.
여기서 알수 있듯이. convertToWorldSpace는 setposition으로 준 값과 관계없이
디바이스상에서 보여주는 좌표를 기준으로 좌표를 변형해줍니다.
'잡다한것들전부 > 팁' 카테고리의 다른 글
| cocos2d-x 멀티해상도 지원 (0) | 2014.01.13 |
|---|---|
| 숫자에 세자리마다 콤마를 찍는 알고리즘 (0) | 2014.01.10 |
| [좌표] 좌표에 대해서 알아봅시다(convertToWorldSpace) 절대좌표 (0) | 2014.01.10 |
| [디자인패턴] cocos2d-x 싱글톤 싱글턴 패턴 구현 (0) | 2014.01.08 |
| [디버깅] GDB 사용하기 (0) | 2014.01.07 |
| [디버깅] ndk stack 사용법 (0) | 2014.01.07 |


