Wie verwenden von sprite-Gruppen in pygame
So, ich bin zu dem Punkt in meinem Programm, wo ich brauche, um eine Gruppe zu erstellen, für einige sprites, die kann der Spieler kollidieren mit, ohne zu sterben (wie einige andere sprites, die ich haben kann auf dem Bildschirm).
Ich habe Google durchforstet aber es scheint, dass die offizielle pygame-Dokumentation nutzlos ist und/oder schwer zu begreifen. Ich bin auf der Suche nach nur ein klein wenig Hilfe, wer weiß etwas über diese.
Erste, die ich brauche, um herauszufinden, wie eine Gruppe zu erstellen. Geht es im ersten Spiel-setup?
Fügt dann einen sprite zu einer Gruppe auf seine Schöpfung. Der pygame Seite hat dies zu dem Thema zu sagen:
Sprite.add(*groups)
So... wie nutzt man diese? Sagen wir, ich habe ein sprite mit dem Namen gem. Ich muss hinzufügen, Juwel der Edelsteine-Gruppe. Ist es:
gem = Sprite.add(gems)
Ich bezweifle es, aber ohne Beispiele, gehen auf die Website, ich bin ratlos.
Desweiteren würde ich gerne in der Lage sein, um Attribute zu Bearbeiten, die für eine bestimmte Gruppe. Wird dies erreicht durch die Definition einer Gruppe wie würde ich eine Klasse? Oder ist es etwas, was ich definieren, innerhalb der definition für die bestehende sprite, aber mit einem wenn sprite in der Gruppe'?
- Es wäre schön, wenn Sie ersetzen könnte, der Titel der Frage etwas, die Ihr problem beschreibt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Beantwortung Ihrer ersten Frage; um eine Gruppe zu erstellen, würden Sie so etwas tun:
Dann fügen Sie ein sprite:
Bezüglich der Attribute für die Gruppe, die Sie Bearbeiten möchten es hängt davon ab, was Sie sind. Zum Beispiel könnten Sie so etwas wie dieses zeigen die Richtung der Gruppe:
Ich weiß, diese Frage wurde bereits beantwortet, aber die beste Methode ist, wie das, was kelwinfc vorgeschlagen. Ich werde erarbeiten, so ist es verständlicher.
Können Sie auch hinzufügen, mehr mit
gems.add(some_sprite)
und ebenso entfernen Sie Sie mitgems.remove(some_sprite)
.__init__()
- Methode ist ein extrem schlechter Programmierstil.gems
als argument zuJewel
's Konstruktor-Methode. Also ich glaube nicht, dass es viel Entschuldigung für Ihr tun hier auf dieser website, die verwendet wird, die durch so viele Anfänger-Programmierer.Rufen Sie einfach die super
__init__
Funktion mit der Liste der Gruppen. Zum Beispiel:Dann in jeder Klasse Ihrer Hierarchie, definieren Sie ein Attribut selbst.Gruppen-und der super-Konstruktor wird die Arbeit für das hinzufügen jeder einzelnen Instanz zu seinen Gruppen. Dies ist die sauberste Lösung meiner Meinung nach. Ansonsten rufen Sie einfach den super-Konstruktor explizit mit der Liste der Gruppen in jeder Klasse.
Einfacher, aber Sie können passieren die sprites direkt auf den Konstruktor: