티스토리 뷰

소개

 

  TexturePacker Pro는 여러가지 이미지를 하나의 이미지로 뭉쳐주게 하는 프로그램입니다. 자칫 이 방법이 안 좋아 보일수도 있지만 게임에서 작은 이미지를 하나하나 따로 불러오는 것 보다는 큰 이미지를 메모리에 올려두고 작은 이미지를 짤라 쓰는것이 효율이 좋다고 하네요. 또 좋은 이유가 AndEngine에서는 이미지의 사이즈가 2의 배수인 것만 사용 할 수 있습니다. 2의 배수가 아니면 막상 실행시켰을 때 에러가 생깁니다~

 

다운로드

 

http://www.texturepacker.com/  에서 다운받을 수 있습니다. 2.3.5 버전 기준으로 설명하겠습니다!

 

 

이미지 패킹하기

 

  image

 

  처음 실행하면 아마 라이센스 등록하라는 창이 뜰겁니다. 공짜로 써도 큰 문제 없을거 같으니 닫아 주세요~

( 저는 피드백 한다는 조건으로 라이센스를 받았는데 다시 찾아보니까 어떻게 받았는지 못찾겠네요;; 찾으면 다시 포스팅합니다~)

 

 

  Add Sprites 버튼을 눌러서 패킹하고자 하는 이미지를 불러옵시다~

 

image

 

image

 

 

  이제 왼쪽에 보이는 Texture Settings 항목에서 세팅을 해 줍시다~

 

image

 

  세팅을 해주어야 하는 부분은 다음과 같습니다.

 

  • 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를 눌러 줍시다~

 

image

 

 

image

 

지정된 폴더를 찾아가면 위와 같은 파일이 생겼을 겁니다. .pvr.ccz가 이미지 파일인데 보통 뷰어로는 안보일겁니다. 사이즈를 보시면 엄청나게 압축 된 걸 알 수 있습니다~

 

  아래와 같이 위 파일을 복사했고, java 파일은 적당한 소스 폴더에 복사합니다~

 

image

 

 

  결과물을 사용한 예제 코드는 아래와 같습니다~ 자세한 코드 설명은 나중에 차차 강의 진행하면서 해드리겠습니다!

 

    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);        
    }
 
  몇몇 헛점이 있을 수 있습니다! 댓글 남겨주시면 최대한 빨리 답변과 업데이트 하겠습니다!
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함