티스토리 뷰
소개
TexturePacker Pro는 여러가지 이미지를 하나의 이미지로 뭉쳐주게 하는 프로그램입니다. 자칫 이 방법이 안 좋아 보일수도 있지만 게임에서 작은 이미지를 하나하나 따로 불러오는 것 보다는 큰 이미지를 메모리에 올려두고 작은 이미지를 짤라 쓰는것이 효율이 좋다고 하네요. 또 좋은 이유가 AndEngine에서는 이미지의 사이즈가 2의 배수인 것만 사용 할 수 있습니다. 2의 배수가 아니면 막상 실행시켰을 때 에러가 생깁니다~
다운로드
http://www.texturepacker.com/ 에서 다운받을 수 있습니다. 2.3.5 버전 기준으로 설명하겠습니다!
이미지 패킹하기
처음 실행하면 아마 라이센스 등록하라는 창이 뜰겁니다. 공짜로 써도 큰 문제 없을거 같으니 닫아 주세요~
( 저는 피드백 한다는 조건으로 라이센스를 받았는데 다시 찾아보니까 어떻게 받았는지 못찾겠네요;; 찾으면 다시 포스팅합니다~)
Add Sprites 버튼을 눌러서 패킹하고자 하는 이미지를 불러옵시다~
이제 왼쪽에 보이는 Texture Settings 항목에서 세팅을 해 줍시다~
세팅을 해주어야 하는 부분은 다음과 같습니다.
- Data Format : AndEngine – AndEngine에서 사용할 것이므로 당연히~
- Data file : 작은 이미지의 배치 정보를 포함하는 xml 파일이 저장될 경로입니다. 옆의 … 을 눌러서 경로를 지정합시다~
- Java file : 작은 이미지의 배치정보를 포함하는 Java Interface 파일이 저장될 경로입니다.. 마찬가지로… ㅋ
- Java package name : 바로 위의 Java file에서 초기 패키지의 이름입니다. 모르면 빈칸으로 두어도 상관 없읍니다~
- Min Filter : Linear로 설정합니다~
- Mag Filter : Linear~
- Wrap t/s : Clamp~
- Texture format : Compressed PVR(.pvr.ccz) – 로 설정합니다.
- Image format : RGBA4444 – 로 설정합니다~
- Texture file : 최종 생성된 패킹 이미지가 저장될 경로입니다. 지정해 주세요~
이렇게 설정하고 File – Export Image와 File – Export Data를 눌러 줍시다~
지정된 폴더를 찾아가면 위와 같은 파일이 생겼을 겁니다. .pvr.ccz가 이미지 파일인데 보통 뷰어로는 안보일겁니다. 사이즈를 보시면 엄청나게 압축 된 걸 알 수 있습니다~
아래와 같이 위 파일을 복사했고, java 파일은 적당한 소스 폴더에 복사합니다~
결과물을 사용한 예제 코드는 아래와 같습니다~ 자세한 코드 설명은 나중에 차차 강의 진행하면서 해드리겠습니다!
private ITexture mItemsT; private TexturePackTextureRegionLibrary mItemsPackerLibrary; // =========================================================== // Public Values // =========================================================== /* Items */ public TextureRegion itemLv03TR = null; public TextureRegion itemLv04TR = null; public TextureRegion itemLv05TR = null; public TextureRegion itemLv06TR = null; public TextureRegion itemLv07TR = null; public TextureRegion itemLv08TR = null; public TextureRegion itemLv09TR = null; public void onLoadResources() { TexturePack spritesheetTexturePack = null; try { spritesheetTexturePack = new TexturePackLoader( mBaseActivity, "gfx/spritesheets/" ).loadFromAsset( mBaseActivity, "items.xml" ); } catch ( TexturePackParseException e ) { // TODO Auto-generated catch block e.printStackTrace(); } this.mItemsT = spritesheetTexturePack.getTexture(); this.mItemsPackerLibrary = spritesheetTexturePack.getTexturePackTextureRegionLibrary(); this.mBaseActivity.getEngine().getTextureManager().loadTexture( this.mItemsT ); } public void textureRegionGenerate() { itemLv03TR = this.mItemsPackerLibrary.get(Jitems.ITEM_3G_ID); itemLv04TR = this.mItemsPackerLibrary.get(Jitems.ITEM_4G_ID); itemLv05TR = this.mItemsPackerLibrary.get(Jitems.ITEM_5G_ID); itemLv06TR = this.mItemsPackerLibrary.get(Jitems.ITEM_6G_ID); itemLv07TR = this.mItemsPackerLibrary.get(Jitems.ITEM_7G_ID); itemLv08TR = this.mItemsPackerLibrary.get(Jitems.ITEM_8G_ID); itemLv09TR = this.mItemsPackerLibrary.get(Jitems.ITEM_9G_ID); }
몇몇 헛점이 있을 수 있습니다! 댓글 남겨주시면 최대한 빨리 답변과 업데이트 하겠습니다!
'[Java] > [Android-AndEngine]' 카테고리의 다른 글
AndEngine에서 Tiled를 사용하여 타일맵 만들기 (0) | 2011.08.28 |
---|