我正在制作一款太空射击游戏,我希望飞船能够向它所面对的方向发射子弹。我已经想出如何让子弹朝船的方向旋转,但我还没有让它朝正确的方向射击。此刻,我只拍了。我在下面有一个屏幕截图。我怎样才能解决这个问题?这是我的代码:
if shootButton.containsPoint(location) {
let Bullet = SKSpriteNode(imageNamed: "BulletGalaga.png")
Bullet.zPosition = -5
Bullet.position = CGPointMake(ship.position.x, ship.position.y)
Bullet.zRotation = ship.zRotation
Bullet.zPosition = ship.zPosition
let action = SKAction.moveToY(self.size.height + 30, duration: 0.8)
//let action = SKAction.moveTo(self.ship.size.height, duration: 0.8)
let actionDone = SKAction.removeFromParent()
Bullet.runAction(SKAction.sequence([action, actionDone]))
Bullet.physicsBody = SKPhysicsBody(rectangleOfSize: Bullet.size)
Bullet.physicsBody?.affectedByGravity = false
Bullet.physicsBody?.dynamic = false
self.addChild(Bullet)
}
谢谢。
最佳答案
您正在设置 zPosition?你的意思是 zRotation。并且这只会计算子弹绘制的角度,您需要进行一些触发以找出子弹将沿直线到达的位置:
伪代码:
let action = SKAction.moveTo(
CGPointMake(
travelDistance * cos(Bullet.zRotation) + Bullet.position.x,
travelDistance * sin(Bullet.zRotation) + Bullet.position.y
),
duration: 0.8)
关于ios - 向船所面对的方向发射子弹 Swift 和 Sprite Kit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35784784/