Sprite kit 为什么我的SpriteKitNode位置没有正确显示?

Sprite kit 为什么我的SpriteKitNode位置没有正确显示?,sprite-kit,position,swift3,Sprite Kit,Position,Swift3,我是SpriteKit新手,我正在学习一个教程,该教程在纵向模式下将SpritekitNode定位在靠近屏幕底部的中心,但无论我使用何种代码,我的对象都不会采用教程中讨论的位置。我已经看过了其他几个教程,它们在定位SpriteKitNode的代码方面几乎是一样的 这是我在GameSecene.swift中仅有的代码: import SpriteKit import GameplayKit class GameScene: SKScene { var player:SKSpriteNo

我是SpriteKit新手,我正在学习一个教程,该教程在纵向模式下将SpritekitNode定位在靠近屏幕底部的中心,但无论我使用何种代码,我的对象都不会采用教程中讨论的位置。我已经看过了其他几个教程,它们在定位SpriteKitNode的代码方面几乎是一样的

这是我在GameSecene.swift中仅有的代码:

import SpriteKit
import GameplayKit

class GameScene: SKScene {

    var player:SKSpriteNode!

    override func didMove(to view: SKView) {

        player = SKSpriteNode(imageNamed: "Spaceship")
        player.xScale = 0.5
        player.yScale = 0.5

        player.position = CGPoint(x: self.frame.size.width / 2, y: player.size.height / 2 + 20)

        self.addChild(player)
    }

    override func update(_ currentTime: TimeInterval) {
        // Called before each frame is rendered
    }
}
我还没有向GameSecene.sks添加任何内容,也没有对info.plist进行任何更改。通过上面的代码,mySpriteKitNode显示在屏幕的右中央,如下图所示。宇宙飞船应该放在红色X附近

我看过一些关于SpriteKit定位问题的帖子,但还没有找到解决方案


如果有人能解释一下我到底做错了什么?谢谢你,因为你正在学习的教程可能已经过时了。早些时候,当从
sks
文件加载场景时,它的
anchorPoint
设置为0,0。现在,默认设置为0.5,0.5

因此,您可以使用当前代码,但将场景的锚定点设置为0.0、0.0,或者保留场景的
锚定点
,并相应地设置播放器的
位置
属性:

//player.position.x should be 0 which is middle of the screen
player.position.y = -frame.size.height / 2.0 + player.size.height/2.0 + 20.0