Ich erstelle ein levelbasiertes Spiel mit zwei SKSpriteNodes als Schaltflächen, um entweder auf die nächste oder vorherige Ebene zu gelangen, wodurch der GameViewController eine neue Szene präsentiert. Ich habe der SKScene eine Eigenschaft gegeben, die direkt auf den gameviewController verweist, um eine aktuelle neue Szenenfunktion aufzurufen, aber nach meinem Verständnis bricht das MVC-Modell. Ist das schlecht? Was ist eine Alternative?SpriteKit Spiellogik
1
A
Antwort
7
Die Standardalternative für iOS-Programmierung ist ein Muster namens Delegierung. Zunächst erstellen Sie ein Protokoll, um die Implementierung von Switching-Ebenen wegzuspulen.
protocol LevelSelector: class {
func didSelectNextLevel(from scene: SKScene)
func didSelectPreviousLevel(from scene: SKScene)
}
Die GameViewController
implementiert dieses Protokoll, um die Szene für die entsprechende Ebene zu ändern. Jede Szene eine Ebene der Umsetzung hat:
weak var levelSelector: LevelSelector?
Die GameViewController
setzt sich dann als levelSelector
für jede Ebene Szene:
scene.levelSelector = self
Wenn der Benutzer tippt auf den SKNode
s die nächsten und vorherigen Ebene Tasten darstellt, Rufen Sie die entsprechende Methode an:
levelSelector?.didSelectNextLevel(from: self)
//OR
levelSelector?.didSelectPreviousLevel(from: self)
Verwandte Themen
- 1. Warum wird update() für Spiellogik und nicht für didFinishUpdate bevorzugt?
- 2. SpriteKit Animation
- 3. Den Unity-Netzwerkcode getrennt von der Spiellogik halten
- 4. Spiellogik - Punktzahl nur einmal nach Passieren eines Hindernisses hinzufügen
- 5. Spiellogik - Fußball - Wie man die Torhüter-Fanggeschwindigkeit erhält
- 6. ios - Swift 2.2 - SpriteKit - Looping ein Video mit SpriteKit
- 7. Swift & SpriteKit: Vollbild
- 8. Wie funktionieren SpriteKit-Positionen?
- 9. Swift Spritekit wenden Drehimpuls
- 10. Logo-Animation mit SpriteKit
- 11. Q: Spritekit SKPhysics
- 12. Swift Spritekit Collision Handling
- 13. Hit Animationen in Spritekit
- 14. Spritekit, das iAd unterstützt
- 15. Ändern der Spritekit-Partikelfarbe
- 16. NSLocalizedString in Spritekit SKLabelNode
- 17. Angriffsknopf in SpriteKit
- 18. SpriteKit Benachbarte Hexenkacheln
- 19. SpriteKit - nächstgelegene Knoten
- 20. Sinuswelle Bewegung in SpriteKit
- 21. SpriteKit nicht zPosition respektieren?
- 22. SpriteKit Welt falsche Positionierung
- 23. Kollisionen in SpriteKit
- 24. Affine Transformationen in SpriteKit
- 25. Swift SpriteKit presentScene Fehler
- 26. SpriteKit SKSpriteNode bewegt
- 27. SpriteKit Animation Problem Swift
- 28. Abschlussblöcke in SpriteKit nie
- 29. Spritekit Szene Archivierung
- 30. Spritekit Bildschirm/Hintergrund-Update