Melahirkan Berbilang Contoh Objek Yang Sama Secara serentak dalam Python
Dalam kod permainan anda, anda berhasrat untuk membuat bulatan di lokasi rawak, mengharapkan setiap bulatan untuk muncul secara bebas. Walau bagaimanapun, kalangan seterusnya mengatasi bulatan sebelumnya. Tingkah laku ini berpunca daripada sifat semula jadi aplikasi berasaskan acara seperti permainan.
Memahami Aplikasi Berasaskan Acara
Dalam pygame, gelung permainan sentiasa memantau acara (seperti semasa tetikus mengklik) dan bertindak balas dengan sewajarnya. Walau bagaimanapun, time.sleep() dan fungsi yang berkaitan tidak benar-benar menunggu atau mengawal masa permainan. Sebaliknya, mereka membekukan aplikasi semasa ia dilaksanakan. Oleh itu, kalangan anda tidak muncul secara serentak tetapi sebaliknya satu demi satu, dengan sleep() membekukan program di antaranya.
Membetulkan Pendekatan
Untuk melahirkan berbilang objek secara serentak, dua pendekatan utama boleh diambil:
1. Menggunakan Pengukuran Masa
2. Menggunakan Acara Pemasa
Contoh Kod Minimum Menggunakan Masa Pengukuran
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())
Contoh Kod Minimum Menggunakan Acara Pemasa
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())
Pertimbangan Tambahan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melahirkan Pelbagai Objek Permainan Secara serentak dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!