老鼠迷宫窗口实现
需求
- 空格键开始游戏
- 每次游戏自动随机生成路障
- 再次按空格键暂停/继续
- 失败后按空格键重新开始
- 方向键控制移动方向
- 每隔固定时间自动移动
- 记录步数并每秒更新
- 遇到路障游戏失败
- 走到出口游戏获胜
- 记录并显示走过的路径
- 在控制台输出原地图和给出的四种移动路径
- 想加音乐但是读不到文件没加上,注释在后面了
实现思路都注释在代码里了,每一句都有
游戏界面
界面布局
创建窗口mouse类
package mouseMaze;
import javax.swing.JFrame;
/**
*
*/
/**
* @author 啦啦啦
*
*/
public class Mouse {
/**
* @param args
*/
public static void main(String[] args) {
// 创建窗口
// 构造方法的参数为窗口标题
JFrame frame = new JFrame("老鼠迷宫(蒋静)");
// 设置窗口大小
// x轴坐标 + y轴坐标 + 宽 + 高
frame.setBounds(350, 100, 2000, 1500);
// 用户不可用通过拖动修改窗口大小
frame.setResizable(false);
// 点击错叉关闭窗口
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建画布对象,加到窗口上
// 创建后会自动调用方法
frame.add(new Panel());
// 显示窗口
frame.setVisible(true);
}
}
panel类
package mouseMaze;
import java.awt.Color;
import java.awt.Font;
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 java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.Timer;
/**
* @author 啦啦啦
*
*/
// 自定义窗口类:画布
public class Panel extends JPanel implements KeyListener, ActionListener {
// 加入标题图片
ImageIcon title = new ImageIcon("title4.jpg");
// 加入老鼠图片
ImageIcon mouse = new ImageIcon("mouse5.jpg");
// 加入路径图片
ImageIcon foot = new ImageIcon("foot3.jpg");
// 加入障碍图片
ImageIcon block = new ImageIcon("block2.jpg");
// 加入出口图片
ImageIcon exit = new ImageIcon("exit1.jpg");
// 记录路径长度
int foots = 0;
// 老鼠坐标和路径长度
int len = 3;
int[] mousex = new int[200];
int[] mousey = new int[200];
//随机障碍物
int[] bx = new int[45];
int[] by = new int[45];
//随机
Random rand = new Random();
// 控制方向
String fx = "R";
// 记录游戏是否开始
static boolean isStarted = false;
// 是否找到了出口
static boolean isFound = false;
// 判断是否失败
static b