Pygame级位掩码检查优化?

2024-05-17 18:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

Pygame为精灵提供了一个非常整洁的位掩码碰撞功能,但是当你比较大的图像时,它的速度非常慢。我得到了我的水平图像,当它是400x240的时候效果很好,但是当我把分辨率改大(很多)的时候,突然游戏无法玩了,因为它太慢了。你知道吗

我很好奇是否有办法裁剪精灵的位掩码,这样它就不用做那么多计算了。或者,另一种方法是将整个舞台精灵分成不同的“面板”,并对最近的一个(或者四个或两个,如果他在面板的边缘)进行碰撞检查。但我不知道如何将一个图像分割成几个精灵。此外,如果您有任何其他建议,他们将不胜感激。你知道吗

我在网上看到很多地方都说不要为位掩码级别的冲突而烦恼,因为它太慢了,我应该改用基于瓷砖的冲突。虽然,我认为bitmask会使它更灵活,它会给级别破坏的机会(就像在蠕虫游戏中),所以我更喜欢它如果是bitmask。你知道吗

我想我已经解释得够多了,不需要张贴我的代码,但请告诉我你真的需要它。

非常感谢!你知道吗


Tags: 方法图像功能游戏面板水平分辨率级别
1条回答
网友
1楼 · 发布于 2024-05-17 18:28:26

好吧,我找到了一个解决办法,其实不是这些东西。。。基本上,我意识到我一次只和舞台碰撞了一个像素,所以我用了蒙上面具()功能。有点恼火,这是我以前没有想到的。不过,我听说使用这个方法可能会很慢,所以如果有人愿意提供一个更快的替代方法get_at(),那就太好了。你知道吗

相关问题 更多 >