- DesktopView.java是地图文件,用来画出桌面的文件
- Food.java食物类文件
- Rock.java石头类文件
- Snake.java蛇类文件
- SnakeActivity.java主要Activity
- SnakeView.java画出蛇的文件
代码如下
package mars.com;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.WindowManager;
public class SnakeActivity extends Activity {
public static final int CELL = 20;// 一个方格像素为20
public static WindowManager windowManager;
public static int SCREEN_WIDTH;// 屏幕宽度
public static int SCREEN_HEIGHT;// 屏幕高度
public static int NUMBER;// 横向个数
SnakeView snakeView;
Snake snake;
Food food;
Rock rock;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.initVars();
snake = new Snake();
food = new Food();
rock = new Rock();
snakeView = new SnakeView(getApplicationContext(), snake, food, rock);
snakeView.setFocusable(true);
setContentView(snakeView);
snake.start();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
finish();
System.exit(0);
break;
}
return super.onKeyDown(keyCode, event);
}
private void initVars() {
windowManager = SnakeActivity.this.getWindowManager();
SCREEN_HEIGHT = windowManager.getDefaultDisplay().getHeight();
SCREEN_WIDTH = windowManager.getDefaultDisplay().getWidth();
NUMBER = SCREEN_WIDTH / CELL;
}
}
Snake类文件
package mars.com;
import java.util.ArrayList;
import java.util.LinkedList;
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.graphics.Paint.Style;
import android.graphics.Point;
public class Snake {
// 方向按钮
public static final int UP = 1;
public static final int DOWN = -1;
public static final int LEFT = -2;
public static final int RIGHT = 2;
public static int oldDirection = RIGHT;
public static int newDirection = RIGHT;
public static LinkedList<Point> snakeBody = new LinkedList<Point>();
private Point snakeTail;
private boolean LIFE = true;