辅助类 Coordinate.java
复制代码
package com.nn.util;
/**
*坐标点
*/
public class Coordinate {
public int x;
public int y;
public Coordinate(int newX, int newY) { x = newX;
y = newY;
}
public boolean equals(Coordinate other) { if (x == other.x && y == other.y) {
return true;
}
return false;
}
@Override
public String toString() {
return "Coordinate: [" + x + "," + y + "]";
}
}
复制代码
接口Direction
复制代码
package com.nn.entity;
public interface Direction {
public class Dir{
public static final int UP = 1;
public static final int DOWN = 2;
public static final int LEFT = 3;
public static final int RIGHT = 4;
}
}
复制代码
实体类Snake.java
复制代码
package com.nn.entity;
import java.util.ArrayList;
import com.nn.entity.Direction.Dir; import com.nn.util.Coordinate;
public class Snake{
//小方块x坐标
private int x;
//小方块y坐标
private int y;
//宽度
public static final int TILE_W = 10;
//高度
public static final int TILE_H = 10;
//下一个方向
private int mNextDirection = Dir.RIGHT;
//游戏是否结束
private boolean isEnd;
//存放贪吃蛇
private ArrayList
//存放豆子
private ArrayList
public Snake()
{
initNewGame();
}
//初始化新游戏
public void initNewGame()
{
//初始化蛇身
mSnakeTrail.add(new Coordinate(5, 7));
mSnakeTrail.add(new Coordinate(6, 7));
mSnakeTrail.add(new Coordinate(7, 7));
mSnakeTrail.add(new Coordinate(8, 7));
mSnakeTrail.add(new Coordinate(9, 7));
mSnakeTrail.add(new Coordinate(10, 7));
//初始化豆子
mAppleList.add(new Coordinate(20,3));
//设置初始状态为false
isEnd = false;
}
public ArrayList
}
public ArrayList
}
public boolean isEnd() {
return isEnd;
}
public int getmNextDirection() {
return mNextDirection;
}
public void setEnd(boolean isEnd) {
this.isEnd = isEnd;
}
}
复制代码
frame类继承JFrame SnakeFrame.java
复制代码
package com.nn.ui;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
/**
*游戏界面
*/
public class SnakeFrame extends JFrame{
private static final long serialVersionUID = 1L;
//宽度
private static final int width = 530;