I am currently creating a 2D game in which I have a cannon staying at the bottom of the screen that fires projectiles to some targets in the upper part of the screen. The user can rotate the cannon in order to aim for the targets. I want the projectile to be fired to the location that the canon faces. I have no idea how to do that and I need your help... Heres my code ->
import SpriteKit
class GameScene: SKScene {
    var canon = SKSpriteNode()
    var projectile = SKSpriteNode()
    var touching = false
    var locked = false
    var location = CGPoint()
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        projectile.position = canon.position
        projectile.color = UIColor.whiteColor()
        projectile.size = CGSize(width: 50, height: 50)
        projectile.physicsBody?.affectedByGravity = false
        projectile.physicsBody?.linearDamping = 1
        projectile.physicsBody?.dynamic = true
        addChild(projectile)
        canon.zPosition = 2
        canon = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 50, height: 200))
        canon.position = CGPoint(x: self.size.width/2.0, y: 10)
        addChild(canon)
            }
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       /* Called when a touch begins */
        touching = true
        let touch = touches.first as UITouch!
        location = touch.locationInView(self.view)
    }
    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
        rotateCanon(location.x)
        projectile.zRotation = canon.zRotation
    }
    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
        touching = false
    }
    func rotateCanon(locationx:CGFloat) {
        if locationx <= frame.width/5 && touching {
            print(1)
            canon.runAction(SKAction.rotateByAngle(0.01, duration: 0.1))
        }
        if locationx > frame.width/5 && touching {
            print(2)
            canon.runAction(SKAction.rotateByAngle(-0.01, duration: 0.1))
        }
    }
}`
Thanks a lot if you can help that would be awesome :D
 
    