cocos2d study #05

스프라이트


 

스프라이트는 화면 내에서 이미지로 이루어진 (일반적으로 작은) 물체를 뜻한다.

게임에서 우리가 흔히 부르는 아군 캐릭터라든지, 적의 무기, 바위, 나무, 집 등의 물체를 화면에 표시하기 위해서는 스프라이트를 불러와야 한다. 스프라이트에 여러 가지 움직임(액션)을 적용하여 애니메이션을 만들 수도 있고, 유저 입력에 따라 반응하는 코드를 넣으면 캐릭터의 조종이 가능하게 된다.

 

1. 스프라이트를 만드는 순서

 

(1) 스프라이트 생성
CCSprite *sprite = [CCSprite spriteWithFile:@”그림파일”];

(2) 초기 위치 설정
sprite.position = ccp(240,160);

(3) 스프라이트 배치 (원하는 노드 위에)
[노드객체 addChild:sprite];

 

이렇게 3단계로 스프라이트를 만들 수 있다.

 

2. 스프라이트 생성 예제 코드

// HelloWorldScene.m 또는 HelloWorldLayer.m 파일의 init
 
-(id) init 
{
    if( (self = [super init] ))
    {
        CCSprite *myBox = [CCSprite spriteWithFile:@"mybox.png"];
        myBox.position = ccp(240, 160);    // 스프라이트 위치 설정
        myBox.anchorPoint = ccp(1, 1);     // 앵커포인트 설정
 
        // self는 [HelloWorld Layer] 자신이다.
        // z:를 이용해서 레이어의 깊이를 설정할 수 있다.
        // [self addChild:myBox z:2]; 
        [self addChild:myBox];        
    }
    return self;
}

1. ccp()

ccp는 cocos2d에서 제공하는 짧은 매크로이다.

간단하게 좌표를 지정할 수 있다.

ccp(x, y) 형식으로 사용하면 된다.

2. self

노드 객체 self는 HelloWorld 자신이다.

3. 앵커포인트 (기준점)

스프라이트는 앵커 포인트라는 기준점이 있다.

앵커포인트는 기본적으로 스프라이트의 정중앙이다.

앵커포인트는 변경 가능하다.

사각형 스프라이트에서 각 앵커 포인트 좌표

4. addChild

addChild까지 작업을 해줘야 스프라이트가 비로소 화면에 출력된다.

addChild는 여러 종류가 있는데, z: 를 써줄 경우 스프라이트의 깊이를 정해줄 수 있다.

z는 한 마디로 층이다. 2층이 1층보다 높은 것처럼, z: 2로 된 스프라이트가 위에 보이고, z: 1인 스프라이트는 아래에 묻히게 된다. (두 개의 스프라이트가 겹친 상황)

스프라이트의 깊이 



PS

아직은 화면에 네모만 띄우는 수준이긴 하지만 이 네모가 게임의 가장 기초가 될 것임은 틀림이 없다. 수많은 네모가 모여서 엄청난 명작(?) 캐릭터가 될 수도 있을 것이다.

지금은 일단 스프라이트 생성 과정을 처음 접해서 생소하므로, 몸에 익숙하게 만들어야겠다. :)

'개발 > Cocos2d' 카테고리의 다른 글

cocos2d study #07  (0) 2012.10.25
cocos2d study #06  (0) 2012.10.23
cocos2d study #04  (0) 2012.10.23
cocos2d study #03  (0) 2012.10.22
cocos2d study #02  (0) 2012.10.22

+ Recent posts