Pygame 精准检测图像碰撞的问题

 更新时间:2022年06月28日 11:13:25   作者:Leleprogrammer  
这篇文章主要介绍了Pygame 精准检测图像碰撞,在用Pygame写游戏的时候,有人可能会遇到两个Rect对象碰撞但是对象之间还有空间间隔的问题,这里,将教大家用一种方法精准地检测图像碰撞,需要的朋友可以参考下

在用Pygame写游戏的时候,有人可能会遇到两个Rect对象碰撞但是对象之间还有空间间隔的问题,这里,将教大家用一种方法精准地检测图像碰撞。

假设我们有两个图像(类型为Surface):surface1,surface2

首先,获得这两个surface对象的rect:

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

然后,获取它们对应的mask对象,用pygame.mask.from_surface()方法,使用如下:

pygame.mask.from_surface(surface)

填入的是Surface对象,返回Mask对象

代码如下:

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

接下来,进行碰撞检测,我们需要用到overlap方法,使用如下:

mask.overlap(other,offset)

mask是一个Mask对象

other是另外一个Mask对象

offset是一个元组,元组中分别为两个rect的x坐标插值和y坐标插值

返回值有两种,如果是一个元组就说明已经碰撞,如果为None就说明没有碰撞

代码如下:

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

以上代码只是示例,可供参考,命名不需要和上方一致,符合命名规范就行

到此这篇关于Pygame 精准检测图像碰撞的文章就介绍到这了,更多相关Pygame 检测碰撞内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用python实现全屏爱心雨向喜欢的人表白

    利用python实现全屏爱心雨向喜欢的人表白

    马上520了,教大家用Python做一个下爱心雨的特效,这篇文章主要给大家介绍了关于利用python实现全屏爱心雨向喜欢的人表白的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • python编程使用PyQt创建UE蓝图

    python编程使用PyQt创建UE蓝图

    这篇文章主要为大家介绍了python编程中如何使用PyQt创建UE蓝图的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Python数据清洗&预处理入门教程

    Python数据清洗&预处理入门教程

    凡事预则立,不预则废,训练机器学习模型也是如此。数据清洗和预处理是模型训练之前的必要过程,否则模型可能就废了。本文是一个初学者指南,将带你领略如何在任意的数据集上,针对任意一个机器学习模型,完成数据预处理工作
    2022-10-10
  • python实现跨年表白神器--你值得拥有

    python实现跨年表白神器--你值得拥有

    这篇文章主要介绍了python实现跨年表白神器的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-01-01
  • Python 实操显示数据图表并固定时间长度

    Python 实操显示数据图表并固定时间长度

    这篇文章主要介绍了Python 实操显示数据图表并固定时间长度,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Python制作简易版2048小游戏

    Python制作简易版2048小游戏

    2048作为经典的手机端游戏一直深受大家的喜爱,本文将利用Python中的Pygame模块制作简单版的2048游戏,感兴趣的小伙伴可以了解一下
    2022-07-07
  • Python使用zip合并相邻列表项的方法示例

    Python使用zip合并相邻列表项的方法示例

    这篇文章主要介绍了Python使用zip合并相邻列表项的方法,涉及zip、iter函数合并相邻列表项、切片等相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • 解决python脚本中error: unrecognized arguments: True错误

    解决python脚本中error: unrecognized arguments: True错误

    这篇文章主要介绍了解决python脚本中error: unrecognized arguments: True错误,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python读取文件列表并排序的实现示例

    python读取文件列表并排序的实现示例

    本文主要介绍了python读取文件列表并排序的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python 爬取英雄联盟皮肤并下载的示例

    python 爬取英雄联盟皮肤并下载的示例

    这篇文章主要介绍了python 爬取英雄联盟皮肤并下载的示例,帮助大家更好的理解和学习使用python 爬虫,感兴趣的朋友可以聊继续
    2020-12-12

最新评论