优草派 > Python

Python图像碰撞检测怎么做?Python如何实现图像碰撞检测

罗西汉         优草派

python能够使用第三方库pygame开发出各种游戏程序,而在游戏之中,操作是通过各种图像来完成的,例如五子棋或者是俄罗斯方块等等。而这些游戏就是需要去通过图像碰撞检测来判断图像之间是否有接触,这样才可以执行下一步操作。而下文也是和其相关的内容,一起看看吧。

Python图像碰撞检测怎么做?Python如何实现图像碰撞检测

1.python图像碰撞检测功能需要使用到第三方库pygame,它就是能够创建窗口,并且将各种资源作为组件放在窗口内进行操作。而图像在其中也只是一个对象而已,而进行图像检测需要先获取到它们的边缘,代码如下所示:

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

代码示例之中调用方法的对象已经是读取到程序内,并且添加到游戏窗口作为组件而存在的了。

2.之后还是要去使用这两个图像对象调用mask方法来返回对应的mask对象,该对象的作用就是得到能够实际进行坐标判断,代码如下所示:

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

3.最后就是通过overlap()方法来完成图像碰撞检测操作了,该操作实现的原理就是用一个rect对象调用该方法,然后将另外一个同类型图像对象和坐标作为参数传递进去。如果计算之后返回的结果不为空的话,就是没有发生碰撞,反之则是图像已经碰撞了。

实际过程就是用第一个图像的坐标去判断它与第二个图像坐标是否有重合,有重合就会产生差值从而结果不为空,代码如下:

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

以上就是关于“Python图像碰撞检测怎么做?Python如何实现图像碰撞检测”的全部内容了,希望对你有所帮助。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024