在Python 中同時產生同一物件的多個實例
在您的遊戲程式碼中,您打算在隨機位置建立圓圈,期望每個圓圈圈獨立出現。然而,隨後的圓圈覆蓋了前面的圓圈。這種行為源於基於事件的應用程式(如遊戲)的固有性質。
了解基於事件的應用程式
在 pygame 中,遊戲循環不斷監視事件(例如如滑鼠點擊)並做出相應回應。然而,time.sleep() 和相關函數並不能真正等待或控制遊戲時間。相反,它們會在執行時凍結應用程式。因此,你的圓圈不是同時出現,而是一次出現一個,其中 sleep() 會凍結程式。
修正方法
產生多個物件同時存在,可以採取兩種主要方法:
1。使用時間測量
2。使用計時器事件
使用時間的最小程式碼範例測量
object_list = [] time_interval = 500 # milliseconds between object spawns 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())
使用計時器事件的最小代碼示例
object_list = [] time_interval = 500 # milliseconds between object spawns timer_event = pygame.USEREVENT+1 pygame.time.set_timer(timer_event, time_interval) while run: for event in pygame.event.get(): if event.type == timer_event: object_list.append(Object())
其他注意事項
以上是如何在 Pygame 中同時產生多個遊戲物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!