即使我在 swift 中使用了 addChild,我的 SKSpriteNode 也不会显示

My SKSpriteNode wouldn't show even though I used addChild in swift

我试图将图像添加到我的游戏场景,但它不会出现。下面是我的代码。希望大家帮帮我

import SpriteKit
import GameplayKit

class GameScene: SKScene {
    var Ground = SKSpriteNode()
    var iceCream = SKSpriteNode()
    override func didMove(to view: SKView) {
        Ground = SKSpriteNode(imageNamed: "background")
        Ground.setScale(0.5)
        Ground.position = CGPoint(x: self.frame.width / 2, y: self.Ground.frame.height / 2)
        self.addChild(Ground)
        iceCream = SKSpriteNode(imageNamed: "VanillaIceCream")
        iceCream.size = CGSize(width: 60, height: 70)
        iceCream.position = CGPoint(x: self.iceCream.frame.width, y: self.frame.height / 2)
        self.addChild(iceCream)
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    }
    override func update(_ currentTime: CFTimeInterval) {

    }
}

当您将 position 设置为 x: self.iceCream.frame.width 您使用 iceCream 定位它。 我相信将它更改为 x: self.frame.width / 2 会解决它。 如果没记错,要设置屏幕左侧的iceCream,将sprite添加到self后定位。 为每个元素设置 zPosition 也很好,以确保它不会隐藏在 background 图像后面。

编辑: 这是您的方法的完整代码(准备 copy/paste):

Ground = SKSpriteNode(imageNamed: "background")
self.addChild(Ground)
Ground.setScale(0.5)
Ground.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
Ground.zPosition = 1.0

iceCream = SKSpriteNode(imageNamed: "VanillaIceCream")
self.addChild(iceCream)
iceCream.size = CGSize(width: 60, height: 70)
iceCream.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
iceCream.zPosition = 2.0