在 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中文网其他相关文章!