기본 콘텐츠로 건너뛰기

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 요약

Docker 요약 기본 명령어 시작 명령어 및 시작 옵션 (run: pull, create, start) docker run [OPTION] [IMAGE:tag] [COMMAND] [ARGS...] [OPTION] -d detached mode (백그라운드) --name 컨테이너 이름 설정 -it interactive, terminal -p 포트 연결 ( -p HostPort:ContainerPort ) -P EXPOSE된 모든 포트를 연결한다. 이미지 삭제 docker rmi [IMAGE_NAME] 모든 컨테이너 보기 docker ps -a 종료된 모든 컨테이너 삭제 docker rm $(docker ps -a -q) 컨테이너에서 특정 명령 실행 docker exec [OPTION] [CONTAINER_NAME] [COMMAND] 데이터 볼륨 마운트 (예: MySql) docker run -v /my/own/hostDir:/var/lib/mysql mysql:5.7 Dockerfile 이미지 생성을 위한 설정 파일. 이 파일이 있는 디렉토리에서 Docker build 실행 시 이 파일을 기반으로 이미지 빌드. FROM : 기반 이미지 파일 (FROM mariadb/server) USER : 아래 RUN 명령어를 실행할 유저 지정 (USER root) RUN : 터미널 명령 실행. 이미지 빌드 때 실행 (RUN apt-get update) WORKDIR : 터미널에서의 작업 경로 설정 (WORKDIR /etc) ENTRYPOINT : 터미널 명령 실행. 컨테이너 실행 시 실행 (ENTRYPOINT ./npm) CMD : 터미널 명령 실행. 컨테이너 실행 시 실행. 어플 실행, ENTRYPOINT의 파라메터 등에 쓰임 (CMD [“executable”,“param1”,“param2”] - ENTRYPOINT가 설정되어 있으면 [“param1”,“param2”]...

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 연동

Tiled Map Editor 타일맵 제작 툴

http://www.mapeditor.org/ 타일맵을 만들어주는 그래픽 툴. (꼭 플래시에서만 쓰는 건 아닙니다.) 저장은 xml로도 할 수 있고, 기본적으로는 zlib로 압축, base64로 인코딩 되도록 되어있다. xml로 저장하면 용량이 무지 커지기 때문에 압축이 필수라고 한다. xml이 아닌 압축된 데이터를 플래시에서 읽어오는 법이 검색해보니 나왔다. http://blog.naver.com/PostView.nhn?blogId=ogoon1004&logNo=30105702197 FlashPunk 엔진과 Tiled Map Editor를 이용해서 뭔가 만들어봐야겠다.