请教,怎么用python做简单的像素级碰撞检测

hsoalgyer 2016-11-27 08:24:45
想做个小游戏,里面要用到碰撞检测,矩形检测 太僵硬就没考虑了。

我看了些网上写用Java的canvas写的,主要方法大概就是,先做两张图片的矩形相交的检测,再将相交的部分的四个坐标做参数,返回给canvas中的getimagedata,这个函数计算区域内的像素点数,这时判断,若返回值不为零则两张图片有相交,说明发生碰撞

现在我想用python实现这个办法,但问题来了,
Python没有现成的类似java中getimagedata功能的函数,我搜索了一番后,发现
python有一个第三方模块PIL,里面有一个getdata函数能计算一个图像的像素数,所以我就想有没有什么办法(函数)能实现下面功能,还有这有没有可行性:
如果现在已经知道两张图片相交区域的四点坐标,再将这一小块区域保存(即将相交区域保存为为一张gif),再用getdata函数计算图片的像素数,如果不为零,判断为碰撞了。”

如果没有,还有没有什么更好的办法?
...全文
571 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsoalgyer 2016-11-30
  • 打赏
  • 举报
回复
楼上的方法,暂时还没来得及学,但倒腾了又一会后,找到了第三方模块pygame(现在基本没更新了,大概没什么人会用来开发游戏,不过就编写这种小游戏足矣)里的sprite类下有个collide_mask的方法,能判断两个传入的图片对象有无重叠像素,并返回一个bool。具体怎么使用,搜索pygame的文档就好
nieoding 2016-11-28
  • 打赏
  • 举报
回复
box2d做碰撞监测

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧