Python 检查pygame中的点是否与曲面(完美像素)碰撞

Python 检查pygame中的点是否与曲面(完美像素)碰撞,python,collision-detection,pygame,Python,Collision Detection,Pygame,我正在开发一个游戏(克隆),我需要检查一个(建筑物)是否与一个点(导弹)碰撞 如何检查导弹是否击中建筑物 A有这个方法,但我希望它是像素完美的 =>使用一个Rect=>=>但是它应该是像素完美的=>你可以使用一个并使用它的方法 如果设置了(x,y)处的位,则返回非零 通过调用 从给定曲面返回掩码。 使曲面的透明部分未设置,而不透明部分已设置 因此,对于一些向量数学,给出了以下辅助方法: def sub(u, v): return [ u[i]-v[i] for i in range(le

我正在开发一个游戏(克隆),我需要检查一个(建筑物)是否与一个
(导弹)碰撞

如何检查导弹是否击中建筑物

A有这个方法,但我希望它是像素完美的

=>使用一个
Rect
=>=>但是它应该是像素完美的=>

你可以使用一个并使用它的方法

如果设置了(x,y)处的位,则返回非零

通过调用

从给定曲面返回掩码。
使曲面的透明部分未设置,而不透明部分已设置


因此,对于一些向量数学,给出了以下辅助方法:

def sub(u, v):
  return [ u[i]-v[i] for i in range(len(u)) ]
使用以下代码检查给定点是否位于遮罩/曲面内:

# create mask from surface
mask = pygame.mask.from_surface(building.surface)

# translate the position of the missile,
# since the top left coordinate of the mask is always (0, 0)
rel_point = sub(missile.position, building.position)
try: 
    if mask.get_at(rel_point): 
        # point in mask
        do_something()
except IndexError: 
    pass