【发布时间】:2018-01-28 23:19:05
【问题描述】:
我遇到了这个奇怪的问题。我正在使用 addChild 从 GameScene didMove(查看:SKView)内部添加一个敌人(SKSpriteNode)。
敌人已经定位到 x:100, y:100 并且显示正确。
我还有另一个动画,完成后我在同一位置添加了另一个敌人。但是敌人出现在不同的位置。完成方块如下图。
holeExplosion.runHoleExplosionAction {[unowned self] in
//self.addEnemy(enemyCount: 1, hole: holeExplosion)
var modEnemy: ParentEnemy? = nil
modEnemy = Enemy1(imageNamed: "Zombie1Jump1.png", healthPower:30)
print(" \(self.scene?.position.x) \(self.scene?.parent) ")
self.addChild(modEnemy!)
modEnemy!.enemySpeed = self.enemy1Speed
modEnemy!.name = "enemy1"
modEnemy!.position = CGPoint (x: 100 , y: 100)
modEnemy!.zPosition = 2
}
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
“self”不是场景,self是爆炸节点,需要用self.scene.addChild(modEnemy!)添加到场景中
-
我检查了 self.scene.add 它仍然显示在同一位置。
-
“显示”是什么意思,位置是相对于父级的,而不是绝对的。如果父母是 10 岁,孩子是 20 岁,那么实际上孩子是 30 岁,但它只会显示 20
-
是的,我已经检查过这个观点。我确实更改了holeExpansion 的位置以检查它所指的父级是否也是holeExpansion 而不是场景。但是扩孔位置的变化并不影响敌人的位置。它与holeExpansion 无关。
标签: swift sprite-kit skspritenode skaction completion