Mily-Lky 发表于 2012-10-24 22:54:00

android游戏---贪吃蛇

http://pic002.cnblogs.com/images/2012/411043/2012083010380966.pnghttp://pic002.cnblogs.com/images/2012/411043/2012083010384927.pnghttp://pic002.cnblogs.com/images/2012/411043/2012083010391615.png
先看看运行的效果

最顶层的是wall类,生成和绘制外墙代码如下:
package com.example.worm;import android.content.Context;import android.util.DisplayMetrics;import android.view.View;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Bitmap;public class wall extends View{    private Context mContext;    private int width;    private int height;    private int widthNum;                           // 方格20 * 20 保存方格行列数;    private int heightNum;    private Bitmap bm;      public wall(Context context)    {      super(context);      mContext = context;                DisplayMetrics dm = new DisplayMetrics();      dm = context.getResources().getDisplayMetrics();                width = dm.widthPixels;      height = dm.heightPixels;            widthNum = width / 20;      heightNum = height / 20;                bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.wall);    }      private void drawTableForm (Canvas canvas)           //绘制表格白线    {      Paint paint = new Paint ();                paint.setStrokeWidth(1);      paint.setStyle(Paint.Style.STROKE);      paint.setColor(Color.WHITE);                for (int i = 0; i <= widthNum; i++)      {            canvas.drawLine(20 * i, 0, 20 * i, height, paint);      }                for (int i = 0; i <= heightNum; i++)      {            canvas.drawLine(0, 20 * i, width, 20 * i, paint);      }            }    private void drawWall(Canvas canvas)               // 在最外层绘制棕色墙体;    {      for (int i = 0; i < widthNum; i++)      {            canvas.drawBitmap(bm, 20 * i, 0, null);            canvas.drawBitmap(bm, 20 * i, height - 20, null);      }                for (int i = 1; i < heightNum - 1; i++)      {            canvas.drawBitmap(bm, 0, 20 * i, null);            canvas.drawBitmap(bm, width - 20, 20 * i, null);      }    }      @Override   protected void onDraw (Canvas canvas)                //覆盖onDraw    {      super.onDraw(canvas);                drawTableForm (canvas);      drawWall(canvas);    }      }
页: [1]
查看完整版本: android游戏---贪吃蛇