gpt4 book ai didi

ios - Swift - 移除特定生成的敌人

转载 作者:行者123 更新时间:2023-11-28 13:07:23 24 4
gpt4 key购买 nike

我的代码目前每秒生成一个新的敌人,因此屏幕上会同时出现多个生成的敌人。我能够检测到碰撞,但我不知道如何检测哪个敌人被击中,以便我可以将其从屏幕上移除。目前,当发生碰撞并且我从屏幕上移除节点时,最后一个生成的敌人被移除,而不是被击中的特定敌人。关于如何检测哪个生成的敌人被击中有什么想法吗?

最佳答案

我假设您正在使用 SpriteKit?

当你创建一个新的敌人时,你应该给它一个名字。为此,请执行 enemyChildNode.name = "enemy"。然后,当检测到碰撞时,使用 enumerateChildNodesWithName 检查哪个节点发生了碰撞。

这是声明此方法的方式:

func enumerateChildNodesWithName(_ name: String,
usingBlock block: ((SKNode!,
UnsafeMutablePointer<ObjCBool>) -> Void)!)

有关此的更多信息,请访问 here .

所以,你应该像这样使用它:

 enumerateChildNodesWithName("enemy") { node, stop in
let enemy = node as! SKSpriteNode
//check if enemy is being hit
//if true: enemy.removeFromParent()
}

希望对您有所帮助!

关于ios - Swift - 移除特定生成的敌人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com