이것때문에 여러날을 고생했는데,

어떤 분이 도움을 주셔서 해결했다.

 

 

첫번째 문제점.

 

일단 타일맵 기반이면 줌인 줌아웃, 맵 이동도 되어야하는데

터치를 거기에다가만 쓰면 건물짓기와 같은 다른 수행을 할 수가 없다.

그래서 줌인줌아웃클래스를 따로 만들어서 그것을 상속받고,

터치를 다음 처럼 이중으로 써야한다

 

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
Posted by jeff제프
,

touch 정리

카테고리 없음 2014. 2. 19. 16:08

CCPoint touchPoint = touch->getLocation();

    CCPoint _touchGL = CCDirector::sharedDirector()->convertToGL(touch->getLocation());

    CCPoint _touchWorldSpace = this->convertToNodeSpace(_touchGL);



2,3번 좌표는 같다. 


1번과 2,3의 차이는 y좌표가 거꾸로임

Posted by jeff제프
,

tilemap에 대하여 찾아보다보면 


CCTileMapAtlas로 선언하는 코드를 볼 수가 있었다. 궁금했었는데, 설명을 보니까 정체는


CCTileMap의 구버전? 같은건가보다.

 

정확히는 모르겠지만

 

CCTileMap은 완성된 타일맵을 통째로 가져오는 반면

 

Atlas는 한개의 타일을 지정해주면 렌더링을 해서 쭉 깔아주는 것 같다.

 

이제부턴 Atlas 대신 CCTileMap 클래스를 쓰라고 적혀있다. 




p.s) Altas = '지도'


'개발일지 > cocos2d-x' 카테고리의 다른 글

tilemap 기반 게임의 터치  (0) 2014.02.21
table scroll 참고 사이트  (0) 2014.02.17
나중에 살펴볼 함수들  (0) 2014.02.13
동적으로 파일 가져오기  (0) 2014.02.10
오브젝트 가져오기와 애니메이션 적용  (0) 2014.02.03
Posted by jeff제프
,