기본 콘텐츠로 건너뛰기

FlashPunk에서 Base64 인코딩 된 타일맵 불러오기

이 글은 Tiled map editor를 이용해서 만든 맵 데이터를 FlashPunk로 불러오는 법에 대한 글입니다.
Tiled는 맵 저장을 XML로 저장할 수도 있고, zlib로 압축해서 Base64인코딩 할 수도 있습니다.
맵이 커질수록 데이터가 커지기 때문에 압축해서 인코딩하는 방법이 더 좋은데요.
FlashPunk의 map Entity에서 바로 불러오도록 만들어 봤습니다.



맵데이터를 임베딩 한 후, map Entity객체의 생성자 매개변수로 넘겨서 loadXML함수에 넘겨줍니다.
[Embed(source = "../assets/desert_640x480,32x32.tmx")] public static const MAP_DESERT:Class;
(Maps.as파일로 임베딩할 자원만 모아 놓았습니다. 사용할때는 Maps.MAP_DESERT 이렇게 불러오고요)

private function loadXML(xml:Class):void
{
   // 불러온 데이터 디코딩, 압축해제
   var rawString:String = XML(new xml).child("layer").child("data");
   var bytes:ByteArray = ByteArray(Base64.decode(rawString));
   bytes.uncompress();
   
   // 맵에 타일 셋팅
   for (var i:int = 0; i < bytes.bytesAvailable; i++)
   {
      var index:int = bytes.readInt();
      _map.setTile(i % 10, Math.floor(i / 10), index-1); // 10은 320/32=10
   }
}

World Entity객체에 맵 엔티티를 add()해주기만 하면 됩니다.
그리고 Base64 인코더,디코더가 플렉스 프로젝트에선 쓸 수 있지만 액션스크립트 프로젝트에선 쓸 수 없는것 같습니다. 그래서 따로 Base64.as파일을 준비해야 합니다.
여기서 Base64에 대한 자세한 설명과 함께 Base64.as파일도 받을 수 있습니다.

이 블로그의 인기 게시물

Docker Tutorial (Docker Toolbox)

https://www.docker.com/products/overview 설치파일 다운로드. 내 맥북은 가상화를 지원하지 않는 CPU를 가진 2009년형. 그래서 Docker for Mac 사용불가하여 Docker Toolbox 설치. mkdir yourdockerbuild cd yourdockerbuild touch Dockerfile nano Dockerfile FROM imageNameOnHub:version - 불러올 이미지 RUN *** - 최초 실행할 명령 (설치명령 등. image 안에 설치됨) CMD *** - 이미지가 로딩되면 실행할 명령 docker build -t yourImageName . docker run yourImageName 추가로 hub를 통하지 않고 Image를 이동 하려면 Docker Registry 사용 도커 레지스트리 (Docker Registry) 설치하기 + S3 연동

플래시 빌더 (Flash Builder) 컬러 테마 변경

플래시 빌더 전체 색상은 흰색 위주로 되어 있는데, 오래보기엔 눈이 좀 불편하다. 따로따로 색상을 적용할 순 있지만 너무 번거롭고. 그래서 컬러테마 적용을 검색해봤다. 역시나 좋은 글이 있었다. 에디터 컬러 테마 변경 http://www.robertbak.com/wordpress/2010/04/dark-themes-for-flash-builder/ 위 글을 참고하면 된다. 위 글에서 요점만 요약하면 http://www.eclipsecolorthemes.org  여기서 테마(EPF)를 받은 후, 플래시 빌더 메뉴에서 File -> import -> other 를 선택한 다음, 팝업 메뉴가 뜨면 General에 있는 Preferences 선택 후 다운받은 EPF파일을 선택해주면 된다. 이클립스 안에 있는 마켓에서 eclipse color theme를 검색 해서 설치해도 됨. 인터페이스 색상 변경은 애석하게도 아직 못찾았다.