一、团队介绍

Name

Work

吴金玉(组长)

Moveable接口、MovingThing类、FireBoy类、WaterGirl类、Boulder类、Manager类、绘制地图

陈艺芳

Stage类、ReDrawThread类、Music类、Ranking类、TimerLabel类、编码规范扫描

潘艺丹

GameChoose类、Init类、Intr类

二、项目GIT地址

https://gitee.com/chenyifang293/FireBoyAndWatterGirl.git

三、项目git提交记录截图

使用java实现面向对象编程ppt java面向对象课程设计_git

使用java实现面向对象编程ppt java面向对象课程设计_类图_02

使用java实现面向对象编程ppt java面向对象课程设计_git_03

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

使用java实现面向对象编程ppt java面向对象课程设计_类图_04

五、面向对象设计包图、类图

包图

使用java实现面向对象编程ppt java面向对象课程设计_类图_05

类图

使用java实现面向对象编程ppt java面向对象课程设计_使用java实现面向对象编程ppt_06

六、项目运行截图或屏幕录制

1.初始游戏选择界面

使用java实现面向对象编程ppt java面向对象课程设计_git_07

2.游戏界面

使用java实现面向对象编程ppt java面向对象课程设计_重绘_08

3.退出游戏界面

使用java实现面向对象编程ppt java面向对象课程设计_类图_09

4.保存分数界面

使用java实现面向对象编程ppt java面向对象课程设计_使用java实现面向对象编程ppt_10

5.展示排名界面

使用java实现面向对象编程ppt java面向对象课程设计_git_11

6.游戏简介界面

使用java实现面向对象编程ppt java面向对象课程设计_使用java实现面向对象编程ppt_12

七、项目关键代码

主界面设计:页面设计如计时器、各按钮的位置、弹窗等,关卡设计如摆放障碍物、钻石等

使用java实现面向对象编程ppt java面向对象课程设计_使用java实现面向对象编程ppt_13

使用java实现面向对象编程ppt java面向对象课程设计_使用java实现面向对象编程ppt_14

使用java实现面向对象编程ppt java面向对象课程设计_重绘_15

使用java实现面向对象编程ppt java面向对象课程设计_重绘_16

碰撞检测:创建11种命中检测的方法,获得位于给定AbstractMovingThing位置所对应的坐标,将其与地图中进行对应,判断当前所处位置可进行的操作。分别检测AbstractMovingThing头部左侧、头部右侧、左中心、右中心、正中心、左下角、右下角、底部中间(2/5)、底部中间(3/5)底部中间(2/7)、底部中间(5/7)

检测AbstractMovingThing底部中间(2/7):

使用java实现面向对象编程ppt java面向对象课程设计_重绘_17

调用不同的命中检测方法,判断人物是否可以进行,如下图(else if中),男孩在游戏屏幕中并且当男孩左中心为空白即无障碍物(0)或为红宝石(7)时,可向左移动。

使用java实现面向对象编程ppt java面向对象课程设计_git_18

重绘:当线程存在的时候,每6毫秒会通过Stage类重绘此地图

使用java实现面向对象编程ppt java面向对象课程设计_重绘_19

八、项目代码扫描结果及改正

<  使用阿里巴巴静态扫描工具对我们的项目进行扫描,得到的结果为:74 Blockers, 7 Criticals, 142 Majors。  >

使用java实现面向对象编程ppt java面向对象课程设计_git_20


< 修改后>

使用java实现面向对象编程ppt java面向对象课程设计_类图_21

九、项目总结

尚待改进:

1、本次课设时间赶,任务重,界面上可以再进行优化美观。
2、本次课程设计写的程序中关卡数只有7关,数量少,需要增加新的难度升高的关卡。
3、本次课程设计写的程序支持两人人同时进行游戏,但目前只是单机游戏,实现利用网络技术进行排名。
4、本次课程设计程序中的工具功能还可以再加以完善

目前思路:

1、想加上一个反光镜和光线源,利用线性函数计算可以通过光线触发机关来开完门。
2、想加上一个锁链吊桥,每个可移动物体添加一个重量的属性,当对比吊桥上的物体总重量大的可进行下降运动重量小的进行上升运动。