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查询mysql,返回json的实例

    python查询mysql,返回json的实例

    下面小编就为大家分享一篇python查询mysql,返回json的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • python实现爬取图书封面

    python实现爬取图书封面

    这篇文章主要为大家详细介绍了python实现爬取图书封面的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 关于Python函数对象的名称空间和作用域

    关于Python函数对象的名称空间和作用域

    这篇文章主要介绍了关于Python函数对象的名称空间和作用域,数据的名称是储存到栈区,而数据的内容是储存到堆区,当我们要去使用数据的内容时,我们可以通过数据的名称来直接去表示数据的内容,需要的朋友可以参考下
    2023-04-04
  • Python+OpenCV采集本地摄像头的视频

    Python+OpenCV采集本地摄像头的视频

    这篇文章主要为大家详细介绍了Python+OpenCV采集本地摄像头的视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Python3获取电脑IP、主机名、Mac地址的方法示例

    Python3获取电脑IP、主机名、Mac地址的方法示例

    这篇文章主要介绍了Python3获取电脑IP、主机名、Mac地址的方法,结合具体实例形式分析了Python3基于socket与uuid模块针对电脑的IP、主机名、Mac地址等信息的读取操作相关实现技巧,需要的朋友可以参考下
    2019-04-04
  • Python教程使用Chord包实现炫彩弦图示例

    Python教程使用Chord包实现炫彩弦图示例

    在可视化中,有时候会使用到弦图(Chord Diagram)来表示事物之间关系,本篇文章教大家如何使用Chord包实现炫彩弦图,有需要的朋友可以借鉴参考下,希望大家多多进步,早日升职加薪
    2021-09-09
  • pycharm社区版安装node.js插件运行js代码方法

    pycharm社区版安装node.js插件运行js代码方法

    PyCharm可以说是当今最流行的一款Python IDE了,下面这篇文章主要给大家介绍了关于pycharm社区版安装node.js插件运行js代码的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Python类的定义继承调用比较方法技巧

    Python类的定义继承调用比较方法技巧

    这篇文章主要介绍了Python类的定义继承调用比较方法技巧,文章首先通过类的约束展开详情围绕主题介绍相关内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Django关于admin的使用技巧和知识点

    Django关于admin的使用技巧和知识点

    在本篇文章里小编给大家整理的是关于Django的admin简单使用的相关知识点内容,需要的朋友们可以跟着学习下。
    2020-02-02
  • 在Python的一段程序中如何使用多次事件循环详解

    在Python的一段程序中如何使用多次事件循环详解

    循环是我们在日常开发中是必不可少会遇到的,下面这篇文章主要给大家介绍了关于在Python的一段程序中如何使用多次事件循环的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09

最新评论