這是我在這裏的第一篇文章,我找不到與其他類似問題有關的答案。雪碧節點隨機渲染......需要幫助
所以,問題是,我正在開發一款遊戲,但它在模擬器上和我的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