如何在 Swift 中正确地从父类中删除 SKSpriteNode 的子类(从数组中删除,在屏幕上 space...)?

How can I remove a subclass of SKSpriteNode from parent correctly in Swift (to be removed from array, space on screen...)?

我创建了一个子类:

class EnemySprite: SKSpriteNode

并使用以下代码在我的游戏场景中添加了一个敌人:

let enemy = EnemySprite(imageNamed:"enemy.png")
self.addChild(enemy)

现在当我射击敌人时我有代码:

enemy.removeFromParent()

屏幕上没有看到敌人,但_enemiesSpritesArray.count保持不变。另外,当我射击到敌人所在的区域时,子弹会停在那里,就好像精灵还在同一个地方一样。 我尝试添加:

override func removeFromParent() {
    super.removeFromParent()
}

但还是一样。

如何完全删除精灵?

您也应该从数组中删除该实例。

if let index = enemiesSpritesArray.index(of: enemy) {
    enemiesSpritesArray.remove(at: index)
}