1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Pygame精准检测图象撞击问题

Pygame精准检测图像撞击

作为本际云服务器推荐网的小编小本本,今天给大家介绍如何使用Pygame实现精准检测图像撞击。在使用Pygame写游戏时,有些人可能遇到两个Rect目标撞击,但是目标中间也有室内空间间距问题。接下来,我会教大家一个方法来准确地检验图像撞击,需要的小伙伴可以借鉴一下。

Pygame精准检测图象撞击问题

实现方法

假设我们有两个图像(产品为Surface):surface1和surface2。首先,我们需要获得这两个Surface目标的rect:

rect1 = surface1.get_rect()
rect2 = surface2.get_rect()

接着,我们需要获取他们相匹配的mask目标,使用pygame.mask.from_surface()方式,具体操作如下:

mask1 = pygame.mask.from_surface(surface1)
mask2 = pygame.mask.from_surface(surface2)

接下来,我们需要进行路径规划,使用overlap方法实现,具体操作如下:

overlap = mask1.overlap(mask2, offset)

其中,mask是一个Mask目标,other是另一个Mask目标,offset是一个数组元素。数组元素中分别是两个rect的x坐标插值和y坐标插值。传参有两种情况,如果返回的是一个数组元素,说明已经发生了撞击。如果返回的是None,说明没有发生撞击。

offset = abs(rect1.x - rect2.x), abs(rect1.y - rect2.y)
if overlap is not None: #已经撞击
    print("已经撞击")

总结

以上就是我教大家使用Pygame实现精确检测图像撞击的方法,希望能对大家有所帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6658.html