几个层使用相同的精灵表

时间:2013-10-07 03:32:25

标签: cocos2d-iphone

请原谅我,如果这听起来有点微不足道。在我的游戏中,几个图层类使用相同的精灵表。我想避免在每个图层类中声明相同的批处理节点。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

你做不到。一个节点只能有一个父节点。如果创建批处理节点并将其添加到一个图层,则无法将其添加到另一个图层。如果您将引用传递给批处理节点,那么它会使图层变得毫无意义,因为精灵将是添加批处理节点的图层的子节点。

您可以改为使用单个批处理节点,并通过向批处理节点添加带有空纹理rect的“图层精灵”,然后将实际精灵添加到图层精灵来对sprite进行分组。

要创建具有空纹理的精灵,请使用initWithTexture:rect:方法并使用CGRectZero。或者,如果这不再起作用,你也可以使用一个非常小的矩形并将精灵的不透明度设置为0.将可见设置为NO也可能有效,具体取决于是否在sprite批处理的精灵中传播可见性。