《第一行Android代码》课件:第4章 游戏开发基础_part2_第1页
《第一行Android代码》课件:第4章 游戏开发基础_part2_第2页
《第一行Android代码》课件:第4章 游戏开发基础_part2_第3页
《第一行Android代码》课件:第4章 游戏开发基础_part2_第4页
《第一行Android代码》课件:第4章 游戏开发基础_part2_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 游戏开发基础 part2 让游戏主角动起来 声明变量 drawFrame public void myDraw() drawFrame(currentFrame,canvas,paint); 12帧划分 012345 67891011 坐标 o frameX=-n%col*frameW o frameY=-n/col*frameH drawFrame 4.14碰撞检测 o 矩形碰撞 o 圆形碰撞 o 像素碰撞 矩形碰撞 o 矩形碰撞就是利用两个矩形之间的位置关系矩形碰撞就是利用两个矩形之间的位置关系 来进行判断,如果一个矩形的像素在另外一来进行判断,如果一个矩形的像素在另外一 个矩形之

2、中,或者之上都可以认为这两个矩个矩形之中,或者之上都可以认为这两个矩 形发生了碰撞。其实两个矩形不发生碰撞的形发生了碰撞。其实两个矩形不发生碰撞的 情况就只有四种,其他情况就是发生碰撞了情况就只有四种,其他情况就是发生碰撞了 示意了两个矩形 之间永不会发生 碰撞的四种情况。 绘图函数 冲突检测计算 运行结果 圆形碰撞圆形碰撞 o 圆形之间的碰撞,主要是利用两圆心的圆心 距进行判定的;当两圆的圆心距小于两圆半 径之和时,判定发生了碰撞。 像素碰撞像素碰撞 像素碰撞 o 像素碰撞是怎么模拟碰撞的呢?首先遍历算 出一张位图所有的像素点坐标,然后与另外 一张位图上的所有点坐标进行对比,一旦有 一个像素

3、点的坐标相同,就立刻取出这两个 坐标相同的像素点,通过位运算取出这两个 像素点的最高位(透明度)进行对比,如果 两个像素点都是非透明像素则判定这两张位 图发生碰撞 o 像素碰撞很精确,不论位图之间是否带有透 明像素,都可以精确判断; o 正是因为像素碰撞的这种高精确判定,从而 也会造成代码效率明显降低! o 假设两张100100 大小的位图利用像素级 检测碰撞,仅是遍历两张位图的像素点就要 循环1001002=20000 句逻辑代码; 况且还要对筛选出来的相同坐标的像素点进 行遍历对比其透明值!这种效率可想而知! 多矩形碰撞多矩形碰撞 o 图4-52 的左侧是原图,右侧则是在原图的 基础上设置了两个矩形碰撞区域。观察图中 右侧可明显看出两个矩形正好将原图中非透 明的像素点包起来 Region 碰撞检测碰撞检测 o 常用的方法就是用于判断一个点是否在矩形 区域内,其方法是使用Region 类中的 contains(int x, int y)函数。 o Contains(int x, int y) o 作用:用于判断一个点是否在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论