超级玛丽Java课程设计.docx
- 文档编号:7824468
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:15
- 大小:1.37MB
超级玛丽Java课程设计.docx
《超级玛丽Java课程设计.docx》由会员分享,可在线阅读,更多相关《超级玛丽Java课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
超级玛丽Java课程设计
《面向对象程序设计》
课程设计报告
题目:
超级玛丽软件的设计与实现
院(系):
信息科学与工程学院
专业班级:
计算机科学与技术1201班
学生姓名:
程伟
学号:
011
指导教师:
吴奕
2014年12月29日至2015年1月9日
华中科技大学武昌分校制
面向对象程序设计课程设计任务书
一、设计(调查报告/论文)题目
超级玛丽软件的设计与实现
二、设计(调查报告/论文)主要内容
内容:
开发超级玛丽能够在场景中完成各种动作,并且有场景的切换功能。
设计一个Mario类、一个场景类、以及敌人类、障碍物类。
实现有一定的挑战的休闲单机小游戏。
基本功能与要求:
设计一个超级玛丽游戏实现以下功能:
1、点击“空格”可以使游戏人物进行跳跃。
2、点击方向键左右可以使游戏人物前进或者后退。
。
3、设计障碍物,增加游戏的难度。
4、设计敌人类,增加游戏难度。
5、设计跳跃踩死敌人或者跳跃越过障碍物,保证可以正常前进。
6、保证通过所有障碍后可以通关。
三、原始资料
1.《面向对象程序设计课程设计》指导书
2.耿祥义.JAVA大学实用教程.北京:
清华大学出版社,2009.
四、要求的设计(调查/论文)成果
1.课程设计报告
2.课程设计软件
五、进程安排
布置任务,查找资料、需求分析1天
总体设计1天
详细设计天
编制源程序实现天
测试与修改1天
撰写课设报告2天
六、主要参考资料
[1]张广彬.Java课程设计案例精编(第二版).北京:
清华大学出版社,2011.
[2]耿祥义.Java课程设计(第二版).北京:
清华大学出版社,2008.
[3]耿祥义.JAVA大学实用教程.北京:
清华大学出版社,2009.
[4]邹林达.陈国君Java2程序设计基础.北京:
清华大学出版社,2010.
[5]邹林达.Java2程序设计基础实验指导.北京:
清华大学,2010.
指导教师(签名):
20年月日
1需求与总体设计
需求分析
提供一个友好的用户交互界面,简单明了容易操作。
并且游戏有一定的难度和娱乐性。
开发一个Mario类。
一个场景类,以及敌人类,障碍物类。
让超级玛丽能够在场景中完成各种动作。
并且有场景的切换等等功能。
游戏中设计了一些很有意思的陷阱,玩家一步小心掉入陷阱,超级玛丽就会死亡。
这样会给人意想不到的惊奇,达到娱乐大众,增加游戏难度的效果。
游戏的设计匠心独具,并且都经过了各种测试,除了为玩家增加一些意想不到的游戏陷阱以外,还必须保证玩家能够通关。
程序功能图
如图1所示:
图1
程序类图
系统的整体类图的框架如图2所示。
首先是窗体类。
他需要调用到Mario和BackGround类中的方法。
以便动态的显示Mario类和BackGround。
而BackGround里面又包含了Enemy和Obstruction。
Enemy,Obstruction和Mario类又调用静态类StaticValue的方法,用以显示真实的图片。
而StaticValue则是一个静态类,将存储在硬盘的图片资源加载进入内存以便其他模块调用。
图2
2详细设计
MyFrame实现
窗体对象的序列图
窗体对象继承了JFrame类并且实现了Runnable接口。
作为窗体对象,它首先显示窗体,绘制背景。
然后启动线程。
在run方法里面动态得绘制窗体中需要显示的Mario的图片,障碍物的图片,敌人的图片。
该窗体的run方法是一个死循环,每次执行一个循环调用sleep方法睡眠50毫秒。
序列图如图3所示。
图3
Myframe详细类图
privateMariomario;
etScreenSize().width;
intheight=().getScreenSize().height;
((width-900)/2,(height-600)/2);
(this);
();
(true);
ize();i++)
{
Obstructionob=().get(i);
ize();i++)
{
Obstructionob=().get(i);
ize();i++)
{
Obstructionob=().get(i);
if(3==())images/"+i+".gif")));
}
startImage=(newFile("./images/"));
bgImage=(newFile("./images/"));
endImage=(newFile("./images/"));
for(inti=1;i<=2;i++)
{
(newFile("./images/flower"+i+".gif")));
}
for(inti=1;i<=3;i++)
{
(newFile("./images/triangle"+i+".gif")));
}
for(inti=1;i<=5;i++)
{
(newFile("./images/Turtle"+i+".gif")));
}
for(inti=1;i<=4;i++)
{
(newFile("./images/stone"+i+".gif")));
}
for(inti=1;i<=4;i++)
{
(newFile("./images/pipe"+i+".gif")));
}
for(inti=1;i<=2;i++)
{
(newFile("./images/land"+i+".gif")));
}
(newFile("./images/")));
(newFile("./images/")));
}
catch(Exceptione)
{
();
}
}
}
4系统测试
游戏开始界面的测试
运行程序,成功后进入游戏欢迎界面,按空格开始游戏,程序测试界面如下图所示:
游戏运行的测试
(1)障碍物场景测试,游戏运行截图页面如下:
(2)敌人类测试,游戏运行页面截图如下:
(3)障碍物与敌人测试,游戏场景图如下:
(4)3次生命用完,遇到障碍物死亡,运行界面截图如下:
(5)穿过所有障碍物,最后闯关成功,游戏页面截图如下:
排除错误的处理
编程是一个细致的工作,编程过程中的一个小小的错误都会导致最终程序无法运行。
此次编程过程中,在编写的时候,整个代码报错量非常大,检查了代码的输入,发现并没有错误,后来通过一步步排除,发现是在最初在包里创建class的时候未选中publicstaticvoidmain(String[]args)这个选项,后来重新创建class后复制原有的代码,就没有报错了。
除此之外,一般都是一些输入的小错误,例如输入的符号不是英文输入法下的,又或者是语句最后遗漏了“;”,eclipse是比较智能的软件,哪一行有错,哪里就有红叉叉的标记,检查起来也轻松很多。
最后排除了所有问题后,终于运行成功。
总结
本次课程设计为期两周,有多个题目可供选择,刚开始我选择的是管理系统,也已经搜集和查阅了很多资料,但做到一半的时候发现代码量不够,一个投票管理系统的代码只有四百多行,如果要加入新的功能的话,需要连接数据库操作,而我对数据库的操作掌握的不太好,所以临时换成做java的小游戏。
写程序的过程中经常犯一些小错误,譬如分号掉了,或者没有在英文的状态下输入
等等,所以程序刚写出来的时候出现了不少的错误,更改错误也浪费了很多时间。
还有就是创建project和class的时候选择了错误的选项,导致程序大面积的报错,后来通过排除检查后也修改了这些错误,最后所有的.java文件都没有报错之后,开始运行整个程序,运行成功并进行了测试。
课程设计的创新部分在于,游戏中设计了一些很有意思的陷阱,玩家一步小心掉入陷阱,超级玛丽就会死亡。
这样会给人意想不到的惊奇,达到娱乐大众,增加游戏难度的效果。
游戏的设计匠心独具,并且都经过了各种测试,除了为玩家增加一些意想不到的游戏陷阱以外,还必须保证玩家能够通关。
课程设计的不足之处在于,设计的只是简单的java小游戏,是单机游戏,场景的变换不够丰富,所创造的障碍物和敌人也不如真实的大型游戏形象。
需要进一步改进的地方在于,可以设置更多的关卡和障碍物,增加游戏的难度和趣味性。
通过本次课程设计我学会了创建各种不同的类,也熟悉了写程序的步骤,学习到了更多有关java的知识。
我们还需要学习的内容还有很多,不能因为完成了这次课程设计就觉得自己的能力已经很不错了已经够了。
希望在今后的学习中,我们能认真对待每一次课程设计,不断完善自己,提高自己的能力,戒骄戒躁,也要有耐心。
等到有一天,我们自己能亲手写出一个能应用于社会的程序的时候,我们才能拥有真正的成就感。
课程设计成绩评定表
成
绩
评
定
项目
比例
得分
平时成绩(百分制记分)
30%
业务考核成绩(百分制记分)
70%
总评成绩(百分制记分)
100%
评定等级
优良中及格不及格
指导教师(签名):
20年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超级 玛丽 Java 课程设计