2016-09-23 6 views
-1

私はGameSceneクラスのfunc didMove(toView)の中にタイマーを持っていますが、今はUIViewControllerであるGameViewControllerファイルからそれにアクセスしようとしています。私はこの追加しようとした:実際にSKSceneである別のView Controllerから変数にアクセスする方法は?

var gameScene: GameScene! 

をしかし、私はボタンがクリックされた後、変数にアクセスしようとすると、それは例えば、働いていない:

self.gameScene.timer = timer.etcetc 

ありがとうございました。

答えて

0

あなたはそのようなあなたのgameSceneをグローバル化する必要はありません、これは動作します:私はすべてがあなたのタイマ変数がよりグローバルにある

をした後、私はちょうどあなたのメインのViewController内側にアクセスすることができます

class GameScene : SKScene { 
    var timer: NSTimer! 

    override func didMoveToView(view: SKView) { 
     timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector(), userInfo: nil, repeats: false) 
    } 
} 


class Viewcontroller : UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var skView = self.view as! SKView 
     let gameScene = GameScene() 
     skView.presentScene(gameScene) 

     gameScene.timer = //whatever 

    } 
} 
+0

しかし、ビューコントローラは完全に異なるファイルにありますか? – safasfmasklfalskf

+0

これは問題ではありません:)クラスはクラスです.2つのクラスを1つのファイルに入れたり、2つのクラスを別々のクラスに入れたりすることができます。 – Eric

関連する問題