android游戏编程--绘制图形

来源:互联网 发布:linux下游戏开发 编辑:程序博客网 时间:2024/05/04 07:08

我只是一个菜得不能再菜的菜鸟,只是学过几天的JAVA ,做过几乎所有学JAVA 的人都做过的小项目,对android稍有了解。

那天突然想到了一个android游戏的创意。所以从今天开始学习android的游戏编程。一个从没有接触过游戏编程的人,不知道这条路能走多远。如果有一天我成功的写出了我自己的游戏。我希望那些和我一样想开发游戏的人,看着我成长的脚印,能少走弯路。把更多的时间都放到创新上。所以从今天开始,会不定期的写一篇博客来记录我走过的这一路……

游戏开发当然少不了绘制图形,在android里提供了SurfaceView这个类可以称作是一个游戏框架,在这里我们要绘制自己的天地。

绘图之前要先介绍几个类
Paint 这是画笔,我们所有绘制的图形都用到画笔,它包括绘制图形的颜色和形状。

Canvas 这是画布,是我们画图的地方,所有的图形都要放到这上边。

SurfaceHolder.Callback,这个非常重要,怎么说呢,是一个接口用来操纵surface。处理它的Canvas上画的效果和动画,控制表面,大小,像素等。

package hr.csdn.com;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class SnckGrame extends SurfaceView implements Runnable,Callback{private SurfaceHolder sfh;//声明一个画笔private Paint paint;//文本的坐标private int[] m,n;//声明一条线程private Thread th;//线程消亡的标识位private boolean flag;//声明一个画布private Canvas canvas;//声明屏幕的宽高private int screenW, screenH; public SnckGrame(Context context) {super(context);//实例SurfaceHoldersfh = this.getHolder();//为SurfaceView添加状态监听sfh.addCallback(this);paint = new Paint();//设置画笔颜色为白色paint.setColor(Color.WHITE);setFocusable(true);}public void myDraw(){Canvas canvas = sfh.lockCanvas(null);//通过SurfaceHolder对象获取画布          //其实是锁定画布,只有这样才能确保你绘制的图形出现在画布上        canvas.drawRect(new Rect(100,80,60,60), paint);           sfh.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像  }public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}public void surfaceCreated(SurfaceHolder holder) {flag=true;th=new Thread(this);th.start();//在创建suface的时候开启线程}public void surfaceDestroyed(SurfaceHolder holder) {flag=false;//销毁的时候让线程停止}public void run() {while(flag){myDraw();}}}
这只是简单的绘制了一个几何图形,向目标迈进了一小步。



原创粉丝点击