如果这听起来有点微不足道,请原谅我。在我的游戏中,几个图层类使用相同的精灵表。我想避免在每个层类中声明相同的批处理节点。我怎样才能做到这一点?
问问题
52 次
1 回答
0
你不能。一个节点只能有一个父节点。如果您创建批处理节点并将其添加到一层,则无法将其添加到另一层。如果您将引用传递给批处理节点,这将起作用,但它使图层变得毫无意义,因为精灵将成为批处理节点添加到的图层的子级。
您可以改为使用单个批处理节点并通过将带有空纹理矩形的“图层精灵”添加到批处理节点,然后将实际精灵添加到图层精灵来对精灵进行分组。
要创建具有空纹理的精灵,请使用 initWithTexture:rect: 方法并使用 CGRectZero。或者,如果这不再有效,您也可以使用非常小的矩形并将精灵的不透明度设置为 0。将可见设置为 NO 也可能有效,具体取决于可见性是否在精灵批处理精灵中传播。
于 2013-10-07T09:00:54.457 回答