android碰撞检测
来源:互联网 发布:网络异常检测 编辑:程序博客网 时间:2024/05/18 20:32
两个矩形,拖动其中一个矩形向另外一个移动,当发生碰撞时两个矩形同时变为红色:
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.support.v4.app.NotificationCompatSideChannelService;import android.view.MotionEvent;import android.view.SurfaceHolder;import android.view.SurfaceView;/** * Created by lijia on 2017/5/25. */public class lesson6 extends SurfaceView implements SurfaceHolder.Callback,Runnable { private int bx,by,dx,dy,rw,rh; private Canvas canvas; private Paint paint1,paint2; private Thread th; private boolean runFlag; private SurfaceHolder sfh; private Rect rect1,rect2; public lesson6(Context context) { super(context); sfh=this.getHolder(); sfh.addCallback(this); paint1=new Paint(); paint2=new Paint(); bx=100; by=100; rw=200; rh=200; dx=0; dy=0; } @Override public void surfaceCreated(SurfaceHolder holder) { th=new Thread(this); runFlag=true; th.start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { } @Override public void run() { while(runFlag) { gameDraw(); } } public void gameDraw() { canvas=sfh.lockCanvas(); canvas.drawColor(Color.WHITE); rect1=new Rect(bx,by,bx+rw,by+rh); rect2=new Rect(300,300,500,500); paint1.setColor(Color.GREEN); canvas.drawRect(rect2,paint2); if (rect2.intersect(rect1)) { paint1.setColor(Color.RED); canvas.drawRect(bx,by,bx+rw,by+rh,paint1); paint2.setColor(Color.RED); canvas.drawRect(rect2,paint2); }else { paint1.setColor(Color.BLUE); // rect1=new Rect(bx,by,bx+rw,by+rh); canvas.drawRect(rect1,paint1); paint2.setColor(Color.GREEN); canvas.drawRect(rect2,paint2); } sfh.unlockCanvasAndPost(canvas); } @Override public boolean onTouchEvent(MotionEvent event) { Rect r=new Rect(bx,by,bx+rw,by+rh); if(r.contains((int)event.getX(),((int)event.getY()))) { if (event.getAction()==MotionEvent.ACTION_MOVE) { bx=dx+(int)event.getX(); by=dy+(int)event.getY(); }else { dx=bx-(int)event.getX(); dy=by-(int)event.getY(); } } return true; }}
阅读全文
0 0
- android 游戏 碰撞检测
- android碰撞检测
- Android游戏开发---碰撞检测
- Android 游戏检测碰撞方法
- Android 小球碰撞检测技术
- Android碰撞检测——Region碰撞检查
- Android游戏开发基础part7--碰撞检测
- Android碰撞检测——圆形检查
- Android碰撞检测——矩形检查
- Android游戏开发基础part7--碰撞检测
- android 学习:多矩形碰撞检测
- android 线段与矩形碰撞检测
- Android研究之游戏开发碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 详解strusts2.xml配置各项理解(一个小案例)
- Sublime Text 3 缩进设置
- 2017最新各大应用商店APP上架指南
- ExpandableStickyListHeadersListView遇到的一个问题
- postCss的学习
- android碰撞检测
- 预置第三方apk到MTK项目相关问题总结
- C语言基础-程序常见错误(一)
- MII和MDIO接口详解
- MySQL用户执行存储过程的权限
- MediaMuxer Stop抛异常崩溃
- 数据结构之删除元素 烟台大学 计控 软工
- 02、openstack4j建立通用的认证连接公共方法
- 我和 flow.ci 的第一次亲密接触