본문 바로가기

IT 번역/Cocos2d-x 메뉴얼[manual] 번역

스프라이트 시트 | Sprite sheets

번역일: 2019-06-23
주소: https://docs.cocos2d-x.org/cocos2d-x/en/sprites/spritesheets.html

 

Spritesheets · GitBook

Creating a Sprite from a Sprite Sheet A sprite sheet is a way to combine sprites into a single file. Using a sprite sheet helps achieve better performance by batching the draw calls. They can also save disk and video memory in cases where the sprites can b

docs.cocos2d-x.org

스프라이트 시트[Sprite sheet]에서 스프라이트[Sprite] 생성하기 | Creating a Sprite from a Sprite Sheet

스프라이트 시트[Sprite Sheet]는 여러개의 스프라이트[Sprite]들을 하나의 파일로 만드는 한가지 방법입니다. 스프라이트 시트[Sprite Sheet]를 사용하면 일괄적으로 화면에 표시하는 방법[batching the draw calls]을 이용하여 더 좋은 퍼포먼스를 내는데 도움이 됩니다. 또한, 스프라이트[Sprite]들이 하나의 시트에 더 효율적으로 (공간의 낭비없이) 들어가 있다면 (보통은 특정한 도구/툴이 필요하죠.), 디스크 공간과 비디오 메모리를 절약할 수 있답니다.

스프라이트 시트[Sprite Sheet]를 사용할 경우, 처음 로드할 때는, 전체 파일이 SpriteFrameCache에 들어갑니다. SpriteFrameCache는 캐싱 클래스로서, SpriteFrame 객체단위로 이미지들을 보관합니다. 이렇게 하면, 나중에 빨리 접근할 수 있게되죠. 한번 로드된 SpriteFrame은 SpriteFrameCache에 보관됩니다.

스프라이트 시트[Sprite Sheet]의 예제를 한번 들여다보시죠:

이게 뭐야? 별거 없네? 하실 수도 있는데요, 이게 무슨 단계를 거쳐서 이리 왔는지 좀더 들여다보세요:

스프라이트 시트[Sprite Sheet]에서 보실 수 있는 것처럼, 적어도, 불필요한 빈 공간을 줄여주고, 모든 스프라이트[Sprite]를 하나의 파일로 만들어줬죠.

자, 이제 이걸 다 써봅시다!

 

스프라이트 시트 로드하기 | Loading a Sprite Sheet

스프라이트 시트[Sprite Sheet]를 SpriteFrameCache에 로드하세요, 어디에서 하면 좋을까요? 아마도, AppDelegate에 하시게 될 것 같군요:

 


 

// 스프라이트 시트[Sprite Sheet]를 로드합니다.
auto spritecache = SpriteFrameCache::getInstance();

// .plist 파일은 아래에 적어놓은 툴 중 하나를 사용하여 만드실 수 있어요.
spritecache->addSpriteFramesWithFile("sprites.plist");

 


 

자, 이제 SpriteFrameCashe에 스프라이트 시트[Sprite Sheet]를 로드했으니, 이 SpriteFrameCache를 이용해서 스프라이트[Sprite] 객체를 만들 수 있습니다.

스프라이트 시트[Sprite Sheet]를 직접 만드는 것은 매우 (상상만해도) 끔찍한 작업입니다. 다행이도, 이런 스프라이트 시트[Sprite Sheet]를 자동으로 만들어주는 툴들이 있답니다. 이 툴들은 스프라이트 시트를 만들때 최대한 최적화할 수 있는 다양한 방법을 제공하기도 합니다!

몇가지 툴을 소개해드릴께요: