@TOC
木箱搬运工 for JavaSwing
转载请注明出处https://blog.csdn.net/qq_36665310/article/details/87878897
先放下载链接
这是 rar压缩文件
https://download.csdn.net/download/qq_36665310/10970707
这是 zip压缩文件
https://download.csdn.net/download/qq_36665310/10970680
闲来无事,对自己两个月以来的学习进行一次综合的考验,写了一个比较完整小游戏(推箱子),算是对自己的学习进行一个总结。
话不多说先来看看运行起来是什么样的(笔者是在 MacOs10.13上运行的,不知Java的夸平台作的怎么样,大家可以自行复制下面的代码)
项目结构
咳咳,本人的英文不是很好,所以有些单词可能不能很清楚的表达我的意思。大家凑活看,凑活看······
可以看到这个小小的推箱子要是把逻辑结构写全还是需要很多代码的,为了达到开闭原则的规定,我把每个功能都单独的创建了一个类,各负其职。
可以看出来,主要还是分三个包
第一个 model包,主要负责游戏所需要的数据,如地图的二维数组,人物移动时需要记录的信息
第二个 service包(本来中间那三个包是在一个里面的,当时我向分出来,可是eclipse玩不太明白,出来了好多 servicecopy,我把那些 copy 删掉以后就这样了····)。这个包中主要是提供游戏中处理数据的服务,如记录移动步骤、事件监听器、判断是否全部的箱子都到达了终点、读取和写入 XML 文件等
第三个 view 包顾明思议就是现实图形界面的类和方法,里面的类基本上都继承了 JPanel。由于拆包还是不够彻底,里面的代码还是存在一些耦合度的,如:键盘监听器就在一个叫做 GamePanel面板中,后续会把这些功能再拆分的更加明确的。
使用的技术
- JavaSwing
- Java多线程
- XML
- DOM
- JavaSE
- 单例模式
按键设置
移动人物:上下左右方向键
后退一步:Backspace
由于类文件过多,这里就上传一个压缩包,大家可以自行导入到自己常用的 IDE,但是一定要注意不要随便改变我的目录结构,不然改代码恶心死你···
如果出现编译失败或者无法运行的情况,请大家用记事本打开没个类,然后自己创建class文件进行复制,还是那句话,不要改变目录结构!!!