2017-01-16 47 views
1

我试图将游戏手柄控制器固定在我的相机节点的左下角,但是当我添加节点作为我的相机的一个孩子它不显示?SpriteKit - 节点不添加到SKCameraNode - 斯威夫特

let gameCamera = SKCameraNode() 
var joypadBackground : SKSpriteNode = SKSpriteNode(imageNamed: "a") 
override func didMove(to view: SKView) { 

    //Set game camera 
    self.camera = gameCamera 
    joypadBackground.position = convert(CGPoint(x: 0, y: 0), to: gameCamera) 
    joypadBackground.size = CGSize(width: 50, height: 50) 
    joypadBackground.zPosition = 1000 


    gameCamera.addChild(joypadBackground) 

} 

回答

1

你不需要

convert(CGPoint(x: 0, y: 0), to: gameCamera) 

您可以只设置CGPoint位置为(0,0),它应该是相对于相机的空间点。

不知道这是否有帮助,但是我所做的是(通常)在将子节点添加到父节点后定位子节点。这对我来说主要是一个心理提醒,即孩子的位置在父母的坐标空间内。所以我会这样做:

gameCamera.addChild(joypadBackground) 
joypadBackground.position = CGPoint(x: 0, y: 0) 

如果您在SKScene中使用中间屏幕原点,它应该位于屏幕中间。

左下角是负x和负y值,其大小与您的画幅大小有关。