首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

Android游戏开发-碰撞检测

2013-04-02 
Android游戏开发---碰撞检测虽然碰撞检测不一定要自己去写,一些游戏引擎直接就提供了相关的方法。但是掌握

Android游戏开发---碰撞检测
虽然碰撞检测不一定要自己去写,一些游戏引擎直接就提供了相关的方法。但是掌握了碰撞检测的基本方法,还是想当有用的。
2D游戏中碰撞一般是矩形的碰撞,但是一般会有一些误差,因为边缘可能是透明的。
以下介绍3种碰撞检测的方法1. 圆的碰撞检测碰撞条件:两个圆心的距离 < 两圆半径和 则碰撞 
2. 矩形的碰撞检测方法1碰撞条件:x抽距离差 < 两矩形宽度之和 / 2y抽距离差 < 两矩形高度之和 / 2

3. 矩形的碰撞检测方法2
碰撞条件:
s表示起点,e表示终点。需要知道矩形的两点。Android游戏开发-碰撞检测
一般在实际中第二种与第三种任选一种即可
第一种 “ 圆的碰撞检测 ” 代码



第二种 “ 矩形的碰撞检测1 ” 代码:(核心部分)



第三种 “ 矩形的碰撞检测 2” 代码

private void drawView(){try{if (holder != null){//drawcanvas = holder.lockCanvas();canvas.drawColor(Color.BLACK);paint.setColor(Color.BLUE);canvas.setDrawFilter(new PaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));//矩形的碰撞 (碰撞后动的矩形禁止)//s(150,151),  e(220,221)canvas.drawRect(150, 151, 220, 221, paint);//当没有碰撞时才自增移动(取反)if (220 <= cx || 221 <= cy || 150 >= (cx + 60)|| 151 >= (cy + 60)){cx += 5;cy += 5;}canvas.drawRect(cx, cy, cx + 60, cy + 60, paint);//动的矩形(都在对角线上运动)}} catch (Exception e){e.printStackTrace();} finally{if (canvas != null)holder.unlockCanvasAndPost(canvas);}}


原创文章,转载请注明出处:http://blog.csdn.net/xn4545945

热点排行