- 浏览: 426955 次
- 性别:
- 来自: 深圳/湛江
文章分类
最新评论
-
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
[ios]利用xcode自动生成项目文档 -
tiger1819:
有源码么,想学习
[android]仿360状态,类流量监控桌面浮动显示 -
119568242:
借我一双翅膀 写道大哥,求指教啊?
IOS 开发,调用打电话,发短信,打开网址 -
借我一双翅膀:
大哥,求指教啊
IOS 开发,调用打电话,发短信,打开网址 -
li247276297:
楼主 是不是要加个权限?
[android]仿360状态,类流量监控桌面浮动显示
Android菜鸟日记
32-游戏中的碰撞
一、矩形与矩形的碰撞
用反向思维,除了不碰撞的都是碰撞的。
既
四种情况
如图:
口1 口2 口 口3 口4 红色表示相对应的矩形 则 有x1 y1 w1 h1 X2 y2 w2 h2
|
1的情况 y2 < y1 && y2 < y1 - h2 2的情况 x2 < x1 && x2 < x1 - w2 3的情况 x2 > x1 && x2 > x1 + w1 4的情况 y2 > y1 && y2 > y1 + h1 |
二、圆形与圆形的碰撞
主要就是判断圆心距离
(Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) > r1 + r2) |
Math.pow(double a,double b)a的b次方
三、圆形与矩形的碰撞
第一种:就是圆形与矩形边框的碰撞检测
检测Y轴圆心到矩中心的距离是否小于半径+矩形X轴1/2宽
检测X轴圆心到矩中心的距离是否小于半径+矩形Y轴1/2高
第二种:就是特殊的矩形四个角检测
四个矩形顶角到圆心的距离是否小于半径
四、多矩形的碰撞
把不规则图片看成多矩形然后检验碰撞。
下面是我自己封装的一个碰撞类
封装了上面几个加上
2组矩形数组内容之间检验是否碰撞的类
package com.lurencun.SurfaceUtil; import android.graphics.Rect; /** * 游戏碰撞检测类 * * @author poolo * @version 1.00 */ public class CollisionUtil { /** * 矩形碰撞检测 参数为x,y,width,height * * @param x1 * 第一个矩形的x * @param y1 * 第一个矩形的y * @param w1 * 第一个矩形的w * @param h1 * 第一个矩形的h * @param x2 * 第二个矩形的x * @param y2 * 第二个矩形的y * @param w2 * 第二个矩形的w * @param h2 * 第二个矩形的h * @return 是否碰撞 */ public boolean IsRectCollision(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2) { if (x2 > x1 && x2 > x1 + w1) { return false; } else if (x2 < x1 && x2 < x1 - w2) { return false; } else if (y2 > y1 && y2 > y1 + h1) { return false; } else if (y2 < y1 && y2 < y1 - h2) { return false; } else { return true; } } /** * 矩形碰撞检测 参数为Rect对象 * * @param r1 * 第一个Rect对象 * @param r2 * 第二个Rect对象 * @return 是否碰撞 */ public boolean IsRectCollision(Rect r1, Rect r2) { return IsRectCollision(r1.left, r1.top, r1.right - r1.left, r1.bottom - r1.top, r2.left, r2.top, r2.right - r2.left, r2.bottom - r2.top); } /** * 圆形碰撞检测 * * @param x1 * 第一个圆的圆心x * @param y1 * 第一个圆的圆心y * @param r1 * 第一个圆的半径 * @param x2 * 第二个圆的圆心x * @param y2 * 第二个圆的圆心y * @param r2 * 第二个圆的半径 * @return 是否碰撞 */ public boolean IsCircleCollision(int x1, int y1, int r1, int x2, int y2, int r2) { // 两点距大于 2圆形半径距离 if (Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) > r1 + r2) { return false; } return true; } /** * 圆形与矩形碰撞检测 * * @param x1 * 第一个矩形的x * @param y1 * 第一个矩形的y * @param w1 * 第一个矩形的宽 * @param h1 * 第一个矩形的高 * @param x2 * 圆的圆心x * @param y2 * 圆的圆心y * @param r2 * 圆的半径r * @return 是否碰撞 */ public boolean IsC2RCollision(int x1, int y1, int w1, int h1, int x2, int y2, int r2) { if ((Math.abs(x2 - (x1 + w1 / 2)) > w1 / 2 + r2) || Math.abs(y2 - (y1 + h1 / 2)) > h1 / 2 + r2) { return false; } return true; } /** * 多矩形碰撞 * * @param rArray1 * @param rArray2 * @return 是否碰撞 */ public boolean IsRectsCollision(Rect[] rArray1, Rect[] rArray2) { for (Rect rt1 : rArray1) { for (Rect rt2 : rArray2) { if (IsRectCollision(rt1, rt2)) { return true; } } } return false; } }
2012-01-11
poolo
发表评论
-
[android]使用 Matrix 的随触摸旋转的ImageView
2013-02-22 01:58 7924使用 Matrix 的随触摸旋转的ImageView 突 ... -
[android]动态改变按钮背景状态 StateListDrawable
2012-10-29 10:52 1472动态改变按钮背景状态 很少用到 上次和六哥聊到。 ... -
[android]ViewPage上无法通过onKeyDown()获得按钮事件
2012-08-20 04:53 1366系统无法监听到遥控器在VewPage上的按钮事件,如需 ... -
[android]待解决 lisTview 的onItemSelected 监听事件焦点的问题。
2012-08-18 21:18 2177今天遇到个问题 到目前为止 一直不理解为什么 大概描述下布局 ... -
[android]layout_weight 在layout_width 为fill_parent 与wrap_content 时的不同含义
2012-08-12 12:52 1270转自:http://hi.baidu.com/l ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 4032研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 3研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 0研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]Activity切换动画
2012-08-10 12:23 1479今天准备比赛的时候 遇到了这个问题。 查了些资料 ... -
android中ADT版本问题:无故报 java.lang.NoClassDefFoundError
2012-07-31 22:08 1792今天修改一个老项目的时候,发现在所有配置正确的情况下,代目无任 ... -
[android]仿360状态,类流量监控桌面浮动显示
2012-05-27 22:03 6031前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮 ... -
[转]android开发问题记录 "founderapp"
2012-02-08 10:48 1071这段时间,由于某种原因,一直在做android手机开发, ... -
关于weight
2012-02-05 21:20 844layout_weight=1后,除了其它的控件之外剩 ... -
判断SD卡是否存在
2012-02-02 17:54 873android.os.Environment.getEx ... -
[转]Android文件管理器介绍
2012-02-02 16:50 3081转自:http://www.linuxidc.com/L ... -
[转]Android文件管理器介绍
2012-02-02 16:49 5转自:http://www.linuxidc.com/L ... -
[转]android 几何图形的绘制
2012-02-01 16:06 2193转自:http://byandby.iteye.c ... -
Android菜鸟日记31-selector 中使用 shape
2012-01-11 23:05 1614Android菜鸟日记 31- ... -
Android菜鸟日记30-View与SurfaceView
2012-01-11 22:45 949Android菜鸟日记 30 View与Surfa ... -
[转]Android开发者指南-Manifest.xml-activity[原创译文]
2012-01-10 17:55 944<activity android:allowTa ...
相关推荐
这篇“Android菜鸟日记25-android反编译”将带你走进Android反编译的世界,揭示APK背后的秘密。 首先,让我们了解什么是Android反编译。Android应用主要由Java语言编写,经过编译后生成Dalvik字节码(.dex文件),...
菜鸟入侵--利用资源搜索动画教程,内附有详细的使用说明 菜鸟入侵之利用资源篇 菜鸟在入侵的时候,如果能充分利用现有的资源,那将对自己的入侵起很大的
菜鸟到老鸟-教你玩转Mac操作
STM32菜鸟学习手册-罗嗦版 。
- **环境变量**:为了方便在命令行中使用,建议将Android SDK和Android Studio的bin目录添加到系统环境变量中。 - **插件安装**:根据项目需求安装必要的插件,比如Gradle、Git等。 - **首选项设置**:调整编辑器...
android-emulator-webrtc 它包含一组React组件,可用于从浏览器与android模拟器进行交互。 它旨在与连接到正在运行的仿真器的一起使用。 有关如何运行可通过网络访问的仿真器的示例,请参见脚本。 npm install --...
Android课程设计-计菜鸟裹裹app源代码+文档说明菜鸟裹裹主要包括1.支付宝快速登录2.支付宝注册3.手机淘宝登录,手机登录4.首页-校园认证5.首页-包裹搜索,首页-添加包裹6.首页-扫一扫7.首页-身份码8.首页-寄万物,寄...
### 知识点一:Android 开发环境搭建 #### 1.1 了解 Android 开发环境的基本构成 - **操作系统**:本教程基于 Windows 7 操作系统进行讲解。 - **JDK(Java Development Kit)**:安装 JDK 1.7 或更高版本,因为 ...
在《职场菜鸟升职记》这部作品中,作者通过主人公的视角展现了作为一名职场新人所应有的态度。开篇即强调“我是菜鸟”的心态,这种心态不仅意味着对自身能力的认知和定位,更是一种积极向上、勇于学习的态度。它鼓励...
android-json-0.0.20131108.vaadin1.jar
2. **角色控制**:角色的移动、旋转、碰撞检测等,是游戏中的基本操作。例如,“向前移动10步”、“如果碰到角色B,则执行...”等。 3. **条件语句**:如“如果...那么...否则...”用于设置游戏规则,例如,如果...
手打从菜鸟到入门--电脑篇 此文章推荐刚刚接触电脑的朋友们阅读,书籍会更新,属于网络文章,相信对大多数网友会有帮助!
《Delphi7教程之菜鸟先飞版--帮你打通任督二脉(第1式)》是一份专为初学者设计的教程,旨在帮助新手快速掌握Delphi7编程的基础知识和技巧。Delphi7是一款强大的Windows应用程序开发工具,以其高效的代码生成、直观的...
菜鸟飞飞飞-微服务架构的想法
《CCNA菜鸟笔记640-802》是一份针对初学者的全面学习资源,包含两部分:《CCNA菜鸟笔记2007修正版》和《CCNA 640-802课程讲义》。这些文档旨在帮助读者理解和掌握Cisco Certified Network Associate(CCNA)认证考试...
安装过程可能需要几分钟,完成后,设备管理器中应该会显示出已成功安装的Android设备驱动。 至此,硬件调试环境搭建完毕。你可以通过USB数据线将手机连接到电脑,开发环境中如Android Studio会自动识别设备。在确保...
描述中的"自己根据切水果的原理做的小游戏 用某位大神做的刀光效果" 暗示开发者在实现游戏的过程中可能借鉴或使用了其他开发者制作的特效,如“刀光效果”,这是游戏中关键的视觉元素,能够增强玩家的沉浸感和游戏...