优草派 > 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空间

  • 复制链接

取消
广告
? x
广告
? x
广告
? x
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备 19005950号-1  

工商营业执照信息

违法和不良信息举报

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

优草派  版权所有 © 2024