Ich lerne Python durch Pythonista auf dem iPhone. Das erste, was ich gemacht habe, war einen einfachen Touchscreen-Joystick (Controller) zu machen. Ich fange an, am eigentlichen Spiel zu arbeiten, aber ich weiß nicht, wie man die 2 Szenen zusammenführt oder überlagert. (Eines ist das eigentliche Spiel, das andere ist der Controller, den ich in einer anderen Datei erstellt habe.) Ich habe bereits versucht, es zu importieren und auszuführen, aber es scheint, als könnte nur 1 gleichzeitig ausgeführt werden, die Controller-Datei oder die Spieldatei. Jede Hilfe wird geschätzt.Mehrere Szenen in Pythonista laufen
Antwort
Ich werde versuchen, eine vollständigere Antwort als mein Kommentar oben zu präsentieren.
Jede Szene, die präsentiert wird, hat eine Ansicht und eine Reihe von Methoden, um auf Berührungsereignisse in dieser Ansicht zu reagieren. Sie können keine Szenen übereinander legen und beide reagieren auf Berührungsereignisse, da dann zwei verschiedene Touch-Ereignishandler für dieselben Berührungsereignisse auslösen.
Sie sollten jedoch in der Lage sein, mehrere Szenen zu erstellen, die keine überlappenden Ansichten haben. Dann wird jedes Berührungsereignis nur von der Szene erfasst, die den Bereich des Bildschirms besitzt, den Sie berühren.
Sie können eine Szene überlagern, aber die 'overlay' scene erfasst alle Touch-Interaktionen.
Danke für die Hilfe. Allerdings fand ich es nützlicher, einfach eine andere .py-Datei, die ich mit dem Joystick gemacht habe, zu importieren, dann als ein Modul in das Hauptspiel einzufügen und dann einfach die Funktionen davon zu benutzen. Es bringt es auf 1 Zeile in meinem Hauptspiel, was besser ist. – BrrrIce
Anstatt den Joystick auf eine separate Szene zu setzen, sollten Sie ihn auf eine scene.Node
zeichnen. Dann können Sie es in Ihrer Spielszene wie ein anderes Sprite hinzufügen, indem Sie Scene.add_child()
verwenden.
Um die Berührungspositionen zu den Knoten Koordinatensystem zu umwandeln, Sie Node.point_from_scene()
verwenden können, und koordinieren, die zur Umwandlung zurück System auf die Szene, die Sie verwenden Node.point_to_scene()
- 1. Mehrere Szenen in JavaFX
- 2. iOS SpriteKit Szenen - Mehrere Szenen Auf dem Bildschirm
- 3. Labelnode-Timer in Pythonista 3
- 4. Installieren tensorflow auf Pythonista 3
- 5. Python/Pythonista GUI Multi-Menü
- 6. Laufen mehrere Spinnen in scrapy
- 7. Wie Debuggen mehrere Szenen gleichzeitig laden in Einheit?
- 8. Gleiche GUI mehrere Szenen in Unity Spiel - Prefab Canvas?
- 9. Wie Szenen in Swift
- 10. Blenden Szenen in OpenGL
- 11. Pandas & NumPy auf Pythonista iPad App
- 12. Laravel laufen mehrere geplante Aufgaben
- 13. Python Twisted - mehrere Callbacks laufen
- 14. Mehrere Nachtwächter-Instanzen laufen lassen
- 15. Mehrere Pox-Controller laufen lassen
- 16. laufen mehrere Instanz Schläger Programm
- 17. (discord.py) mehrere Bots gleichzeitig laufen
- 18. SpriteKit Swift 2.0 Spiel: Buttons & Nodes über mehrere Szenen hinweg
- 19. Szenen dynamisch in JavaFX umschalten
- 20. Wie unterbreche ich Animationen für mehrere Szenen außer der aktuellen?
- 21. Wie können Sie mehrere vr-Szenen auf einer Seite anzeigen?
- 22. Wie laufen mehrere Farbbloom-Animationen, die gleichzeitig laufen?
- 23. Verlorene Informationen zwischen Szenen
- 24. Unity additive Szenen + NavMesh
- 25. JavaFX Szenen wechseln
- 26. Gleichzeitige Unity-Szenen mit dem SceneManager
- 27. Wie laufen mehrere Tornado-Prozesse/Threads/Frontends?
- 28. Wie kann ich mehrere Andy Maschinen laufen
- 29. Mehrere vortrainierte Tensorflow-Netze gleichzeitig laufen lassen
- 30. mehrere Aufgaben zu laufen, wenn sie Timeout
Ich glaube nicht, dass es eine Möglichkeit, Szenen zu überlagern ist. Selbst wenn Sie könnten, würde es bedeuten, dass mehrere Ereignisschleifen gleichzeitig ausgeführt werden und sich gegenseitig in die Quere kommen. Sie müssen die anderen Spielobjekte neben dem Controller in derselben Szene implementieren. –
@SimonHibbs Also, wie würde ich dann ein komplexes Spiel machen? Es scheint so chaotisch zu sein, einfach jedes Mal, was ich brauche, auf eine touch_moved() - Funktion zu verzichten. – BrrrIce