源码
源码来源:Java swing 写的贪吃蛇代码200行
前段时间在博客上看到了这段源码,由于自己没有用Java做过小游戏,于是就copy了一下,然后在自己电脑上运行,顺便加上了注释。
代码
greedySnackMain.java
import javax.swing.JFrame;
public class greedySnackMain extends JFrame {
snackWin snackwin;
static final int Width = 800 , Height = 600 , LocX = 200 , LocY = 80;
public greedySnackMain() {
super("GreedySncak_SL");
snackwin = new snackWin();
//在JFrame窗口容器里添加其他组件
add(snackwin);
//设置组件的大小
this.setSize(Width, Height);
//设置组件的可见性
this.setVisible(true);
//设置组件的位置
this.setLocation(LocX, LocY);
//snackwin.requestFocus();
}
public static void main(String[] args) {
new greedySnackMain();
}
}
snackWin.java
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class snackWin extends JPanel implements ActionListener, KeyListener {
// 用数字代表方向
static final int Up = 0 , Down = 1 , Left = 2 , Right = 3;
// GameWidth/GameHeight :游戏区域的宽、高
// GameLocX / GameLocY:游戏区域的左上角位置的坐标
static final int GameLocX = 50, GameLocY = 50 , GameWidth = 700 , GameHeight = 500 , Size = 10;//Size:每次移动的位置大小以及增加的长度
// rx,ry:食物的坐标
static