【发布时间】:2012-01-23 08:55:27
【问题描述】:
在我的游戏中,我有一系列头像,目前每个头像都有一个小矩形容器,表示这个图片是一个按钮,可以点击。
但是,我意识到我需要更改容器的颜色来表示视觉效果(例如按钮单击)。
例如:
关闭状态 = 灰色容器。开启状态 = 红色容器
与其在开/关状态下重复每个头像,我想将容器和头像分开,有点像这张粗略的绘图;
+------+ +------+
| | | | O
| OFF | | ON | / \
| | | | ---
+------+ +------+
因此,我们将 off 容器、on 容器和头像分开。
然后,在我的游戏中,我希望能够使用我想要使用的图层重新构建精灵,此外我希望新构建的精灵表现得像一个单一的 CCSprite,这样我就可以正确定位它,或者用精灵做其他事情。
有点像从相互叠加的各种 CCSprite 创建一个 CCSprite。
因此,我怎样才能将多个 sprite 叠加在一起,然后使用分层的 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];
这似乎创建了一个包含两个精灵的图层。这似乎是正确的,但我不确定这是否正确,因为我不确定是否可以使其可点击或处理其他事件。
另外,我想为颜色添加一个图层。
按 Z 顺序:
1) -2 空.png
2) -1个颜色层
3) 0 个头像
【问题讨论】:
-
您的意思是简单地将一个 CCSprite 添加为另一个 CCSprite 的子级?
-
您可以为按钮使用 CCMenuItemImage 并设置启用和禁用图像..
-
@Ultrakome - 不,我的意思是 3 张图片,(1) 关闭状态容器 (2) 状态容器 (3) 头像。然后,我将关闭/开启状态叠加在头像之上,制作一个新的 CCSprite
-
@Marine - 我确实在 CCMenuItemImage 上玩了一点按钮,但我不知道如何在其中添加精灵
-
@Ultrakorne - 想象一下一堆卡片。第一张卡片/图层是头像精灵,第二张卡片/图层是关闭/开启状态。不过,整个事情应该是一个 CCSprite。
标签: cocos2d-iphone layer ccsprite cclayer