2016-05-16 1 views
0

新しいファイル "Constructor.swift"コンストラクタクラスの中でGameSceneに新しいスプライトを追加したいと思います。私は自分のGameViewController内にゲッターを作ろうとしました。私はGameSceneの現在のインスタンスを取得してスプライトを追加することができましたが、これは動作しません。別のクラスからGameSceneにスプライトを追加する

結論;

GameSceneの現在のインスタンスを別のクラスで取得するにはどうすればよいでしょうか。そのため、すべてのスプライトがコンストラクタクラスで構築されるため、コードを簡単に保守することができます。私は私の "GameScene.sks"ファイルに膨大な量のコード行を残したくありません。

答えて

0

あなたは、例えば、一般的な名前のクラスでサブクラス化することができます。これは、保守コードを書くための唯一の方法である

class MyDefaultScene: SKScene { 
    var sprite1: SKSpriteNode! 
    var followTrack: SKAction! 
    var followTrackForever: SKAction! 
    var clockWise : Bool = false 

    func setDefaultPhisics() { 
     self.physicsBody!.mass = 0 
     self.physicsBody!.friction = 0 
     self.physicsBody!.affectedByGravity = false 
     self.physicsBody?.linearDamping = 0 
     self.physicsBody?.angularDamping = 0 
     self.physicsBody?.restitution = 1 
     self.physicsBody?.dynamic = false 
    } 
    ... 
} 

class GameScene1: MyDefaulScene { 
    override func didMoveToView(view: SKView) { 
     print("∙ \(NSStringFromClass(self.dynamicType))") 
     print("clockwise: \(self.clockWise)") 
    } 
} 

class GameScene2: MyDefaulScene { 
    override func didMoveToView(view: SKView) { 
     print("∙ \(NSStringFromClass(self.dynamicType))") 
     print("clockwise: \(self.clockWise)") 
    } 
} 
+0

?私はそれをこのようにしなければならない、それは私にきれいに見える。 – Aphalleon

+0

MyShip.swift(クラス:SKShapeNode)MyBullet(クラス:SKShapeNode)のような "モデル"オブジェクトを作成しようとすると、すべての関数やプロパティをすべてのプロジェクトに共有するクラス識別なしで単一のスワイプモジュールを作成できます。 ...あなたが何をする必要があるかによって... –

関連する問題