Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menjalankan Gelung Berbilang Semasa Secara serentak dalam Pygame?
Cara Melaksanakan Gelung Berbilang Semasa Secara Serentak dalam Pygame
Dalam Pygame, adalah mungkin untuk melaksanakan berbilang gelung sementara serentak, membenarkan bebas dan operasi berterusan dalam program anda.
Mengatasi Penyekatan Pelaksanaan
Dalam coretan kod yang disediakan, isu timbul daripada kehadiran dua gelung semasa cuba dijalankan pada masa yang sama . Gelung kedua, yang menggabungkan fungsi time.sleep() untuk memperkenalkan kelewatan, mengganggu pelaksanaan gelung pertama, yang penting untuk kefungsian berterusan program.
Menggunakan Masa Sistem untuk Kelewatan
Daripada bergantung pada time.sleep() untuk menangguhkan pelaksanaan blok kod tertentu, adalah disyorkan untuk memanfaatkan modul pygame.time. Pygame.time.get_ticks() menyediakan akses kepada masa sistem dalam milisaat sejak pemulaan program.
Integrasi dengan Gelung
Untuk mengelakkan sekatan satu gelung oleh yang lain, pertimbangkan untuk memasukkan strategi berikut:
Pendekatan ini membolehkan tindakan tertunda berjalan serentak dengan gelung utama tanpa mengganggunya aliran pelaksanaan.
Pendekatan Alternatif menggunakan Acara Pemasa
Sebagai alternatif, anda boleh menggunakan acara pemasa Pygame untuk menjadualkan tindakan pada selang masa tertentu. Kaedah ini terbukti amat berfaedah apabila menangani selang masa yang tetap.
Kod Contoh
Rujuk coretan kod berikut untuk contoh lengkap yang mempamerkan pelaksanaan gelung sementara berbilang dalam Pygame:
<code class="python">import pygame import random # Initialize Pygame pygame.init() # Define screen dimensions screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) # Define some faces faces = ['^-^', '^v^', '◠◡◠', "'v'", '⁀◡⁀'] # Define the current face current_face = random.choice(faces) # Set up the font font = pygame.font.SysFont('Arial', 100) # Render the face face_surface = font.render(current_face, True, (0, 255, 0)) # Get the center of the screen center_x = screen_width // 2 center_y = screen_height // 2 # Set up the main loop running = True while running: # Process events for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Calculate the next time the face should be updated next_update_time = pygame.time.get_ticks() + randint(5000, 10000) # If the time has come to update the face, do it if pygame.time.get_ticks() >= next_update_time: current_face = random.choice(faces) face_surface = font.render(current_face, True, (0, 255, 0)) # Draw everything to the screen screen.fill((0, 0, 0)) screen.blit(face_surface, (center_x - face_surface.get_width() // 2, center_y - face_surface.get_height() // 2)) pygame.display.update()</code>
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Gelung Berbilang Semasa Secara serentak dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!