android游戏编程--图形绘制(2)

前几天刚刚熟悉了怎样绘制图形,本来想让我绘制的图形动起来,可是问题来了,android这个图形定位真让人蛋疼,他不想JAVA  只要给矩形给4个参数:

g.drawRect(距X轴的距离,距Y轴距离,矩形宽度,矩形高度); 这样既能给矩形设置大小,又可以定位矩形。所以今天主要说一下这个小细节。android里是这样定位的

RectF rect=new RectF(x1,y1,x1+w1,y1+h1);

canvas.drawRect(rect, paint);

在模拟器里绘制图形的默认位置原点坐标(0,0)为模拟器的左上角。

所以把 矩形的宽度  应该是矩形右边距离Y轴的距离——矩形左边距Y轴的距离;

矩形的高度  应该是矩形右边距离X轴的距离——矩形左边距X轴的距离;

不知道我说明白了没。

另外一点还要注意的一点是,当你绘制的图形从一个位置移动到另一个位置的时候,在屏幕上会出现移动过的痕迹。这不是我们想要的结果。所以这样就出现了刷屏这个操作。我之前看到的许多这样的代码,因为没有注释,所以也没有注意,更不知道这样做是为了什么 代码如下:

public void myDraw(){
		
		Canvas canvas = sfh.lockCanvas(null);//通过SurfaceHolder对象获取画布   
		canvas.drawColor(Color.BLACK);//这就是刷屏。很简单就一行代码,当然刷屏不知这一种方式,我就不一一列举了。
		RectF rect=new RectF(x1,y1,x1+w1,y1+h1);
        RectF rect1=new RectF(x2,y2,x2+w2,y2+h2);
        canvas.drawRect(rect, paint);
        canvas.drawRect(rect1, paint);
        if(isCollsion){
        	canvas.drawText("碰撞",x1, y1, paint);
        }else{
        	System.out.println("运行中");
        }
        sfh.unlockCanvasAndPost(canvas); 
	}

今天又前进了一步。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值