Android游戏开发之检测游戏碰撞的原理实现(九)

雨松MOMO带你走进游戏开发的世界之游戏碰撞的原理

背景底层

 碰撞层

代码的实现方式

首先我们需要利用onKeyDown()和onKeyUp()方法确定当前手机那个按键被按下,根据按键信息更新人物动画,检测是否碰撞。
mIskeyDown  = true 表示 按下方向键下
mIskeyLeft = true 表示 按下方向键左
mIskeyRight  = true 表示 按下方向键右
mIskeyUp  = true 表示 按下方向键上
mHeroPosX 表示人物的X坐标
mHeroPosY 表示人物的Y坐标
mAnimationState 表示播放动画的ID 因为人物行走有4组方向的动画 所以 mAnimationState 可以修改播放那组动画

主角每次移动的时候我们还需要检测一下他的X Y坐标是否超出屏幕
如果超出屏幕则保持他目前的位置不变

主角应该有两个坐标点

       如图所示: 为什么主角要有2个坐标点的原因是  左上角的00点程序是不能进行逻辑判断的 比如检测主角向右移动走超出屏幕,因为坐标点在左上角 所以整个图片都走出屏幕以后程序才能判断出人物出屏, 所以不能用左上角的点来作为主角的坐标原点,须要用下面的点来计算人物的逻辑坐标 我的建议是我们只计算下面这个点然后根据这个点在算出来图片左上角的原点,然后在通知图像绘制。

与实体层发生碰撞

最后由于代码较多我就不贴在博客中了 , 下面给出Demo源码的下载地址欢迎大家下载阅读互相学习,互相研究,互相讨论 雨松MOMO希望可以和大家一起进步。

下载地址:http://www.xuanyusong.com/archives/253

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年6月19日
下一篇 2015年6月20日

相关推荐