首页 > 其他 > 详细

游戏开发基础--碰撞检测

时间:2014-03-03 00:50:38      阅读:886      评论:0      收藏:0      [点我收藏+]

  碰撞就是游戏中的元素是否碰到一起,比如打飞机游戏,没躲避炮弹就算碰撞,要检测出来,要game over的。主要讲讲2D游戏里的碰撞检测,传统的2D游戏可以把不同元素当作基本图形粗糙地来检测碰撞与否?

1、矩形判断  

  比如把游戏中敌我双方人物都当作矩形来检测两个矩形是否相交。那么如何判读两个矩形是否相交呢? 

  相交 == !(不相交),不相交较好判断,优先判读不相交再取反就可以了。

  bubuko.com,布布扣

  如上图旁边矩形都不和中间矩形相交,它们都有共同特点:

  旁边矩形(B)的xy坐标没有同时介于中间矩形(A)x~x‘,y~y‘间,即没有一个点出现在A矩形内部,用伪代码判断不相交就是

  B.max(x) < A.min(x) || B.min(x) > A.max(x) || B.max(y) < A.min(y) || B.min(y) > A.max(y)

  那么判读相交的伪代码就是

     !(B.max(x) < A.min(x) || B.min(x) > A.max(x) || B.max(y) < A.min(y) || B.min(y) > A.max(y))

2、圆形判断

  圆形判读比较简单,即判断两个圆心距离是否大于两个圆的半径之和

bubuko.com,布布扣

  (Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) > r1 + r2)

3、多矩形判断

bubuko.com,布布扣

bubuko.com,布布扣

  这时我们就要封装多个矩形来一一判断是否有碰撞。

4、像素碰撞

  ...

 

 

  

  

游戏开发基础--碰撞检测,布布扣,bubuko.com

游戏开发基础--碰撞检测

原文:http://www.cnblogs.com/aiguozhe/p/3575812.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!