【发布时间】:2018-04-02 09:43:08
【问题描述】:
我一直在使用 Pygame 在 Python 中开发基于图块的平台游戏。使图块的地图变大后,我的性能大幅下降。我使用分析器来查找速度减慢的原因,它指出了我用来检查屏幕上哪些图块的列表理解。
[i for i in sprites
if (i.rect.x-pos.x)+(WIDTH/2)+i.w>0
and (i.rect.x-pos.x)+(WIDTH/2) < WIDTH
and (i.rect.y-pos.y)+(HEIGHT/2)+i.h>0
and (i.rect.y-pos.y)+(HEIGHT/2) < HEIGHT]
有什么办法可以优化吗?任何有助于它更快完成任务的东西都会有所帮助。
【问题讨论】:
-
正如@Nathan 的回答所示,这是XY problem。您问的是加快理解速度,但您真正想要的是一种更有效的检测形状重叠的方法。
标签: python python-3.x optimization pygame list-comprehension