2D游戏中常见的碰撞检测处理【持续更新】



~写在前面~

嗯...打算开始每天写点啥了,不知道能坚持多久。

打算每天写一点或是技术或是应用或是设计或是什么的乱七八糟的有用的“干货”,所以起名叫“大杂烩”。以一周为单位来进行更新,周一~周三写一些图形方面的内容,四~六是和图形没有什么太大关联的内容(大家意会就好),周日作为一个更新重点试着写一些和paper有关的东西。打算做到“paper a week”不过感觉似乎有点不太现实总之先试试吧w

这篇里面用到的大部分图片应该都是用 http://editor.method.ac/ 这个东西做的,这是一个在线的svg矢量图编辑器,不过似乎还不支持动画。

那么就这样开始更新了w~



在现今的游戏中,碰撞检测可以说是一个基础的不能再基础的技术。它关乎能否正确判断玩家的攻击有没有击中目标,判断玩家有没有踩在地板上,判断某两个物体有没有碰撞在一起,进而衍生出其它的各种行为。

而碰撞检测是建立在碰撞体上的。碰撞体是对一个物体“边界”的确切描述,它描述了每个需要进行碰撞检测的物体的边界,并依靠数学方法判断这些边界是否相交,进而产生碰撞检测的结果。

(“老鹰用爪子抓到了兔子”)

那让我们从一个最基本的开始吧。

1)圆形碰撞体

圆形碰撞体可以说是最简单的一种碰撞体,其计算速度也是最快的,算法也非常容易理解。

时间: 2024-11-03 05:34:43

2D游戏中常见的碰撞检测处理【持续更新】的相关文章

使用JEECG过程中的问题汇总(持续更新)

1.首次启动Tomcat服务时,控制台信息提示请使用SQL Server 2005或更高版本. <dependency> <groupId>org.jeecgframework</groupId> <artifactId>jdbc2005</artifactId> <version>${sqlserver.version}</version> <scope>runtime</scope> </

Unity3D 2D游戏中寻径算法的一些解决思路

需求 unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能.但是在原生的2d中并没有相同的功能. 现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一些例如机器人.npc等,都需要自动寻路的功能. 我需要实现的功能类似于当年FC游戏中淘金者的运动方式.游戏中有淘金者.敌人,可移动,不可移动区域,只能沿着直线的向前向后或者向上向下. 思路 unity3d中也有一些2d寻路的插件.例如A Pathfinding Project Pro和NavMesh

tcpdump的使用以及通信协议中常见缩写涵义(持续不定期更新)

1. tcpdump的使用 在tcpdump输出中 Flags: [S],表示该TCP报文段包含SYN标志 [F],表示该TCP报文段包含FIN标志 seq:TCP首部32位序号值 win:接收通告窗口的大小 2.网络协议中常见缩写涵义 MTU:最大传输单元,指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位) MSL:最长分节生命期 ISN:初始序号值,第一个TCP报文段,其序号值会被系统初始化为ISN,后序TCP报文段中序号值将被系统设置成ISN加上该报文段所携带数据的第一个字

NGUI 3.9.0 Tween实现Toggle点击下拉菜单(游戏中常见的边角主菜单入口)

单机游戏中这个熟悉的按钮,会弹出如下一样的菜单,相信初次看到的,肯定会很惊奇,That's Great!接下来让我告诉大家其中的做法. 1.创建Toggle ,前景图(Background)为,CheckMark 为.(两个为Sprite,从图集中选取,关于如何添加Sprite与制作图集,在这里不做主要叙述了) 2.制作下拉菜单,(1)创建一个Panel作为父容器.(2)在Panel下面添加Sprite,命名为MenuListPanelBkSprite,此为下拉菜单的背景图片.(3)在MenuL

游戏中常见(或必须)的42种要素

主要概括为以下几种 人物特效 光特效 粒子特效 物理效果 声音特效 天气特效 1. 水体效果 water effects 2. 血液消失的效果disappearing blood effects 3. 霓虹灯样的粒子系统neon particle system 4. 卡通着色cel-shading 5. 反射reflection 6. 能在头盔前的玻璃中看到自己的反射visor reflection 7. 环绕立体声surround sound 8. 立体3Dstereoscopic 3D 9.

android 常见问题解决方法(持续更新中....)

 Systrace生成的trace.html打开空白或者打不开的解决办法 1.必须用Chrome打开 2.在mac电脑上,可能Chrome打开也是空白,解决办法是:在chrome地址栏中输入”chrome:tracing”,然后点击load按钮load你的trace.html文件. gradle 新增moudle后,有时候出现类或者xml文件引用不到 1. 先clean,然后build 2. 第一步还不行,试用下面的主动同步

游戏中常见动物的象征意义

沙盘中动物的象征意义,可以触及来访者无意识中的人格内涵.沙盘中出现的动物,既可能是来访者本身所崇尚欣赏品质的具体化,也可能是自己恐惧担忧的象征. 考察的沙盘作品中动物的象征意义,可以触及来访者无意识中的人格内涵.盘中出现的动物,既可能是来访者本身所崇尚欣赏品质的具体化,也可能是自己恐惧担忧的象征. (一)十二生肖的象征意义 1.鼠:嗅觉灵敏,胆小多疑,警惕性高,加上它的身体十分灵巧,它的机灵和性能通灵方面,使得民间认为鼠性通灵,能预知吉凶灾祸.鼠的繁殖力强,成活率高,也是生命力强的象征. 2.牛

虚幻4:2D游戏中实现二级或多级跳跃

转自:http://www.52vr.com/article-729-1.html 闲来无事,想做个二级跳跃或者多级跳跃的方法.. 如下所示.即可实现. 第一步:角色蓝图中.设置跳跃事件 第二部:设置二级跳跃的检测范围 第三部:更加严谨的去设置二级跳跃中的逻辑 最后:角色在靠近墙体时且反向操作,才可以触发二级跳跃!

2d游戏中的射线与矩形检测碰撞

cc.exports.LineCollideRect(startLine,endLine,rect)--向量与矩形检测碰撞 --获取矩形的四个顶点位置 local p = {cc.p(rect.x,rect.y),cc.p(rect.x + rect.width,rect.y),cc.p(rect.x+rect.width,rect.y + rect.height),cc.p(rect.x,rect.y+rect.height)} local bRight = PointPosInVector(