我怎样才能更好地优化这个 pygame 项目?太慢了

问题描述

这是一个新手的问​​题

我正在尝试编写一个 evolution simulator。 (Requirement) 这意味着有很多应该相互交互的对象。我正在用 Python 编写代码(因为它是我知道的唯一语言),使用 Pygame 创建一个可视化 2D 环境。在我将树木添加到我的大陆之前,我做得很好。那是事情变得非常缓慢的时候,因为屏幕上有成千上万的树,每一帧都必须在那里。

我去掉了 pygame.display.flip()支持 pygame.display.update()。这样做我遇到了两个 问题:

  1. pg.draw.circle() 函数在移动时会留下痕迹。我以前遇到过这个函数的问题(显然,函数创建的矩形永远不会离开屏幕),但也许只是我做错了什么?

  2. 到目前为止,我提出的优化解决方案充其量仍然是可疑的。如果您删除 bug.py 中的第 32 行,您将看到项目中的运行速度有多快。有没有办法让我的代码以这样的速度运行,或者至少接近这个速度?我的意思是,我要添加一百或更多其他虫子,所有虫子都吃植物和其他虫子,每个人都用他们的神经网络观察事物和思考,除非我优化代码,否则整个事情都会一团糟。

感谢大家的投入!

编辑:我觉得依靠 biomes 列表中对象的顺序而不是循环遍历 bug.update_biomes() 中的每个生物群落会显着提高处理速度,但您怎么看?

P.P.S.:另外,我刚刚发现 pygame.Surface.fill() 函数不需要更新。我在哪里可以看到 pygame 中的哪些函数需要更新,哪些不需要?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)