Menguruskan Gelung Serentak dalam Pygame
Dalam Pygame, pengendalian berbilang gelung sementara secara serentak boleh menjadi penting untuk atur cara yang memerlukan tugasan serentak. Artikel ini menangani isu yang dibangkitkan oleh pengguna yang cuba melaksanakan gelung dalam gelung sambil memastikan pelaksanaan program berterusan.
Pengguna cuba menambah gelung terkawal masa dalam gelung utama aplikasi. Walaupun ia mungkin kelihatan mudah, gelung tambahan secara semula jadi menghentikan operasi program lain disebabkan sifat menyekat time.sleep() dan kaedah yang serupa. Konflik ini berpunca daripada prinsip asas gelung utama Pygame, yang mengendalikan pemprosesan acara dan kemas kini paparan.
Penyelesaian: Pengukuran Masa Leverage
Daripada menggunakan fungsi tidur yang menyekat, penyelesaian yang disyorkan menggunakan fungsi time.get_ticks() Pygame untuk menjejak masa sistem. Dengan mengira titik masa akan datang berdasarkan masa semasa, atur cara boleh menentukan masa untuk mengemas kini dan memaparkan muka tanpa mengganggu gelung utama.
Struktur Kod Disemak
<code class="python">next_render_time = 0 while run: current_time = pygame.time.get_ticks() # Existing code here... if current_time >= next_render_time: currentFace = random.choice(face) faceDisplay = myFont.render(str(currentFace), 1, (0,255,0)) next_render_time = current_time + randint(5, 10) * 1000 screen.fill((0,0,0)) screen.blit(faceDisplay, text_rect) pygame.display.flip()</code>
Struktur yang disemak ini membolehkan kedua-dua gelung beroperasi secara serentak, memastikan muka berubah pada selang waktu yang ditentukan tanpa menjejaskan fungsi program lain.
Pertimbangan Acara Pemasa
Sebagai alternatif, Pygame menyediakan acara pemasa untuk menjadualkan tindakan pada selang masa tetap. Walau bagaimanapun, dalam kes seperti yang dikemukakan, di mana selang tidak tetap, adalah lebih sesuai untuk menggunakan pendekatan pengukuran masa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Gelung Serentak dalam Pygame Tanpa Menyekat Gelung Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!