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

问题描述 投票:0回答:1

我创建了一个子类:

class EnemySprite: SKSpriteNode

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

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

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

enemy.removeFromParent()

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

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

但仍然是一样的。

如何完全删除精灵?

swift sprite-kit skspritenode
1个回答
2
投票

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

if let index = enemiesSpritesArray.index(of: enemy) {
    enemiesSpritesArray.remove(at: index)
}
© www.soinside.com 2019 - 2024. All rights reserved.