'Sprite'에 해당되는 글 3건

  1. 2014.03.20 Cocos2d Sprite Animation 변경하기
  2. 2013.01.12 CCSprite 이미지 변경
  3. 2012.05.26 cocos2d sprite sheet HD(retina) 적용하기

애니메이션이 실행 도중 바로 변경을 하면 에러가 난다. 기존에 액션(애니메이션)을 멈추고 다른 애니메이션을 실행(run)한다. 


  [_pig stopAllActions];

  [_pig runAction:runAnimation];


저작자 표시 비영리
신고
Posted by KraZYeom

CCSprite를 초기에 생성후에 게임중에 동적으로 변경을 해야 할 때가 있다. 


이때 Texture를 변경하면 되는데 Sprite Sheet를 사용하고 있으면 아래 코드처럼 스프라이트 프레임 캐쉬에서 스프라이트 이름으로 Texture에 해당하는 프레임을 가져와서 넘겨주면 이미지가 변경이 된다. 


[_leftWing setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"dragon_01_wing.png"]];



저작자 표시 비영리
신고
Posted by KraZYeom

1년전 잠깐 cocos2d를 하다가 손을 놓다보니 까먹은것도 있고, HD sprite sheet 사용도 할겸해서 적어본다. 

sprite sheet tool 들이 여러게 있는 구입할려니 주머니의 가벼워짐 ㅠㅠ 엉엉. 


일반적으로 iOS 개발에서는 Retina와 일반 이미지 구분은 이미지 끝에 @2x 만 붙여주면 OS에서 자동으로 처리를 해준다. 

예) image.png 와 image@2x.png 


하지만 cocos2d에서는 Retina(이하 HD : cocos2d에서는 HD라고 부른다)를 적용하기 위해서는 @2x 대신에 

-hd를 붙여 준다.

예)image.png 와 image-hd.png 

이렇게 하면 cocos2d에서 자동으로 HD 이미지로 처리 한다.


하지만 Zwoptex, TexturePacker, SpriteHelper 등을 이용해서 sprite sheet로 만들면 살짝 만드는 적용하는 방법이 다르다.


우선 일반적인 이미지(이하 SD)는 일반적으로 sprite sheet를 만드는 방법과 같다. 위 툴로 그냥 생성하면 된다.

image1.png, image2.png, image3.png, image4.png, image5.png 를 sprite sheet로 만들면

images.png 와 images.plist 가 생성된다. 


그리고 HD용 sprite sheet는 기존에 파일명이 image1-hd.png, image2-hd.png, image3-hd.png, image4-hd.png, image5-hd.png 이지만 SD파일명과 동일하게 바꾸어 준다. 

image1.png, image2.png, image3.png, image4.png, image5.png로 파일명을 바꾸고 위의 툴로 spriete sheet를 생성한다. 

images.png 와 images.plist로 파일이 만들어 주면 이 2개의 파일에 -hd 를 붙여 준다. 

images-hd.png 와 images-hd.plist 로 바꾸어 준다.


code에서 사용할때는 HD, SD구분없이 images.png 와 images.plist 로 사용하면 cocos2d에서 자동으로 -hd를 처리 해준다. 


그리고 아래와 같이 사용하면 된다. 


CCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache];

[cache addSpriteFramesWithFile:@"images.plist"];

        

 CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"images.png"];

[self addChild:spriteSheet];


CCSprite *image1 = [CCSprite spriteWithSpriteFrameName:@"image1.png"];

CCSprite *image2 = [CCSprite spriteWithSpriteFrameName:@"image2.png"];

CCSprite *image3 = [CCSprite spriteWithSpriteFrameName:@"image3.png"];

CCSprite *image4 = [CCSprite spriteWithSpriteFrameName:@"image4.png"];

CCSprite *image5 = [CCSprite spriteWithSpriteFrameName:@"image5.png"];



저작자 표시 비영리
신고
Posted by KraZYeom