如何在CCSprite之上层叠CCSprite?

时间:2012-01-23 08:55:27

标签: cocos2d-iphone layer ccsprite cclayer

在我的游戏中,我有一系列的头像,目前每个头像都有一个小的矩形容器,表示这个图像是一个按钮,可以点击。

但是,我意识到我需要更改容器的颜色以表示视觉效果(例如按钮单击)。

例如:

关闭状态=灰色容器。在州=红色容器

我不想重复关闭/打开状态的每个头像,而是想分开容器和头像,有点像粗糙的绘图;

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

因此,我们将容器,容器和化身分开。

然后,在我的游戏中,我希望能够使用我想要使用的图层重新构造精灵,此外我希望新构造的精灵像单个CCSprite一样,所以我可以正确定位它,或者用精灵做其他事情。

Sorta就像从各种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];

这似乎在其中创建了一个带有两个精灵的图层。这似乎是正确的,但我不确定这是否正确,因为我不确定我是否可以使其可点击,或处理其他事件。

另外,我想为颜色添加一层。

在Z顺序中:

1)-2 empty.png

2)-1色层

3)0头像

1 个答案:

答案 0 :(得分:1)

您可以为开/关状态创建图像,并添加为具有on,off和avatar图像的自定义CCSprite的子项。此外,您可以将颜色应用于头像以进行选择效果。不知道这是否正是你所需要的。

// EDIT1 检查这些来源,如果您需要,请告诉我。我做的很简单就是为了向你展示我对颜色的意思。希望这有帮助https://rapidshare.com/files/3668681798/TestAvatar.zip