Я пытаюсь создать игру «Space Invaders» быстро, когда пользователь прикасается к экрану, пуля снимается с корабля, но когда я пытаюсь коснуться ее снова, пока пуля движется через экран у меня есть NSException, и игра прерывается. Как настроить действие так, чтобы могло быть несколько экземпляров действия, чтобы стрелок был полуавтоматическим. Ниже мой текущий контроллер сцены.Разрешить несколько экземпляров SKAction
import SpriteKit
class GameScene: SKScene {
let background = SKSpriteNode(imageNamed: "background")
let heroShip = SKSpriteNode(imageNamed: "heroShip")
let bullet = SKSpriteNode(imageNamed: "bullet")
override func didMoveToView(view: SKView) {
/* Setup your scene here */
background.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame))
heroShip.position = CGPointMake(self.size.width/6.0, self.size.height/2.0)
self.heroShip.zPosition = 1.0
self.addChild(background)
self.addChild(heroShip)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
bullet.position = CGPointMake(heroShip.position.x + bullet.size.width/2, heroShip.position.y)
let action = SKAction.moveToX(self.frame.width + self.bullet.size.width, duration: 0.5)
self.addChild(bullet)
bullet.runAction(action, completion: {
self.bullet.removeAllActions()
self.bullet.removeFromParent()
})
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
Если вы касаетесь когда пуля движется, вам нужно создать еще одну пулю? –
, так что вы хотите иметь несколько пуль, выстреливших с одного корабля? –