资讯专栏INFORMATION COLUMN

Pygame精准检测图象撞击问题

89542767 / 497人阅读

  此篇文章主要是阐述了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/128841.html

相关文章

  • Pygame精准检测图象撞击问题

      此篇文章主要是阐述了Pygame精准检测图象撞击,在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击,需用的小伙伴可以借鉴一下  在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击。  假定大家主要有两种图象(产品为...

    89542767 评论0 收藏0
  • pygame中Rect对象介绍案例解答

      小编写此篇文章的目的,主要是给大家来做一个解答,解答关于pygame中Rect对象的相关内容知识,下面就给大家做一个比较详细的解答。  class pygame.Rect Rect  对象的属性:  Rect表示的区域必须位于一个Surface对象之上,比如游戏的主窗口(screen)。上述方法由四个关键参数值构成,分别是left、top、width、height,为了方便大家理解这些距离的含...

    89542767 评论0 收藏0
  • 30个Python小游戏,上班摸鱼我能玩一天【内附源码】

    摘要:源码分享主函数游戏初始化九歌播放背景音乐游戏主循环按键检测更新贪吃蛇和食物判断游戏是否结束显示游戏里必要的元素屏幕更新普普通通玩法详细介绍源码点小游戏玩法通过加减乘除操作小学生都没问题的。 大家好,我是辣条。 今天给大家带来30个py小游戏,一定要收藏࿰...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

最新活动
阅读需要支付1元查看
<