Android贪食蛇-版本1.1(基本功能实现版)
先说说所有的文件
DesktopView.java是地图文件,用来画出桌面的文件
Food.java食物类文件SnakeView.java画出蛇的文件
事先声明,这个程序只是实现了最简单的功能,下面是界面。

好了,开始放代码。
package mars.com;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.MotionEvent;import android.view.View;public class DesktopView extends View {private int width;private int height;public DesktopView(Context context) {super(context);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.WHITE);// 为画布设置颜色canvas.setViewport(SnakeActivity.SCREEN_WIDTH,SnakeActivity.SCREEN_WIDTH);Paint paint = new Paint();paint.setColor(Color.BLUE);// 画横线for (int i = 0; i <= SnakeActivity.NUMBER; i++)canvas.drawLine(i * SnakeActivity.CELL, 0, i * SnakeActivity.CELL,SnakeActivity.CELL * SnakeActivity.NUMBER, paint);// 画竖线for (int i = 0; i <= SnakeActivity.NUMBER; i++)canvas.drawLine(0, i * SnakeActivity.CELL, SnakeActivity.CELL* SnakeActivity.NUMBER, i * SnakeActivity.CELL, paint);// 开始画按钮paint.setColor(Color.GRAY);int x = 0;int y = SnakeActivity.SCREEN_WIDTH;width = SnakeActivity.SCREEN_WIDTH / 7;height = (SnakeActivity.SCREEN_HEIGHT - SnakeActivity.SCREEN_WIDTH) / 5;Bitmap image = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.left));canvas.drawBitmap(image, x + width * 3, y + height * 2, paint);image = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.right));canvas.drawBitmap(image, x + width * 5, y + height * 2, paint);image = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.up));canvas.drawBitmap(image, x + width * 4, y + height * 1, paint);image = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.down));canvas.drawBitmap(image, x + width * 4, y + height * 3, paint);postInvalidate();// 更新页面}@Overridepublic boolean onTouchEvent(MotionEvent event) {float x = event.getX();float y = event.getY();Bitmap image = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.left));int imageX = image.getWidth();int imageY = image.getHeight();// 如果按向上键if (x > 4 * width && x < 4 * width + imageX&& y > height + SnakeActivity.SCREEN_WIDTH&& y < imageY + height + SnakeActivity.SCREEN_WIDTH) {System.out.println("***上");Snake.newDirection = Snake.UP;}// 如果是向下键if (x > 4 * width && x < 4 * width + imageX&& y > 3 * height + SnakeActivity.SCREEN_WIDTH&& y < imageY + 3 * height + SnakeActivity.SCREEN_WIDTH) {System.out.println("***下");Snake.newDirection = Snake.DOWN;}// 如果是左键if (x > 3 * width && x < 3 * width + imageX&& y > 2 * height + SnakeActivity.SCREEN_WIDTH&& y < imageY + 2 * height + SnakeActivity.SCREEN_WIDTH) {System.out.println("***左");Snake.newDirection = Snake.LEFT;}// 如果是右键if (x > 5 * width && x < 5 * width + imageX&& y > 2 * height + SnakeActivity.SCREEN_WIDTH&& y < imageY + 2 * height + SnakeActivity.SCREEN_WIDTH) {System.out.println("***右");Snake.newDirection = Snake.RIGHT;}return super.onTouchEvent(event);}}