横版过关游戏开发-碰撞检测
来源:互联网 发布:安卓字体软件 知乎 编辑:程序博客网 时间:2024/04/28 03:53
上回说哪了?碰撞检测。碰撞检测应该是所有事件的触发点。比如:人物下落的时候,落到地面上。程序实现就要不断地检测人物坐标和地面坐标,如果碰撞,则停止下落。还有其他情况:子弹碰到敌人,则敌人消失,并且显示一个子弹爆炸的画面;人物碰到金币,则累计金钱数量,显示一个小动画。
程序怎样实现:所有图形元素,都应该有一个外包图形,如点,圆,三角形,矩形。为了简单起见,这次,我都用了矩形。判断的时候,是用几个宏实现的:
//点与矩形碰撞#define POINT_IN_RECT(x,y,x1,y1,w,h) ((y)>(y1) && (y)<(y1)+(h) / && (x)>(x1) && (x)<(x1)+(w))//点在一个区间内#define IN_AREA(x,x1,w) ( (x)>(x1) && (x)<(x1)+(w) )//两个线段重叠#define LINE_ON_LINE(x1,y1,w1,x2,y2,w2) ((y1)==(y2) /&& (x1)<(x2)+(w2) && (x1)>(x2)-(w1) )//竖线与矩形碰撞#define VLINE_IN_RECT(x,y,h,x1,y1,w1,h1) ( (y)+(h)>(y1) && (y)<(y1)+(h1) / && (x)>(x1) && (x)<(x1)+(w1) )//横线与矩形碰撞#define HLINE_IN_RECT(x,y,w,x1,y1,w1,h1) ( (y)>(y1) && (y)<(y1)+(h1) / && (x)+(w)>(x1) && (x)<(x1)+(w1) )//横线与矩形碰撞#define HLINE_ON_RECT(x,y,w,x1,y1,w1,h1) ( (y)>=(y1) && (y)<=(y1)+(h1) / && (x)+(w)>=(x1) && (x)<=(x1)+(w1) )//矩形与矩形碰撞#define RECT_HIT_RECT(x,y,w,h,x1,y1,w1,h1) ( (y)+(h)>(y1) && (y)<(y1)+(h1) / && (x)+(w)>(x1) && (x)<(x1)+(w1) )
今天就讲到这,其他内容以后慢慢讲。
- 横版过关游戏开发-碰撞检测
- 横版过关游戏开发-游戏流程
- 横版过关游戏开发1
- 横版过关游戏开发-人物控制
- 横版过关游戏开发-图像处理
- 游戏开发之碰撞检测
- Android游戏开发---碰撞检测
- 游戏开发基础--碰撞检测
- 横版过关游戏源码
- Android游戏开发基础part7--碰撞检测
- Java简单游戏开发之碰撞检测
- Android游戏开发基础part7--碰撞检测
- [Unity3D]Unity3D 游戏开发之碰撞检测
- 浅谈游戏开发中碰撞检测
- [Unity3D]Unity3D 游戏开发之碰撞检测
- C++游戏开发之碰撞检测算法
- Android研究之游戏开发碰撞检测
- java游戏开发之碰撞检测
- 成为程序员所应该做到的~~
- .NET 重绘TabControl
- Why is the "DEBUG: Error 2836" message generated in the DB2 V8, V9.1, or V9.5 installation log file on Windows system?
- 备忘:解决WTP(Eclipse)编辑javascript等文件乱码
- struts2乱码终击解决办法。简单呀
- 横版过关游戏开发-碰撞检测
- 命令行状态下读取数据库连接文件的方法
- 数据库中的数据类型
- 浅论技术人员的发展阶段和自身定位选择 :::IT技术管理系列之五:::
- 配置silverlight视频分享网站Video.Show
- 寻找幸福
- 用贪心法解决图的着色问题
- 解决EXCEL导入至mysql的问题
- 一位大牛整理的Python资源