Ich benutze Python 2.7 und Pygame, um Asteroid Spiel mit OOP und Sprite-Klasse zu erstellen. Ich habe einen Spieler und Asteroiden. Wenn ich mit Spritecollide eine Kollision zwischen einem Spieler und einem Asteroiden feststelle, wird der Asteroid aus der Gruppe entfernt und ich entferne den Spieler mit kill. Der Spieler verschwindet vom Bildschirm, aber er ist immer noch dort versteckt. Wenn ein anderer Asteroid dort vorbeifährt, wo der Spieler war, registriert er eine Kollision und verschwindet, als wäre der Spieler noch da. Ist das das richtige Verhalten? Wie entferne ich den Player vollständig aus dem Spiel? Oder verschiebe ich es einfach aus dem Spielfeld?Python OOP sprite.Sprite.kill entfernt es wirklich
Antwort
Von the documentation:
kill()
Das Sprite wird aus allen Gruppen entfernt, die sie enthalten. Das ändert nichts am Zustand des Sprite. Es ist möglich, den Sprite nach dem Aufruf dieser Methode weiter zu verwenden, einschließlich Hinzufügen zu Gruppen.
Das bedeutet, dass der Spieler nur aus allen Sprite-Gruppen entfernt wird. Ich nehme an, du benutzt Gruppen, deshalb wird dein Spieler nicht mehr ausgelost. Wenn Sie jedoch irgendwo in Ihrer Gameloop nach dem bestimmten Spielerobjekt suchen, ob es mit irgendwelchen Asteroiden kollidiert, wird dies immer noch funktionieren.
Wie Sie damit umgehen, hängt davon ab, was Ihr gewünschtes Spielverhalten ist. Sollte das Spiel vorbei sein? Beenden Sie dann Ihre Hauptschleife und zeichnen Sie ein Spiel über den Bildschirm. Sollte der Spieler respawnen? Setzen Sie dann die Position des Players zurück und fügen Sie das Player-Sprite den entsprechenden Gruppen wieder hinzu.
- 1. jQuery ::: Entfernt wirklich entfernen?
- 2. Gibt es große Python-Bibliotheken, die OOP vermeiden?
- 3. Gibt es Regeln für OOP?
- 4. Warum entfernt Python nicht?
- 5. OOP-Techniken mit Python-GUI (PySide) -Elementen
- 6. Gibt es Immortal Object wirklich?
- 7. Python 2.7 Verbindungszeichenfolge zu PostgreSQL (OOP-Methode)
- 8. OOP-Zirkelreferenz
- 9. Python: Wie entfernt man ['und']?
- 10. Python bs4 entfernt Br-Tag
- 11. Ist "safe_eval" wirklich sicher?
- 12. Unterschiede zwischen C++ OOP und PHP OOP
- 13. Dies ist OOP oder wie OOP
- 14. OOP-Workflow für Daten
- 15. Ist os.popen in Python 2.6 wirklich veraltet?
- 16. Ist die Python-Standardbibliothek wirklich Standard?
- 17. javascript ---- OOP
- 18. Zusammensetzung OOP
- 19. JavaScript OOP:
- 20. OOP + WorkFlow4
- 21. Pfad nicht wirklich gegeben Weg zu Python
- 22. wirklich seltsam Problem mit shelve (Python)
- 23. Python MemoryError, wenn nicht wirklich Arbeitsspeicher?
- 24. Polymorphismus, oop
- 25. OOP - Organisation großer Klassen
- 26. -Wextra wie nützlich ist es wirklich?
- 27. Gibt es wirklich clevere CSS-Kompressoren?
- 28. Express nächste Funktion, wofür ist es wirklich?
- 29. jQuery each() - Wie funktioniert es wirklich intern?
- 30. Gibt es in Darwin wirklich keine Mrmap?
Willkommen bei SO, Sie erhalten bessere Antworten, wenn Sie Ihren Code mit einem minimalen, vollständigen und überprüfbaren Beispiel (MCVE) http://stackoverflow.com/help/mcve einschließen. – dbugger