2) 创建 MainProgram 类,作为游戏的入口及主页面,包含“开始游戏”和
“编辑地图”两个按钮。其中较为复杂的是 Button 控件的调用,以及按
钮事件的动态反映;
3) 创建 MapEdit 类,用作新建地图。菜单栏含有两个选项,分别可以做到重
置地图和保存当前地图;
4) 重置地图后页面的四面边界设置为 stone 属性,通过键盘方向键实现小人
的移动,通过多次点击空格键实现石头、箱子、目标点的放置与切换;
5) 保存地图后将画面中的内容顺序读入,并将其坐标和属性写入文本文档
中;
6) 返回主页面点击开始游戏,弹出开始游戏的页面,在菜单栏点击加载地
图,找到刚才储存的地图文件,然后将其打开。地图读入是保存的逆操
作,将文本文档中的坐标和属性信息转换到页面,从而完成地图的加载;
7) 游戏时通过方向键实现小人上下左右的移动,通过判定路径上的元素属性
完成推箱子的动作,最后检验每个目标点是否均非空,来判定游戏是否结
束。
Codes:
图片路径类 Path 的创建:
package box;
public class Paths {
public final static String MAIN = "file:E:/Java/实验课/Exp7/main.png";
public final static String BOX = "file:E:/Java/实验课/Exp7/box.png";
public final static String STONE = "file:E:/Java/实验课/Exp7/stone.png";
public final static String MAN = "file:E:/Java/实验课/Exp7/man.png";
}
主函数及开始页面:
package box;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class MainProgram extends Application {