一.实现目标
实现贪吃蛇游戏基本功能,屏幕上随机出现一个“食物”,称为豆子,上下左右控制“蛇”的移动,吃到“豆子”以后“蛇”的身体加长一点,得分增加,“蛇”碰到边界或,蛇头与蛇身相撞,蛇死亡,游戏结束。为游戏设计初始欢迎界面,游戏界面,游戏结束界面。
二.实现思路
三.游戏界面设计
1.游戏界面构造
public class MySnake extends JFrame {
public MySnake(){
JMenuBar bar=new JMenuBar();//菜单条
JMenu music=new JMenu("Music");//菜单
JMenu speed=new JMenu("Speed");
JMenuItem yes=new JMenuItem("Yes");//菜单选项
JMenuItem no=new JMenuItem("No");//菜单选项
JMenuItem slow=new JMenuItem("Low");
JMenuItem medium=new JMenuItem("Medium");
JMenuItem fast=new JMenuItem("Fast");
bar.add(music);
bar.add(speed);
music.add(yes);
music.add(no);
speed.add(slow);
speed.add(medium);
speed.add(fast);
add(bar, BorderLayout.NORTH);//设置菜单的位置,边框布局管理器
}
public static void main(String[] args) {
MySnake frame = new MySnake();
Image icon=Toolkit.getDefaultToolkit().getImage("icon.jpg");//设置最小化的图标
frame.setIconImage(icon);
frame.setTitle("Snake");
frame.setBounds(20, 20, 800, 640);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new MPanel());
frame.setVisible(true);//显示框架
}
}
2.蛇和食物的构造
private int[] snakeX = new int[700];
private int[] snakeY = new int[700];
Point bean=new Point();//保存豆子位置的点
Random rand = new Random();//随机数
public void initSnake() {
len = 3;
snakeX[0]= 200;//蛇的初始化
snakeY[0] = 200;
snakeX[1] = 180;
snakeY[1] = 200;
snakeX[2] = 160;
snakeY[2] = 200;
bean.setXAndY(20 * rand.nextInt(35),20 * rand.nextInt(28));//豆子初始化
direc= "R";
score = 0;
}
三.游戏过程
1.蛇的移动
switch (direc){
//蛇头方向改变
case "R":
snakeX[0] = snakeX[0] + 20;
break;
case "L"