Magic-Towers

一、团队名称、团队成员介绍、任务分配

团队名称:MoTa

团队成员介绍

网络1713柳聪灵【组长】 201721123065

网络1712李梦冰 201721123040

网络1713兰景晖 201721123064

任务分配

网络1713柳聪灵【组长】--Model

游戏布局及障碍物的编码及方法定义

游戏里的道具:钥匙、药水的编码及方法定义

游戏npc的编码及方法定义

画UML类图

网络1713兰景晖 --View

游戏道具及场景的视图

GUI界面设计:主界面、各类弹窗

网络1712李梦冰 --Controller

玩家数据I/O流

游戏内部监听器:存档、选角色、退出

游戏地图数据

编写团队博客

二、项目简介

《魔塔》是一种策略类的固定数值RPG游戏。游戏需要动很多脑筋,任何一个轻率的选择都可能导致游戏的失败。魔塔游戏虽不大,但是制作精美,道具很多,而且难度不低,对智商是一次艰巨的考验。虽然魔塔的界面很像是一般的地牢游戏,貌似随便的打打杀杀就可以过关,但事实上玩这个游戏需要动很多脑筋,任何一个轻率的选择都可能导致游戏的失败,该游戏有属性攻击、防御、生命、金币、经验。

三、项目采用技术

文件I/O流

多线程

GUI

四、项目亮点

主界面显示主要信息功能

游戏动画

攻击者自由移动并有向不同方向移动的动作

攻击者生命力减少及怪物消失

各个怪物有规律跳动

开门成功后门碎裂

全家福

五、项目关键代码

数据I/O流功能

/*

游戏过程中,玩家由于各种原因需要退出终止游戏,但是还想下次继续游戏。所以设计了游戏进度的保存/读取的功能。使用了FileOutputStream、BufferedOutputStream、 ObjectOutputStream结合使用。

*/

public class PlayerFile {

public static final void savePlayer(Player player) {//保存玩家数据

//try-with-resource

try ( FileOutputStream out = new FileOutputStream("player.dat");

BufferedOutputStream bout = new BufferedOutputStream(out);

ObjectOutputStream obout = new ObjectOutputStream(bout);) {

obout.writeObject(player);

} catch (IOException e) {

}

}

public static final Player readPlayer() {//读取玩家数据

Player player = null;

try (FileInputStream in = new FileInputStream("player.dat");

BufferedInputStream bin = new BufferedInputStream(in);

ObjectInputStream obin = new ObjectInputStream(bin);) {

player = (Player) obin.readObject();

} catch (IOException e) {

} catch (ClassNotFoundException e) {

}

return player;

}

}

游戏动作监听器功能(部分)

/**

* 人物碰触格子

*/

private void contact(int x, int y) {

// 坐标对应第y行第x列

if (mapData[y][x].contact(player)) {

// 可以通过时

Component component = mapView.getComponent(x + y * 11);

// 获取该位置组件并判断是否为门

if (mapData[y][x] instanceof Door) {

mapData[y][x] = Floor.FLOOR;

inofView.update();

mainView.setVisible(true);

((DoorView) component).show();

return;

}

mapView.remove(playerView);

mapView.add(new FloorView(), player.getX() + player.getY() * 11);

mapView.remove(x + y * 11);

mapView.add(playerView, x + y * 11);

player.setCoord(x, y);

// 通过后显示提示

showInof(x, y);

if (mapData[y][x].getType() != Stairs.STAIRS_TYPE_DOWN_BIRTH

&& mapData[y][x].getType() != Stairs.STAIRS_TYPE_UP_BIRTH) {

mapData[y][x] = Floor.FLOOR;

player.getMapDataList().get(player.getNowFloor() - 1)[y][x] = 0;

}

} else {//不能通过

noEntryInof(x, y);

}

}

门及怪物的动画消失代码

六、项目git地址及个人博客地址

七、项目git提交记录截图(要体现出每个人的提交记录、提交说明)

八、项目Issue记录截图

九、项目功能架构图与主要功能流程图

十、UML类图

十一、代码静态扫描

第一次扫描

全部解决

十二、尚待改进或者新的想法

本次课设我们组最大的遗憾是没有把网络和数据库的技术运用到,这一点尚待改进。

我们还有将地图规划到50层的想法。

十三、参考文献:

java魔塔_2018-2019学年第一学期Java课设--魔塔相关推荐

  1. 北航 2018计算机学院排课,关于2018—2019学年秋季学期排课的通知

    关于2018-2019学年秋季学期排课的通知 2018-04-12 关于2018-2019学年秋季学期排课的通知 一.根据校办[2010]7号文件"关于调整校本部教学作息时间的通知" ...

  2. 苏州大学计算机课程与资源,苏州大学计算机学院2018-2019学年第一学期研究生课课程表...

    苏州大学计算机学院2018-2019学年第一学期研究生课课程表 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 苏州大学计算机学院201 ...

  3. 北航 2018计算机学院排课,关于2018—2019学年第二学期排课安排的通知

    各教学学院: 2018-2019学年第二学期排(选)课工作即将开始,为确保该项工作顺利进行,现将有关事宜安排如下: 一.课表编排日程 时间 相关事项 负责单位 1月10日前 完成公共课排课工作 教务处 ...

  4. 南邮《汇编语言程序设计》2018/2019 学年第一学期期末考试回忆

    2018.12.8 13:30-15:20 <汇编语言程序设计>考试 刚考完,回忆一下题目. 先总结一下:感觉考得还是蛮细的,主要自己复习时间也不多,全凭上学期学过一遍的记忆和笔记复习的. ...

  5. 2018~2019学年第一学期期末考试试卷(A)卷《C语言程序设计》

    一.填空题(每空1分 ,共20分) C语言程序的基本单位是 函数 . 若整型数的十进制形式为112, 则它的八进制形式为(160)8 .十六进制形式为 (70)16 . 设int a=10,b=4, ...

  6. 新乡医学院2018计算机考试题,新乡医学院关于做好2018-2019学年第一学期本科学生期末考核工作的通知...

    各有关单位: 2018-2019学年第一学期本科学生期末考核工作即将开始.为进一步加强考务管理,规范各项工作,保证考核工作顺利开展,现将有关事项通知如下: 一.总体安排 为保证考试课程考核工作有序进行 ...

  7. 洛阳理工JAVA期末考试_洛阳理工学院2010/2011学年第一学期基础体育理论期末考试试题答案...

    洛阳理工学院2010/2011学年第一学期基础体育理论期末考试试题答案 洛阳理工学院2010/2011学年第一学期基础体育理论期末考试试题答案 一.填空题(每空1分 共20分) 1.以 ______ ...

  8. 北大青鸟java课后题答案_1 北大青鸟第一学期java上机练习答案 Develop 238万源代码下载- www.pudn.com...

    开发工具: Java 文件大小: 134 KB 上传时间: 2014-05-15 下载次数: 0 提 供 者: Buteh 详细说明:北大青鸟第一学期java上机练习答案 -Beida Jade Bi ...

  9. 大学计算机教材李琦2019,计算机科学与软件学院_关于征订2019-2020学年第一学期教材的通知...

    各位老师: 请查阅 2019-2020(1)开课计划.请课程组长.授课老师与课程组成员研讨教学内容,参阅18-19学年第一学期的教材清单(见附件),总结以往课程教材的使用情况,查阅学院资料室教材样本及 ...

最新文章

  1. 小鹏汽车招股书,满是智能技术自研的标签
  2. 第四章:枚举 模拟 排序习题 【完结】
  3. 【剑指offer】_12 数组中的逆序对
  4. ubuntu wifi固定ip_自制wifi遥控小车!ESP8266实践指南(二)
  5. 所有的图放到一个html,拖放是HTML5标准的组成部分,若想要把drag1图片放入d
  6. 程序员从优秀到卓越的几点建议
  7. 《软件需求分析(第二版)》第 13 章——需求开发面临的特殊难题 重点部分总结
  8. android中自定义 toast,android 自定义Toast样式和显示方式
  9. 软工大二下半年第十五周学习进度
  10. mac系统历史版本汇总_苹果发布会 WWDC20 主要更新汇总
  11. LeetCode刷了500+了总结了算法必背模板直接拿到字节实习offer
  12. Hadoop fs shell命令汇总
  13. Python网络爬虫:空姐网、糗百、xxx结果图与源码
  14. 卡巴斯基:2019年金融行业网络威胁趋势报告
  15. CSS上下左右居中 阿星小栈
  16. 使用Python获取DNS记录
  17. LeetCode.黑白方格画
  18. JavaScript,css时间计时器
  19. 8b/10b编码是什么?
  20. 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据...

热门文章

  1. arch-linux+xfce4+lightdm+uefi个人安装记录
  2. 【Java基础】UML类图及各种线代表的关系含义总结
  3. python框架漏洞_【入门】6.Python WEB框架下集成乌云漏洞查询
  4. SQL server求移动平均、rolling sum滚动前多少行求和
  5. ckeditorsmartupload
  6. label设置自动换行的方法
  7. Android程序员必会!Android面试必刷的200道真题,附答案
  8. android面试(个人)简历
  9. 2014全国计算机等级考试二级java,全国计算机等级考试二级Java真题2
  10. 计挑赛初赛试题(2021)(Java组)