2016-05-16 14 views
0

Ich möchte ein neues Sprite zu meinem GameScene innerhalb meiner neuen Konstruktorklasse "Constructor.swift" hinzufügen. Ich habe versucht, einen Getter innerhalb meines GameViewControllers zu machen, damit ich die aktuelle Instanz meines GameScene bekommen konnte und dann das Sprite dazu fügte, aber das funktioniert nicht.Hinzufügen eines Sprites zu GameScene aus einer anderen Klasse

Fazit;

Wie bekomme ich die aktuelle Instanz meines GameScene in einer anderen Klasse, so würde mein Code leicht wartbar sein, weil alle Sprites in der Konstruktorklasse konstruiert werden. Ich möchte verhindern, dass in meiner "GameScene.sks" -Datei riesige Codezeilen entstehen.

Antwort

0

Sie können mit einer generischen Klasse Subklassen zum Beispiel genannt:

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

Dies ist der einzige Weg, wartbaren Code zu schreiben? Ich muss es dann so machen, es sieht sauber für mich aus. – Aphalleon

+0

Es gibt viele Möglichkeiten: Sie können ein einzelnes Swift-Modul ohne Klassenidentifikation erstellen, um alle Funktionen oder Eigenschaften für das gesamte Projekt zu teilen, oder versuchen, ein "Models" -Objekt wie MyShip.swift (class: SKShapeNode) MyBullet (class: SKShapeNode) zu erstellen ... hängt davon ab, was Sie tun müssen .. –

Verwandte Themen