如何在Sprite-Kit中更改Sprite的z顺序?
Cocos2d代码:
[parentNode addChild:sprite1 z:3];
[parentNode addChild:sprite2 z:2];
[parentNode addChild:sprite3 z:1];
Run Code Online (Sandbox Code Playgroud)
我在Sprite-Kit中尝试了下面的代码.但它没有改变z顺序
[parentNode insertChild:sprite1 atIndex:3];
[parentNode insertChild:sprite2 atIndex:2];
Run Code Online (Sandbox Code Playgroud)
Lea*_*s2D 30
对于绘制顺序,请使用zPosition节点的属性:
zPosition节点相对于其父节点的高度.
默认值为0.0.正z轴向观察者投射,使得具有较大z值的节点更靠近观察者.渲染节点树时,计算每个节点的高度(绝对坐标),然后树中的所有节点从最小z值渲染到最大z值.如果多个节点共享相同的z位置,则对这些节点进行排序,以便在子节点之前绘制父节点,并按照它们在父节点的子数组中出现的顺序呈现兄弟节点.命中测试以相反的顺序处理.
SKView类的
ignoresSiblingOrder属性控制是否为同一z位置的节点启用节点排序.
您也可以使用insertChild:atIndex:来影响z顺序,但请记住,index是数组中对象的索引,而不是它zPosition(即atIndex参数与zcocos2d中的参数不同,实际上它是反向的).在较低索引处添加的节点将在具有较高索引的节点之前绘制.
另请注意,您不能在超出范围的索引处插入节点.来自NSMutableArray文档:
[..]您不能在大于当前数组计数的索引处插入对象.例如,如果一个数组包含两个对象,其大小为2,那么您可以在索引0,1或2处添加对象.索引3是非法的并且超出范围; 如果您尝试在索引3处添加对象(当数组的大小为2时),NSMutableArray会引发异常.
| 归档时间: |
|
| 查看次数: |
8068 次 |
| 最近记录: |