如何在 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)
}
我创建了一个子类:
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)
}