為什麼我的 pygame 應用程式循環無法正常運作?
檢查您提供的程式碼後,循環安排似乎是主要問題。在您的主應用程式中,您嘗試擦除螢幕的某些部分並為每個實體重新繪製它們,同時僅在其更新位置重新繪製特定實體。這種方法不是必需的,可能會導致視覺不一致。
一般來說,最佳實踐是:
在這個修改後的程式碼片段中,我們重新排列了上面提到的循環:
while 1: # handle events for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # update objects (depends on input events and frames) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: objects[0].move_left() if keys[pygame.K_RIGHT]: objects[0].move_right() if keys[pygame.K_UP]: objects[0].move_up() if keys[pygame.K_DOWN]: objects[0].move_down() for num in range(num_objects - 1): objects[num + 1].rand_move() # draw background screen.blit(background, (0, 0)) # draw scene for o in objects: screen.blit(o.image, o.pos) # update dispaly pygame.display.update() pygame.time.delay(100)
此循環現在可以有效地清除螢幕,繪製所有實體,然後更新每幀的顯示。
請參閱這個最小範例以進一步說明:
[範例連結]
以上是為什麼我的 Pygame 應用程式循環無法正確更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!