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 |