ios - 向船所面对的方向发射子弹 Swift 和 Sprite Kit

标签 ios swift sprite-kit swift2

我正在制作一款太空射击游戏,我希望飞船能够向它所面对的方向发射子弹。我已经想出如何让子弹朝船的方向旋转,但我还没有让它朝正确的方向射击。此刻,我只拍了。我在下面有一个屏幕截图。我怎样才能解决这个问题?这是我的代码:

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)

        }

谢谢。

Screenshot

最佳答案

您正在设置 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/

相关文章:

ios - 45 分钟后计时器不会停止

ios - 使用 startMonitoringVisits 监控区域

ios - 从 firebase Swift 加载聊天

swift - 在 HalfSizePresentationController 类中展开时意外发现 nil

ios - 如何将联系人移动和复制到 Gmail 帐户 iOS

ios - 隐藏导航栏时显示状态栏

ios - 如何使用 Swift 以编程方式添加约束

ios - 在 Sprite Kit 中以编程方式发送邮件

ios - 使用 SKAction 的完成触发 while 循环的结束

ios - Sprite Kit 中的碰撞检测