2013-10-07 51 views
0

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

回答

0

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

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

要创建具有空纹理的精灵,请使用initWithTexture:rect:方法并使用CGRectZero。或者,如果这种情况不再有效,您也可以使用非常小的矩形,并将精灵的不透明度设置为0.根据是否在精灵批量精灵中传播可见性,可见到否的设置也可以起作用。