我正在尝试添加我的对象(子弹(的多个实例,以便玩家可以射击子弹,然后射击另一颗子弹。我正在使用以下代码,但它给了我一个线程 1 信号 sigbart 错误。有人可以解释一下代码有什么问题吗?谢谢!
let bulletmove = SKAction.moveTo(y: self.frame.height, duration: 2)
let bulletremove = SKAction.removeFromParent()
addChild(bullett)
bullett.run(SKAction.sequence([bulletmove, bulletremove]))
如果多次添加SKSprite,则会发生错误。
你需要做的是创建一个SKSpritenode,每次都要添加。你可以有一个函数每次都创建项目符号
func addBullet(){
var bullet = SKSpriteNode(imagenamed: "bullet")
bullet.position = //Give the point of origin as CGPoint. Maybe same as the shooter..
addChild(bullet)
bullet.run(SKAction.moveTo(y: self.frame.height, duration: 2))
}
所以每次你调用addBullet((,也许在触摸开始,你可以创建新的项目符号移动到屏幕末尾而不会崩溃。所以重点是为每个addChild提供var bullet = SKSpriteNode(图像名称:"子弹"(。