如何在Swift中正确地从父节点中删除SKSpriteNode的子类(要从数组中移除,屏幕上的空格......)?

时间:2017-12-29 18:12:36

标签: swift sprite-kit skspritenode

我创建了一个子类:

class EnemySprite: SKSpriteNode

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

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

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

enemy.removeFromParent()

屏幕上看不到敌人,但_enemiesSpritesArray.count保持不变。此外,当我向敌人射击区域时,子弹停在那里,好像精灵仍然在同一个地方。 我试图添加:

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

但仍然相同。

如何完全删除精灵?

1 个答案:

答案 0 :(得分:2)

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

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