디버그 모드
화면 좌표가 위치한 타일의 ID 읽어오기
더욱 간단한 좌표 얻기
tileX, tileY 계산할 때 자체적인 산술식을 썼는데, cocos2d-x에서는
map->convertToNodeSpace(pos) 이렇게 얻어내는 방법이 있습니다.
pos가 화면상의 좌표일 때, map을 기준으로 한 상대적인 좌표를 얻어내는 api가 convertToNodeSpace입니다.
tileX, tileY값 범위를 검사해야 하는 이유
맵이 오른쪽 끝부터 시작할 경우에는 tileX가 -값이,
화면 위로 캐릭터가 올라갈 경우 tileY는 -값이,
맵이 왼쪽 끝으로 나갔을 경우에는 tileX가 맵 너비width보다 큰 값이 각각 들어오고
이 값으로 getTileGIDAt을 걸면 오류납니다.
'타일이 존재하지 않는 것' 과 '공백 타일'이 존재하는 것은 다르다
Tiled 툴에서 찍을 때의 타일 ID값과, api로 읽어올때의 ID값(GID)값이 다른 것에 주의.
GID는 1부터 시작합니다.
setTileGIDAt 할 때 0 찍으면 오류납니다.
(아마 내부적으로 0은 아무 타일도 없는 상태일 것이라...)
해서 타일을 구성할 때 타일 하나 정도는 아무것도 없는 투명 공백이 필요합니다.
경험적으로는 제일 앞에 두는게 좋습니다.
타일로 배치된 요소를 삭제할 때는 removeTileAt이라는 api가 있습니다.
정확히는 이걸로 바꿔주는게 맞습니다.
댓글 없음:
댓글 쓰기