python-3.x - 如何检测精灵在pygame中遇到了颜色
问题描述
我想检测精灵在pygame中遇到了颜色,我应该使用哪个函数来实现这个功能。
解决方案
尽管可以在您想要检查的表面上的任何点处获得颜色(此处get_at()
的文档)。你需要找到你的精灵覆盖的新区域,它上次没有覆盖并检查其中的每个像素,如果其他东西在移动,你必须检查你的精灵现在是否与这些区域中的任何一个重叠并检查那。或者你可以认为这太复杂了,只是遍历你的精灵位置下的每个像素(还没有你绘制精灵)并检查那个颜色。
这是可能的,但可能不会很快。
另一种方法是,如果您知道这些颜色在哪里,您可以使用可以检查的矩形、圆形、精灵或蒙版(参见此处和此处)标记这些区域。这通常要快得多。这些不必绘制,因此是不可见的。它们仅用于标记碰撞检查的区域。
如果您不知道背景或其他图像中颜色的确切位置,您可以使用pygame.mask.from_surface()
或(此处和此处pygame.mask.from_threshold()
的文档)根据其中的颜色创建蒙版。
推荐阅读
- python - 如何修复 python 请求 TypeError 错误
- dialog - 有没有办法改变x++中的对话框取消按钮?
- react-native - 如何在本机反应中仅在 DateTimePicker 中显示日期
- python - 每个用户可以使用一次命令吗?
- node.js - SQL Server连接问题通过使用sequalize with encryptset to true
- python - 数组二叉树
- azure - 未相互连接的多个 Azure 本地网络网关
- python - 如何对 seq2seq RNN 进行推理?
- html - html 表格随图像展开,无论图像大小
- python - 使用 pyinstaller 将文件转换为 exe 时,Python 语音识别不起作用