我有一个我在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
}
答案 0 :(得分:0)
你可能会发现通过将你的imageView与SKScene一起添加到视图控制器中,事情正在绘制所有奇怪的事情(也可能是你的imageView正在得到dealloc&#39;但我不能说基于在你的代码上。)
我假设你正在使用基本的Xcode模板来设置你的观点和内容;所以要做草,在GameScene
类中尝试这样的事情,而不是上面的代码(我假设在你的GameViewController
类中)。您可以将代码放在didMove(to view: SKView)
中,也可以添加sceneDidLoad()
个函数。为草做一个SKSpriteNode并像你已经做的那样平铺它。我在这里提到的两种方法是与UIViewController领域中viewDidLoad
和viewWillAppear
方法最密切相关的方法。
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
它有一些不错的便利。