Luk*_*öhl 4 sprite scene sprite-kit skspritenode swift
我想在背景之上创建我的播放器。不知怎的,这不起作用。节点计数器增加 1,但不可见。我在添加背景后添加播放器,因此它应该位于顶部。我用来创建播放器的代码:
var player = SKSpriteNode()
func addPlayer(gameScene: GameScene, xPos: CGFloat, yPos: CGFloat){
player = SKSpriteNode(imageNamed: "player")
player.size = CGSize(width: fieldsWidth, height: fieldsWidth)
player.position = CGPoint(x: xPos, y: yPos)
gameScene.addChild(player)
}
Run Code Online (Sandbox Code Playgroud)
我从另一个类访问该函数,如下所示:
person().addPlayer(self, xPos: fieldsWidth/2, yPos: fieldsWidth/2)
Run Code Online (Sandbox Code Playgroud)
希望你能帮助我。
如果您确定已在所需位置添加了节点(这可能是这里的情况,因为节点计数会增加),您可以设置玩家和背景的zPosition以使玩家位于背景之上:
var player = SKSpriteNode()
//1. somewhere in your code set background's zPosition to 1 before you add it to the scene
func addPlayer(gameScene: GameScene, xPos: CGFloat, yPos: CGFloat){
player = SKSpriteNode(imageNamed: "player")
//2. Set player's zPosition to be higher than background's zPosition
player.zPosition = 2
player.size = CGSize(width: fieldsWidth, height: fieldsWidth)
player.position = CGPoint(x: xPos, y: yPos)
gameScene.addChild(player)
}
Run Code Online (Sandbox Code Playgroud)
关于ignoresSiblingOrder ...我建议您保留它,true因为它在性能方面可以提供很大帮助。关于这种优化的唯一“事情”是,您必须显式设置可以重叠的zPosition相同节点zPosition,但您不想让它们以随机顺序重叠(当设置为 true 时,会忽略 SiblingsOrder ),而是按确定的顺序重叠(由您控制)。这是来自文档:
当此属性设置为 YES 时,在确定渲染顺序时将忽略树中节点的位置。同一 z 位置处的节点的渲染顺序是任意的,并且每次渲染新帧时都可能会改变。
所以,只要显式设置 zPosition 就可以了。
| 归档时间: |
|
| 查看次数: |
2871 次 |
| 最近记录: |