同一のView内の別の{}で、変数(Int型)を共有する方法はありますか？

当方初心者です。
現在、野球のデータを管理するアプリを作っております。
SKScene(GameScene)を使って、バッターが打った打球の、
到達位置
打球の軌道
を表現しようとしています。

下記がそのコードなのですが、
最初に背景とボールを描画し、タッチイベントで打球が到達した場所をタップすると、そこへボールが移動、後にUISegmentedControlで、その打球が、
ゴロ
ライナー
フライ
を選択肢し、
ゴロ　　→　直線
ライナー→　緩い曲線
フライ　→　大きい曲線
で表現をしたいです。

ボールがタップした場所まで移動することができるのですが、
変数（この場合はposition)が{}の中でしか使用できないため、
後半の、
func segconChanged1(sender: UISegmentedControl){
以下の部分で、変数positionの数値が0になってしまいます。
{}の外、この場合別の{}の中、でpositionの数値が使用できれば解決しそうです。

どなたか解る方がいらっしゃれば教えていただけないでしょうか？
他サイトで質問をしたことがあるのですが、
詳しくは教えていただけなく困っております。

よろしくお願いします。


以下GameScene.swift

import SpriteKit
class GameScene: SKScene {  
 
    var myImage : SKSpriteNode!
    var chiten1x = CGFloat()
    var chiten1y = CGFloat()    
    override func didMoveToView(view: SKView) {
        //背景画像。SKSPriteNodeで画像を読み込む。
        let backGround = SKSpriteNode(imageNamed:"stadium414736.png")
        //画面サイズを取得
        let Label = SKLabelNode(text: "\(self.size)")
        Label.position = CGPointMake(self.size.width/2.0,self.size.height/2.0)
        //背景を画面の中央に配置する
        backGround.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
        //画像のサイズを画面に合わせる
        backGround.size = self.size
        //画像を最下層に設置
        backGround.zPosition = -CGFloat.infinity
        // シーンに追加.
        self.addChild(backGround)
        // GameSceneの背景色を青色にする.
        self.backgroundColor = UIColor.blueColor()
        // ボール画像を生成.
        myImage = SKSpriteNode(imageNamed:"ball04.png")
        // ボール画像の描画場所を指定.
        myImage.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
        // シーンに追加.
        self.addChild(myImage)
        
        // ラベル　打球種
        let dakyuushu = SKLabelNode(fontNamed:"Chalkduster")
        dakyuushu.text = "打球種"
        dakyuushu.fontSize = 15
        dakyuushu.position = CGPoint(x:(size.width / 10.0) * 1 , y:(size.height / 35) * 11.1)
        dakyuushu.fontColor = UIColor.whiteColor()
        self.addChild(dakyuushu)
        //選択肢
        let myArray1: NSArray = ["  ゴロ  ", "  ライナー  ", "  フライ  " ]
        // SegmentedControlを作成する.
        let dakyuushu1: UISegmentedControl = UISegmentedControl(items: myArray1 as [AnyObject])
        dakyuushu1.center = CGPoint(x:(size.width / 10.0) * 5.8 , y:(size.height / 35) * 23.5)
        dakyuushu1.tintColor = UIColor.yellowColor()
        // イベントを追加する.
        dakyuushu1.addTarget(self, action: "segconChanged1:", forControlEvents: UIControlEvents.ValueChanged)
        // Viewに追加する.
        self.view!.addSubview(dakyuushu1)
    }
    
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        for touch: AnyObject in touches {
            
            // タッチされた場所の座標を取得.
            let position = touch.locationInNode(self)
            //画面の中心
            let midX = CGRectGetMidX(self.frame)
            let midY = CGRectGetMidY(self.frame)
            // ボール位置・軌跡のエリア条件
            let area2 = (position.x - midX) / (position.y - (midY - (midY / 5.0)))
            if position.y > midY - (midY / 5.0) {
                if area2 >= -1  && area2 <= 1 {
                    //　打球到達エリア判定
                    let area1 = ((position.x - midX) / (position.y - midY))
                    if position.y - midY <= 0 && position.x - midX <= 0 {
                        print("left")
                    } else if position.y - midY < 0 && position.x - midX > 0 {
                        print("right")
                    } else if area1 < -0.3 {
                        print("left")
                    } else if area1 >= -0.3 && area1 <= 0.3 {
                        print("center")
                    } else if area1 > 0.3 {
                        print("right")
                    }
                }
                // 始点を記憶するインスタンス変数
                var position = CGPointZero
                // 始点を記憶
                position = self.convertPointFromView((touches.first?.locationInView(view))!)
                // CGPathを生成
                let path = CGPathCreateMutable()
                // 描画のペンを始点に移動
                CGPathMoveToPoint(path, nil, position.x, position.y)
                // カーブを描く
                CGPathAddCurveToPoint(path, nil, chiten1x , chiten1y , midX, midY, midX, midY)
                // "curve"という名前のノードがあったら消去する
                if let theNode = self.childNodeWithName("curve") {
                    theNode.removeFromParent()
                }
                // pathからSKShapeNodeを生成。
                let shapeNode = SKShapeNode(path: path)
                // ノードに名前を付ける
                shapeNode.name = "curve"
                // 線の太さを指定
                shapeNode.lineWidth = 1.0
                //軌跡を描画
                self.addChild(shapeNode)
                // タッチされた場所に画像を移動
                myImage.position = position
            }
        }
    }
    
    //打球種　SegmentedControlの値が変わったときに呼び出される.
    func segconChanged1(sender: UISegmentedControl){

        //画面の中心
        let midX = CGRectGetMidX(self.frame)
        let midY = CGRectGetMidY(self.frame)
        
        switch sender.selectedSegmentIndex {
        case 0:
            chiten1x = position.x
            chiten1y = position.y
        case 1:
            chiten1x = (position.x + midX) / 2.0
            chiten1y = position.y
        case 2:
            chiten1x = (position.x + midX) / 2.0
            chiten1y = (position.y + (midY / 1.5))
        default:
            print("Error")
        }
    }
}