擅长:python、mysql、java
<p>虽然我无法回答关于pyglet、纹理和图像的第一个问题(我在在线API的Texture中找到了一个名为“get_image_data”的方法;也许可以使用吗?),
我可以回答第二个问题。在</p>
<p>除了您在链接中提供的方法外,我知道至少还有两种方法:第一种是使用OpenGL,将图像绘制到缓冲区,并检查它们是否重叠。我不知道这有多快,但我可以想象它很慢。不过,它确实支持旋转和缩放。在</p>
<p>第二个与您给出的有点类似;但是不是查找两个轴对齐的边界框的交点并且只检查交点内部,而是找到并检查两个凸面外壳的交点。这样做的一个优点是凸壳通常提供更好的拟合,另一个优点是凸壳可以旋转,而轴对齐的边界框则不能。其主要缺点是凸壳求交比轴对齐包围盒求交复杂得多,因此很难实现。在</p>
<p>我已经编写了一个利用第二种方法的库;您可以在<a href="https://github.com/Poxelcoll/Poxelcoll" rel="nofollow">PoxelColl</a>找到它。它应该比其他像素完美的碰撞检测库更快,尤其是对于旋转和缩放。我不知道你是否可以从Python中使用它;如果你使用Jython和C++版本,你可以使用Python来绑定到Scala版本,但是这可能是相当多的额外工作。因此,如果您不需要缩放或旋转,那么最好简单地实现您已经找到的版本并测试它是否足够快。在</p>