2023년 11월 18일 토요일

[cocos2d-x] 2d 게임엔진으로 플래피버드 클론 게임 만들기 (정보 가시화-디버그모드, 타일 체크)

디버그 모드

 


화면 좌표가 위치한 타일의 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가 있습니다.

정확히는 이걸로 바꿔주는게 맞습니다.


댓글 없음:

댓글 쓰기

[cocos2d-x] 2D 엔진으로 만드는 3D 슈팅게임

왜 2D 게임엔진으로 3D 게임 만들려고 삽질을 합니까?   예 뭐 3D 게임 만드는데 좋은 엔진은 아닙니다. 셰이더도 부실하고 물리엔진 쓰기도 까다롭고. 요즘은 외부업체 SDK 인트하기도 점점 힘들어지고.. ​ 그래도 기왕 해 본 거, 여기까지 왔으...