该方法的偏移参数
overlap()是的相对位置
othermask
相对于
pygame.mask.Mask对象。
因此,偏移量是通过减去以下坐标的坐标来计算
slant的
ball:
offset_x, offset_y = (slant.rect.x - ball.rect.x), (slant.rect.y -ball.rect.y)
offset = (ball.rect.x - slant.rect.x), (ball.rect.y - slant.rect.y)if slant.mask.overlap(ball.mask, offset): print("hit")当您创建的掩模图像,那么我建议,以确保图像通过调用每像素阿尔法格式有
.convert_alpha():
class Ball: def __init__(self, x, y): self.x = x self.y = y self.image = pygame.image.load("sball.png") self.rect = self.image.get_rect() self.mask = pygame.mask.from_surface(self.image.convert_alpha()) # <---class Slant: def __init__(self, x, y): self.x = x self.y = y self.image = pygame.image.load("posslant.png") self.rect = self.image.get_rect() self.mask = pygame.mask.from_surface(self.image.image.convert_alpha()) # <---最小示例:
[ repl.it/@Rabbid76/PyGame-SurfaceMaskIntersect](https://repl.it/@Rabbid76/PyGame-SurfaceMaskIntersect#main.py)
另请参阅:面膜



