此篇文章主要是阐述了Pygame精准检测图象撞击,在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击,需用的小伙伴可以借鉴一下
在使用Pygame写游戏时,有些人可能遇到2个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是1个Mask目标
other是另一个Mask目标
offset是1个数组元素,数组元素中分别是两个rect的x坐标插值法和y坐标插值法
传参主要有两种,如果是个数组元素就证明早已撞击,假如为None就证明并没有撞击
编码如下所示:
offset=abs(rect1.x-rect2.x),abs(rect1.y-rect2.y) ifrect1.overlap(rect2,offset)!=None:#早已撞击 print("早已撞击")
之上编码仅仅实例,可供参考,取名不用和上面相同,合乎命名规范就可以了
综上所述,这篇文章留给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129024.html
此篇文章主要是阐述了Pygame精准检测图象撞击,在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击,需用的小伙伴可以借鉴一下。 在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击。 假定大家主要有两种图象(为非...
小编写此篇文章的目的,主要是给大家来做一个解答,解答关于pygame中Rect对象的相关内容知识,下面就给大家做一个比较详细的解答。 class pygame.Rect Rect 对象的属性: Rect表示的区域必须位于一个Surface对象之上,比如游戏的主窗口(screen)。上述方法由四个关键参数值构成,分别是left、top、width、height,为了方便大家理解这些距离的含...
摘要:源码分享主函数游戏初始化九歌播放背景音乐游戏主循环按键检测更新贪吃蛇和食物判断游戏是否结束显示游戏里必要的元素屏幕更新普普通通玩法详细介绍源码点小游戏玩法通过加减乘除操作小学生都没问题的。 大家好,我是辣条。 今天给大家带来30个py小游戏,一定要收藏...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 890·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02