我正在创造一个游戏,我有一个射击子弹的正典。 我已经有了改变正典方向的代码,:
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动作测试,子弹的方向是完美的,但子弹停在触摸位置,我希望子弹继续永远移动!
感谢您的帮助!