Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Pygame mehrere Spielobjekte gleichzeitig erzeugen?
Gleichzeitiges Erzeugen mehrerer Instanzen desselben Objekts in Python
Im Code Ihres Spiels wollten Sie Kreise an zufälligen Orten erstellen und jeweils darauf warten Kreis, um unabhängig zu erscheinen. Die nachfolgenden Kreise hatten jedoch Vorrang vor den vorherigen. Dieses Verhalten ist auf die inhärente Natur ereignisbasierter Anwendungen wie Spiele zurückzuführen.
Ereignisbasierte Anwendungen verstehen
In Pygame überwacht die Spielschleife kontinuierlich Ereignisse (z als Mausklicks) und reagiert entsprechend. time.sleep() und verwandte Funktionen warten jedoch nicht wirklich und steuern das Gameplay-Timing nicht. Stattdessen frieren sie die Anwendung ein, während sie ausgeführt wird. Daher erschienen Ihre Kreise nicht gleichzeitig, sondern einer nach dem anderen, wobei sleep() das Programm dazwischen einfrierte.
Korrektur des Ansatzes
Um mehrere zu erzeugen Objekte gleichzeitig können zwei Hauptansätze gewählt werden:
1. Zeitmessungen verwenden
2. Mithilfe von Timer-Ereignissen
Minimales Codebeispiel unter Verwendung der Zeit Messungen
object_list = [] time_interval = 500 # milliseconds between object spawns next_object_time = 0 while run: current_time = pygame.time.get_ticks() if current_time > next_object_time: next_object_time += time_interval object_list.append(Object())
Minimales Codebeispiel mit Timer-Ereignissen
object_list = [] time_interval = 500 # milliseconds between object spawns timer_event = pygame.USEREVENT+1 pygame.time.set_timer(timer_event, time_interval) while run: for event in pygame.event.get(): if event.type == timer_event: object_list.append(Object())
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann ich in Pygame mehrere Spielobjekte gleichzeitig erzeugen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!