首页 / JAVA / Java课程设计-推箱子小游戏
Java课程设计-推箱子小游戏
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java课程设计-推箱子小游戏,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2048字,纯文字阅读大概需要3分钟。
内容图文
![Java课程设计-推箱子小游戏](/upload/InfoBanner/zyjiaocheng/648/65fe3613d3d148a5a4ecc6789d0ebf3d.jpg)
## 一.团队总体概述
团队成员 | 任务分工 |
臧麒越(组长) 201821123025 |
GUI设计,界面编程,博客撰写 (tuixiangzi.view包,tuixiangzi.util包) |
韩佳欣 201821123024 |
运算逻辑功能、悔一步功能、重新开始功能实现,bgm和计时添加 (tuixiangzi.model包) |
林贵龙 201821123012 |
地图参数设置,绘图,素材收集 (tuixiangzi.model.goods包,tuixiangzi.model.map包) |
## 二. 项目git地址:this this !!!
三. 项目git提交记录
四. 前期调查
我们在4399上寻找推箱子小游戏,发现大致功能如下
所以我们所要实现的基本功能为:
1.实现键盘操作功能,上下左右键
2.游戏是否通关判断功能
3.支持选关功能,可以选择1~50关
4.添加游戏背景音乐
5.支持“悔棋”功能,即返回上一步,以及重新开始功能
五.
1.项目功能架构图
2.主要功能流程图
六. UML类图
七. 运行截图
主界面:
通关达成:
总体运行效果:
八. 关键代码
悔一步代码:
public void previousMove() { if(moveStack.isEmpty()){ return; } GameMove previous=moveStack.pollLast(); if(previous!=null) { boy.reset(previous.boyX,previous.boyY,previous.boyDirection); if(previous.moveBox!=null) { Box b=previous.moveBox; b.moveTo(previous.boxX, previous.boxY); GameMapCell homeCell=map.get(b.x, b.y); if(homeCell.type==GameMapCell.TYPE_HOME) { b.setWin(); } } }else { this.setLevel(this.level); } }
人物及箱子移动代码(以向左移动为例)
private void handleLeft() { int bx = boy.x, by = boy.y; // 获取boy前面类型 GameMapCell cell = map.get(bx-1, by); if (cell == null) { return; } switch (cell.type) { case GameMapCell.TYPE_BLOCK: // 障碍物,不能移动 return; case GameMapCell.TYPE_GRASS: case GameMapCell.TYPE_HOME: // 草地和目标位置上是否有箱子 Box box = getBoxAt(cell.x, cell.y); if (box == null) { // 没有,则boy移动 boy.moveLeft(); moveStack.add(GameMove.of(boy)); } else { // 有,判断盒子前面有什么 if (canBoxMoveIn(box.x-1, box.y)) { box.moveLeft(); boy.moveLeft(); moveStack.add(GameMove.of(boy,box)); } } break; } }
九. 扫描结果及改正
扫描结果:
改正结果:
十. 总结
不足:
悔一步功能只能够返回未到达目标的箱子,如若箱子已变成“win”状态,则不会再返回上一步(游戏难度降低):
界面编程仅用eclipse实现,界面些许简陋
展望:
尝试推箱子暴力破解
尝试NetBeans或JavaFx编程界面
内容总结
以上是互联网集市为您收集整理的Java课程设计-推箱子小游戏全部内容,希望文章能够帮你解决Java课程设计-推箱子小游戏所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。