使用同一精灵表的多个图层



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

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

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

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

最新更新