이번 시간부터는 조금 더 고급게임?을 만들 수 있도록 물리 엔진을 활용하는 방법에 대해 알려 드리겠습니다.
물리 엔진을 사용하기 위해 Box2D extension을 libs 폴더에 넣어 줍니다.(타일맵 사용을 위해 TiledMap extension도 같이 폴더에 넣어 주겠습니다.) library 추가 후에는 항상 File -> Sync Project with Gradle files 실행해 줍니다.
이것으로 물리엔진 및 타일맵 사용을 위한 세팅은 완료되었습니다. 다음은 타일맵 사용법에 대해 설명해 드리겠습니다.
format -> Base64(zlib compressed) 를 선택하고, 만들고자하는 타일의 수, 한 타일의 픽셀 입력후 Save As… 클릭 -> 파일 이름 입력
타일맵이 만들어 지면 New Tileset… 클릭
Browse.. 를 눌러 타일맵 만들 때 사용할 타일셋 이미지를 불러와 Save As… 클릭
위와 같이 타일맵을 눌러 본격적으로 타일 맵을 작성합니다.
타일 맵을 그리는 방법은 오른쪽에서 타일셋을 골라 상단에 채워 넣는 방법을 선택하고 그림그리듯이 타일 맵을 채우고 타일맵 완성 후 저장해 줍니다.
하지만 지금 상태로 사용하면 에러가 발생하는데 이것은 AndEngine은 개발이 중단 되었지만 Tiled 는 지금되 계속해서 업데이트가 되고 있기 때문에 tmx 파일의 포맷이 달라서 그런 것 같습니다.(?) 만들어진 tmx 파일을 에디터를 이용해 열어 보면 위와 같이 xml 포맷인 것을 알 수 있는데, 제가 참고했던 책의 예제와 비교해보니 3번째 라인의 포맷이 다른 것을 발견했습니다.
위와 같이 책소스를 참고해 tmx 파일을 수정해 주면 정상적으로 사용하실 수 있습니다.
assets 폴더에 tmx 폴더를 만들고 위에서 수정한 tmx 파일을 넣어주고, 타일셋 이미지는 gfx 폴더에 넣어 줍니다.
게임 엑티비티에 TMXTiledMap을 선언해 주고
onCreateScene() 메서드에 위와 같이 작성
게임을 실행해 보면 위와 같이 조금 전 만든 타일맵이 화면에 보여 지는 것을 확인하실 수 있습니다.