微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决我怎样才能更好地优化这个 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 举报,一经查实,本站将立刻删除。