我遇到了这个奇怪的问题。我正在使用 addChild 从 GameScene didMove(to view: SKView) 内部添加一个敌人(SKSpriteNode)。
敌人已定位到 x:100、y:100 并且显示正确。
我还有另一个动画,完成后我在同一位置添加另一个敌人。但敌人出现在不同的位置。完成方 block 如下图。
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
}
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
你的敌人类有物理主体委托(delegate)?也许您可以首先看到它,因为如果它有它,您必须搜索您的 isDynamic 属性。当该属性等于 true 时,同一空间中不能有 2 个实体。
关于swift - 将 SkSpriteNode 定位在 SkAction 完成处理程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45787674/