Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana dengan Cekap Memunculkan Contoh Berbilang Objek Secara serentak dalam Python?
Dalam pengaturcaraan, selalunya perlu mencipta berbilang kejadian objek yang sama serentak. Ini amat berguna dalam pembangunan permainan, di mana pembangun mungkin perlu mencipta berbilang musuh atau peluru pada skrin pada masa yang sama.
Pada mulanya, pengaturcara pemula mungkin cuba menggunakan fungsi seperti sleep() untuk mengawal masa daripada objek ini bertelur. Walau bagaimanapun, pendekatan ini boleh membawa kepada isu di mana objek yang dihasilkan sebelum ini ditimpa oleh objek yang berikutnya.
Untuk menangani isu ini, pendekatan yang lebih berkesan ialah mengukur masa yang berlalu dalam gelung permainan dan mencipta objek berdasarkan masa berlalu. Ini memastikan objek ditimbulkan pada selang masa yang sesuai dan tidak menimpa satu sama lain.
Satu kaedah untuk mengukur masa berlalu ialah menggunakan fungsi pygame.time.get_ticks(). Fungsi ini mengembalikan bilangan milisaat yang telah berlalu sejak pygame dimulakan.
object_list = [] time_interval = 500 # 500 milliseconds == 0.1 seconds 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())
Dalam contoh ini, senarai objek, object_list, dijejaki. Pembolehubah time_interval menentukan masa antara setiap objek bertelur. Pembolehubah next_object_time menjejaki masa di mana objek seterusnya harus dihasilkan.
Apabila masa semasa melebihi masa objek seterusnya, objek baharu dilampirkan pada object_list dan masa objek seterusnya dikemas kini.
Pilihan lain untuk bertelur objek pada selang masa yang tetap ialah untuk menggunakan baris gilir acara Pygame. Pendekatan ini melibatkan mencipta acara tersuai dan menggunakan fungsi pygame.time.set_timer() untuk menambahkan acara berulang kali pada baris gilir.
object_list = [] time_interval = 500 # 500 milliseconds == 0.1 seconds timer_event = pygame.USEREVENT+1 pygame.time.set_timer(timer_event, time_interval)
Dalam contoh ini, acara tersuai, timer_event, dicipta. Pembolehubah time_interval menentukan masa antara setiap peristiwa. Fungsi pygame.time.set_timer() digunakan untuk menambah timer_event pada baris gilir acara pada selang masa yang ditentukan.
Apabila timer_event berlaku, objek baharu ditambahkan pada object_list. Pendekatan ini memastikan objek dihasilkan pada selang masa yang tetap, walaupun gelung permainan mengalami kelembapan atau gangguan.
Dengan memahami batasan penggunaan fungsi seperti sleep() dan menggunakan teknik yang lebih maju seperti mengukur masa berlalu atau menggunakan baris gilir acara, pengaturcara boleh menghasilkan berbilang contoh objek yang sama secara serentak dalam Python. Pendekatan ini penting untuk mencipta permainan yang kompleks dan menarik atau aplikasi lain yang memerlukan pengurusan serentak berbilang objek.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Memunculkan Contoh Berbilang Objek Secara serentak dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!