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

来源:互联网 发布:mac微信没声音 编辑:程序博客网 时间:2024/04/29 03:57

前几天刚刚熟悉了怎样绘制图形,本来想让我绘制的图形动起来,可是问题来了,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); }

今天又前进了一步。


原创粉丝点击