이것때문에 여러날을 고생했는데,
어떤 분이 도움을 주셔서 해결했다.
첫번째 문제점.
일단 타일맵 기반이면 줌인 줌아웃, 맵 이동도 되어야하는데
터치를 거기에다가만 쓰면 건물짓기와 같은 다른 수행을 할 수가 없다.
그래서 줌인줌아웃클래스를 따로 만들어서 그것을 상속받고,
터치를 다음 처럼 이중으로 써야한다
ccTouchBegan(CCTouch* pTouch, CCEvent* pEvent ){
//@brief : 받은 인자를 고대로 물려준다. 사용하기전에 헤더를 인클루드 해주는 것은 잊지말자
줌인클래스::ccTouchBegan(pTouch, pEvent);
//내가 하고 싶은 다른 수행 입력
}
두번째 문제점.
터치의 좌표가 일치하지 않는다.
convert 라는 내용이 들어간 함수를 써야할 것 같다는 느낌은 오는데 어떻게 사용해야하는지 몰라서 헤맸다.
상황에 따라 다르겠지만, 우리는 layer위에 타일맵을 addchild하고, 해당 layer에서 터치를 받아와서 쓰려고했는데 좌표가 전혀 엉뚱한 곳을 가리켰다.
그래서 이런식으로 해결했다.
ccTouchBegan(생략){
CCTMXTileMap* map = CCTMXTileMap::create("맵파일이름.tmx");
CCPoint touchLocation = map->convertTouchToNodeSpace(pTouch);
CCLog("좌표확인 : (%f, %f)"touchLocation.x, touchLocation.y);
}
//pTouch가 갑자기 등장했는데 pTouch를 가져오는게 정확히 생각이 안난다 ㅋㅋㅋㅋㅋ 생각나면 적어드릴게요
'개발일지 > cocos2d-x' 카테고리의 다른 글
CCTileMapAtlas 의 정체는... (0) | 2014.02.19 |
---|---|
table scroll 참고 사이트 (0) | 2014.02.17 |
나중에 살펴볼 함수들 (0) | 2014.02.13 |
동적으로 파일 가져오기 (0) | 2014.02.10 |
오브젝트 가져오기와 애니메이션 적용 (0) | 2014.02.03 |