제 게임에는 일련의 아바타가 있습니다. 현재 각 아바타에는 작은 사각형 용기가있어이 이미지가 버튼이며 클릭 할 수 있음을 나타냅니다.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 아바타
당신은 단순히 다른 CCSprite의 자식으로 CCSprite를 추가한다는 것을 의미합니까? – Ultrakorne
버튼에 대해 CCMenuItemImage를 사용하고 이미지 사용 및 사용 안 함을 설정할 수 있습니다. – Marine
@Ultrakome - 아니, 3 이미지, (1) 상태 컨테이너 (2) 아바타에서 상태 컨테이너에서 (2)를 의미합니다.그런 다음 새 CCSprite를 만들기 위해 아바타 위에 켜짐/꺼짐 상태를 겹친다. – zardon