簡體   English   中英

SpriteKit - 節點未添加到 SKCameraNode - Swift

[英]SpriteKit - Nodes not adding to SKCameraNode - Swift

我試圖將游戲手柄控制器固定到我的相機節點的左下角,但是當我將該節點添加為我的相機的子節點時,它沒有顯示?

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)

}

我第一次使用 SKCameraNode 並創建平視顯示器時遇到了同樣的問題。

基本上你必須記住相機有兩個部分。 運行其功能並渲染其子項。 通過將場景的相機設置為 gameCamera,您已經設置了功能,但您的相機不在用於渲染的節點樹中。 因此,如果您有一個需要渲染其子項的相機,請不要忘記將其作為子項添加到場景中,然后將顯示該相機的子項。

self.camera = gameCamera
self.addChild(gameCamera)

希望通過一個非常簡單的解決方案幫助某人避免一個非常常見的錯誤。

你不需要

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

您可以將 CGPoint 位置設置為 (0,0) 並且它應該位於相對於相機空間的那個點。

不確定這是否有幫助,但我所做的是(通常)在將子節點添加到其父節點后定位它。 對我來說,這主要是一種心理提醒,孩子的位置在父母的坐標空間內。 所以我會做這樣的事情:

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

如果您在 SKScene 中使用中間屏幕原點,則它應該位於屏幕中間。

左下角將是負 x 和負 y 值,其大小與您的幀大小有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM