SpriteBuilder中同父节点的显示顺序

如下图:

SpriteBuilder中同父节点的显示顺序

到目前为止,GameScene依赖于节点在SpriteBuilder中的顺序去决定其绘制的顺序。

level content(_levelNode)被首先绘制,然后GameMenuLayer被画在前者的上面。

不管如何,现在你在代码中删除了_levelNode,然后加载了一个新的并且把它作为GameScene的一个孩子添加进来。添加一个节点将总是将其放在绘制列表的最后面。

因此,绘制顺序现在反转了,所以你不再能看到pause按钮了(其在GameMenuLayer层上).

为了修复这个问题,修改addChild:方法为:

level.zOrder = -1;
[self addChild:level];
//or将上面两句换成下面一句:
//[self addChild:level z:-1];

z序(zOrder)属性决定节点的绘制顺序。同一个父节点的所有子节点,z序低的在z序高的节点之前绘制。如果子节点的z序相同则按其添加到父节点的顺序显示。

上一篇:欢迎各位访问我的参赛主页,感谢你的投票支持!


下一篇:数据结构之自建算法库——广义表