返回GameScene时,SpriteNode消失

时间:2018-01-08 19:13:35

标签: swift sprite-kit

我有一个我在GameScene中显示的背景精灵。当我去另一个场景(BuildViewController)并通过背景返回时消失了。我确定这是一个简单的解决方案,它不再像我上面所说的那么复杂。下面是一些代码:)

while length <= 6 {
    while wide <= 6 {
        let imageViewBackground = UIImageView(frame: CGRect(x:0 + (wide*100), y:0 + (length*200), width: 100, height: 200))
        imageViewBackground.image = UIImage(named: "grass.png")
        self.view?.addSubview(imageViewBackground)
        self.view?.sendSubview(toBack: imageViewBackground)
        wide = wide + 1
    }
    wide = 0
    length = length + 1
}

1 个答案:

答案 0 :(得分:0)

你可能会发现通过将你的imageView与SKScene一起添加到视图控制器中,事情正在绘制所有奇怪的事情(也可能是你的imageView正在得到dealloc&#39;但我不能说基于在你的代码上。)

我假设你正在使用基本的Xcode模板来设置你的观点和内容;所以要做草,在GameScene类中尝试这样的事情,而不是上面的代码(我假设在你的GameViewController类中)。您可以将代码放在didMove(to view: SKView)中,也可以添加sceneDidLoad()个函数。为草做一个SKSpriteNode并像你已经做的那样平铺它。我在这里提到的两种方法是与UIViewController领域中viewDidLoadviewWillAppear方法最密切相关的方法。

while length <= 6 {
    while wide <= 6 {
        let grassSprite = SKSpriteNode(imageNamed: "grass.png")
        grassSprite.position = CGPoint(x: (wide * 100), y: (length * 200))
        self.addChild(grassSprite
        wide += 1
    }
    wide = 0
    length += 1
}

所有这一切都说,看起来你正试图为某些东西制作草背景,在这种情况下,你应该看看SKTileGroup它有一些不错的便利。