这是我在这里的第一篇文章,我找不到与其他类似问题有关的答案。雪碧节点随机渲染......需要帮助
所以,问题是,我正在开发一款游戏,但它在模拟器上和我的iOS设备上的这个项目上表现得非常怪异。 Sprite节点有时出现,有时不出现。这就像一个随机的。我看到屏幕上的节点计数器正在添加它们,但我没有看到精灵。我有2个精灵在didMoveToView方法添加和1个SKNode应表现为容器层用于保持精灵上命名为mainLayer在全球范围内声明的背景的顶部:
var mainLayer = SKNode()
var character:SKSpriteNode!
var didShoot:Bool!
override func didMoveToView(view: SKView) {
self.addChild(mainLayer)
let background = SKSpriteNode(imageNamed: "bg")
background.position = CGPoint(x:self.frame.midX, y:self.frame.midY)
background.size = self.view!.bounds.size
background.anchorPoint = CGPoint(x:0.5, y:0.5)
background.blendMode = SKBlendMode.Replace
self.addChild(background)
character = SKSpriteNode(imageNamed: "character")
character.position = CGPoint(x:self.frame.midX, y:0.0)
mainLayer.addChild(character)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
didShoot = true
}
override func didSimulatePhysics() {
if didShoot
{
shoot()
didShoot = false
}
mainLayer.enumerateChildNodesWithName("bullet") { (node, stop) -> Void in
if !CGRectContainsPoint(self.frame, node.position)
{
node.removeFromParent()
}
}
}
shoot()
{
let bullet = SKSpriteNode(imageNamed: "bullet")
/*
positioning, physics bodies, etc...this works...
*/
bullet.name = "bullet"
mainLayer.addChild(bullet)
}
物理学中,定位在场景中效果很好,因为当我触摸屏幕时,屏幕上的节点数会增加,但每次运行应用程序时都看不到它们,除了始终存在的背景之外。所以我必须在我的iOS设备或我的模拟器上重新启动游戏几次,最终他们会开始出现,并且在游戏过程中他们会在某个时间点消失并再次出现......任何想法?我正在使用XCode 7.2.1和Swift 2.1.1
作为所有的答案注意,检查zPositions男人。 – TheCodingArt