cocos2d study #06

메뉴 만들기


CCMenuItem, CCMenu를 이용해 메뉴를 쉽게 만들 수 있다.

메뉴 추가 방법

1. CCMenuItem 객체들을 만든다.

2. CCMenu 객체를 만들면서 CCMenuItem 객체를 추가시킨다.

3. 메뉴를 삽입시키려는 노드 위에 CCMenu를 차일드로 추가시킨다.


기본 코드

-(void)sampleMenu
{
    CCMenuItem *item1 = [CCMenuItemImage itemFromNormalImage:@"평소그림"
                                         selectedImage:@"눌린그림"
                                         target:메소드를실행할객체
                                         selector:selector];
    // 마지막 nil 주의 (반드시 넣어야 함)
    CCMenu *menu = [CCMenu menuWithItems:item1, nil];
    [부모노드 addChild:menu];
}

CCNode

CCNode는 cocos2d에서 모든 객체의 슈퍼클래스이다.

CCNode 안에 tag 변수가 들어있다. (int 타입)

tag는 각 객체를 구별하기 위해 달아놓은 숫자 꼬리표이다.

(중간중간 또는 나중에 수정하기 쉽게 #define으로 번호를 지정해 사용하면 좋다)

CCMenuItem은 CCNode를 상속받았다.

그러므로, CCMenuItem 객체 item1에 tag를 쓸 수 있다.

메뉴 만들기 예제 코드

-(id)init
{
    if ((self=[super init])) {
        CCMenuItem *item1=[CCMenuItemImage itemFromNormalImage:@"menu1.png" 
                                           selectedImage:@"menu1.png"
                                           target:self
                                           selector:@selector(buttonPushed:)];
        CCMenuItem *item2=[CCMenuItemImage itemFromNormalImage:@"item2.png"
                                           selectedImage:@"item2.png"
                                           target:self
                                           selector:@selector(buttonPushed:)];
        CCMenuItem *item3=[CCMenuItemImage itemFromNormalImage:@"menu3.png"
                                           selectedImage:@"menu3.png"
                                           target:self
                                           selector:@selector(buttonPushed:)];
        // sender를 보낼 때는 콜론(:)을 붙인다
 
        item1.tag=1;
        item2.tag=2;
        item3.tag=3;
 
        // 마지막 nil 주의 (반드시 넣어야 함)
        CCMenu *menu=[CCMenu menuWithItems:item1,item2,item3, nil];
 
        // [menu alignItemsVertically]; // 메뉴 수직 정렬할 때 사용
        // 메뉴는 기본 위치가 (240,160)이기 때문에 자동정렬 안 한다면 위치를 잡아줘야 함!!
        menu.position=CGPointZero;
        [self addChild:menu];
 
        CCSprite *sprite=[CCSprite spriteWithFile:@"parent.png"]; // 부모 스프라이트
        sprite.position=ccp(80,80);   // 위치는 임의로 80,80
        sprite.tag=10;                // 부모의 태그 10
        [self addChild:parent];
 
        // ...
        // 자식 스프라이트를 추가하면서 태그를 붙여보자.
        // ...
    }
    return self;
}




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

cocos2d study #08  (0) 2012.10.25
cocos2d study #07  (0) 2012.10.25
cocos2d study #05  (0) 2012.10.23
cocos2d study #04  (0) 2012.10.23
cocos2d study #03  (0) 2012.10.22

+ Recent posts