Cocos2d iphone 使用相同的精灵表的多个层

Cocos2d iphone 使用相同的精灵表的多个层,cocos2d-iphone,Cocos2d Iphone,如果这听起来有点琐碎,请原谅。在我的游戏中,几个图层类使用相同的精灵表。我希望避免在每个层类中声明相同的批处理节点。我怎样才能做到这一点呢?你不能。一个节点只能有一个父节点。如果创建批处理节点并将其添加到一个图层,则无法将其添加到另一个图层。如果将引用传递给批处理节点,这将起作用,但这会使层变得毫无意义,因为精灵将是批处理节点添加到的层的子对象 您可以改为使用单个批处理节点并通过向批处理节点添加带有空纹理矩形的“层精灵”,然后将实际精灵添加到层精灵来对精灵进行分组 要创建具有空纹理的精灵,请使用

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

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

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

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