[D_010] 애니메이션 - Sprite packing, Animation, stopAction DATA_OLD/Cocos2d-x 기능성 게임 개발과정2014. 11. 24. 11:40
게임 애니메이션에 쓰이는 Sprite들은 하나의 이미지 파일에 뭉쳐서 사용한다.(리소스 절약)
연속된 애니메이션을 구성하는 이미지를 Texture Packer등으로 합칠 수 있다.
이렇게 만들어진 이미지를 아틀라스 이미지 라고 부른다.
링크 : https://www.codeandweb.com/texturepacker/start-download?os=win&bits=64
다른 것들은 웬만하면 건들지 말고, 합친 그림파일의 사이즈와 Data와 Texture의 경로만 지정해주고,
이 Texture Packer를 이용해서 스프라이트들을 묶으면, 2개의 파일이 나온다.
1) 합쳐진 .png파일
2) 합쳐진 파일 내의 각 그림들의 이름과 위치(좌표)가 담긴 .plist파일(plist == Property List)
+ plist는 Mac에서 많이 쓰는 데이터 형식. Windows에서의 XML과 비슷한 유형이다.
plist View같은 파일도 있다. 하지만 별로 쓸 일은 없다.
plist를 framecache에 등록한다. 그러면 해당 plist에 등록된 파일이 전부 cache에 올라간다.
- HelloWorldScene.cpp
- 사용법
1) 스프라이트 생성
2) Animation
- Delay time : 간격시간 설정
- Add Frame : 프레임 추가
3) Animate
- Animation : 액션형
4) spr->runAction( animation );
SpriteFrameCache에 등록한 plist는 SpriteFrameCache자체에 등록되어 SpriteFrameName 관련 메소드로 불러와서 사용할 수 있다.
ex)
객체가 행하고 있는 액션을 멈추는 메소드
stopAllAction() //현재 객체가 실행중인 모든 액션을 멈춤
stopActionByTag() //현재 객체가 실행중인 특정 액션을 멈춤
예제 - HelloWorldScene.cpp
'DATA_OLD > Cocos2d-x 기능성 게임 개발과정' 카테고리의 다른 글
[D_011] 배경 스크롤 - Layer (0) | 2014.11.25 |
---|---|
[D_010] Schedule (0) | 2014.11.24 |
[D_009] 카드 게임 (0) | 2014.11.21 |
[D_008] Layer - LogoLayer 예제 (0) | 2014.11.20 |
[D_008] Scene전환 - replace / push,pop (0) | 2014.11.20 |