2012-01-23 2 views
1

제 게임에는 일련의 아바타가 있습니다. 현재 각 아바타에는 작은 사각형 용기가있어이 이미지가 버튼이며 클릭 할 수 있음을 나타냅니다.CCSprite 위에 CCSprite를 레이어하는 방법은 무엇입니까?

그러나 시각적 효과 (예 : 버튼 클릭)를 나타 내기 위해 컨테이너의 색상을 변경해야한다는 것을 알았습니다. 예를 들어

:

상태 꺼짐 = 회색 컨테이너입니다. On 상태 = 빨간색 컨테이너

각 아바타를 켜기/끄기 상태로 반복하는 대신 컨테이너와 아바타를 분리하고 싶습니다.

+------+ +------+ 
|  | |  | O 
| OFF | | ON | /\ 
|  | |  | --- 
+------+ +------+ 

따라서 오프 컨테이너, 온 컨테이너 및 아바타를 분리합니다.

내 게임에서 사용하고 싶은 레이어로 스프라이트를 다시 구성 할 수 있어야하며, 새로 만든 스프라이트를 단 일 CCSprite처럼 작동 시키려면 제대로 배치 할 수 있어야합니다. 또는 스프라이트로 다른 일을하십시오.

서로 겹쳐진 다양한 CCSprites에서 CCSprite를 만드는 것이 좋습니다.

따라서 여러 스프라이트를 서로 겹쳐 쌓은 다음 어떻게 레이어드 된 CCSprites를 사용하여 CCSprite를 만들 수 있습니까?

감사합니다.

/편집 : 일부 코드가 추가되었습니다.

CCLayer를 사용하여 코드를 만든 다음 스프라이트를 레이어의 일부로 추가했습니다.

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile: 
     @"avatars.plist"]; 

     CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode 
              batchNodeWithFile:@"avatars.png"]; 
     [self addChild:spriteSheet]; 

     CCSprite *empty = [CCSprite spriteWithSpriteFrameName:@"hold_empty.png"]; 
     CCSprite *boss1 = [CCSprite spriteWithSpriteFrameName:@"hold_boss_1.png"]; 

     CCLayer *holderExample = [[CCLayer alloc] init]; 
     [holderExample setContentSize:CGSizeMake(70, 72)]; 
     [holderExample setPosition:CGPointMake(100, 100)]; 
     [holderExample addChild:empty]; 
     [holderExample addChild:boss1]; 

     [self addChild:holderExample]; 

이것은 내부에 두 개의 스프라이트가있는 레이어를 만드는 것처럼 보입니다. 이것은 옳은 것처럼 보이지만, clickable로 할 수 있는지 또는 다른 이벤트를 처리 할 수 ​​있는지 확실하지 않기 때문에 이것이 올바른지 확신 할 수 없습니다.

또한 색상의 레이어를 추가하고 싶습니다.

Z-위해

:

1) -2에 대한

2) -1 컬러 층

3) 0 아바타

+0

당신은 단순히 다른 CCSprite의 자식으로 CCSprite를 추가한다는 것을 의미합니까? – Ultrakorne

+0

버튼에 대해 CCMenuItemImage를 사용하고 이미지 사용 및 사용 안 함을 설정할 수 있습니다. – Marine

+0

@Ultrakome - 아니, 3 이미지, (1) 상태 컨테이너 (2) 아바타에서 상태 컨테이너에서 (2)를 의미합니다.그런 다음 새 CCSprite를 만들기 위해 아바타 위에 켜짐/꺼짐 상태를 겹친다. – zardon

답변

1

넌 할 수있는 이미지를 empty.png/오프 상태 및 아바타 이미지가있는 사용자 지정 CCSprite의 자식으로 추가 할 수 있습니다. 또한 아바타에 색상을 적용하여 선택 효과를 적용 할 수 있습니다. 이것이 정확히 필요한지 모르겠다.

// 편집 1 이 소스를 확인하고 필요한 경우 알려주십시오. 나는 색깔에 대해 무슨 뜻인지 보여주기 위해했던 것만 큼 간단합니다. 희망이 도움을 https://rapidshare.com/files/3668681798/TestAvatar.zip

+0

나는 샘플을 가지고 있다고 생각한다. (약간의 코드를 추가 했으므로 질문을 보자.) – zardon

+0

그냥 확인하기 위해, 1. on/off 상태에 대한 이미지를 만든다. 2. CCSprite의 자식으로 추가합니다. 이 작업을 수행 할 수는 있지만 아바타에 색상을 추가하여 어떤 의미인지 알 수 없습니다. 컬러 레이어를 의미합니까? – zardon

+0

당신은 CCSprite에 색상을 설정할 수 있습니다, 당신은 그 속성을 사용하여 원하는 효과를 얻을 수 있다고 생각합니다. 어쨌든, 나는 당신이 단지 3 개의 이미지로 이것을 달성 할 수 있다고 생각합니다. 나는 샘플 코드를 얻으려고 노력할 것이다. – Setrio

관련 문제