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]