Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengelakkan Menyekat dan Menjalankan Berbilang Gelung Serentak dalam Pygame?
Cara Menjalankan Berbilang Semasa Gelung Serentak dalam Pygame
Dalam aplikasi Pygame, adalah penting untuk mengelakkan penggunaan fungsi menyekat seperti time.sleep () untuk melakukan kelewatan. Sebaliknya, bergantung pada gelung aplikasi dan fungsi seperti pygame.time.get_ticks() untuk mengurus tugas berkaitan masa.
Memahami Cabaran
Dalam kod yang disediakan dalam pertanyaan, beberapa gelung while cuba dijalankan serentak, tetapi satu gelung menggunakan time.sleep() menyekat yang lain daripada melaksanakan.
Penyelesaian: Menggunakan Fungsi Masa Pygame
Untuk mengendalikan kelewatan masa dengan betul, gunakan pygame.time.get_ticks() untuk获取时间戳。 Kira bila hendak melakukan tindakan tertentu berdasarkan masa semasa. Apabila masa semasa melebihi masa yang dikira, laksanakan tindakan.
Kod Disemak:
<code class="python">import pygame import random from time import time pygame.init() faces = ['^-^', '^v^', '◡◠◠', "'v'", '⁀◡⁀'] display = pygame.display.set_mode((800, 600)) font = pygame.font.Font('unifont.ttf', 100) surface = font.render(random.choice(faces), 1, (0, 255, 0)) center = surface.get_rect(center=(800/2, 600/2)) next_render_time = time() run = True while run: current_time = time() for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if current_time >= next_render_time: surface = font.render(random.choice(faces), 1, (0, 255, 0)) next_render_time = current_time + random.randint(5, 10) display.fill((0, 0, 0)) display.blit(surface, center) pygame.display.flip()</code>
Dalam kod ini, pembolehubah next_render_time menyimpan masa di mana muka harus dikemas kini. Apabila masa semasa melebihi nilai ini, wajah baharu dipilih, dipaparkan dan dipaparkan secara rawak. Pendekatan ini membenarkan berbilang gelung berjalan serentak tanpa menyekat.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Menyekat dan Menjalankan Berbilang Gelung Serentak dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!