角度和矢量之间的关系 - Sprite Kit Swift

时间:2015-03-07 10:41:38

标签: swift vector rotation sprite-kit

我正在创造一个游戏,我有一个射击子弹的正典。 我已经有了改变正典方向的代码,:

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {


    for touch: AnyObject in touches {


        let location = touch.locationInNode(self)


        if self.nodeAtPoint(location) == self {


            if location.x < self.size.width / 2 {


                let x = location.x
                let y = location.y

                let AB = self.size.width / 2 - x

                let angleRadians = atan(AB/y)

                let angleDegrees = angleRadians * (180 / CGFloat(M_PI))

                canon.zRotation = angleDegrees * (CGFloat(M_PI) / 180)


            }


            if location.x > self.size.width / 2 {


                let x = location.x
                let y = location.y

                let AB = x - self.size.width / 2

                let angleRadians = atan(AB/y)

                let angleDegrees = angleRadians * (180 / CGFloat(M_PI))

                canon.zRotation = -(angleDegrees * (CGFloat(M_PI) / 180))


            }


        }


    }

我想确定用户射击时子弹的方向, 我尝试了一个动作(moveBy),但我没有找到正典的方向和子弹方向的矢量之间的关系。 如果触摸的位置是CGPoint(x:100,y:100),则矢量不能是CGVectorMake(100,100),因为它的值太大了!

我用moveTo动作测试,子弹的方向是完美的,但子弹停在触摸位置,我希望子弹继续永远移动!

感谢您的帮助!

0 个答案:

没有答案