今天遇到了第二个坑,zPosition的问题
在游戏开发过程中,创建的小鸟node节点在执行动画的时候闪烁,甚至有时候不显示,创建上下水管的过程中也是,水管不显示,或者随机显示,FPS值稳定60,但是就是有问题,google了一下发现,跟iOS里不同,在iOS中,控件添加到父视图上时,会有先来后到的顺序,后添加的会处于最上层,而SpriteKit里则不一样,即使你后添加的顺序也不是一定的,需要设置zPosition将节点node的层级手动提升.
zPosition
在SpriteKit中,每个节点都有一个的属性zPosition,默认值为0,之前创建SKView时,我们将其属性ignoresSiblingOrder设置为Yes,这才导致了顺序的随机性,设置ignoresSiblingOrder为No,可以使节点node按照先来后到的顺序绘制。
默认情况下
ignoresSiblingOrder设置为Yes,因为它允许SpriteKit完成潜在的性能优化使游戏运行的更快.
鉴于此,可以将游戏默认背景节点的
zPosition设置为小于0的值