




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计课程设计报告题目:超级玛丽软件的设计与实现院(系):信息科学与工程学院专业班级:计算机科学与技术1201班学生姓名:程伟学号:011指导教师:吴奕20 14 年 12 月29 日至20 15年1 月9 日华中科技大学武昌分校制面向对象程序设计课程设计任务书一、 设计(调查报告/论文)题目超级玛丽软件的设计与实现二、 设计(调查报告/论文)主要内容内容:开发超级玛丽能够在场景中完成各种动作,并且有场景的切换功能。设计一个Mario 类、一个场景类、以及敌人类、障碍物类。实现有一定的挑战的休闲单机小游戏。基本功能与要求:设计一个超级玛丽游戏实现以下功能:1、点击“空格”可以使游戏人
2、物进行跳跃。2、 点击方向键左右可以使游戏人物前进或者后退。3、设计障碍物,增加游戏的难度。4、设计敌人类,增加游戏难度。5、设计跳跃踩死敌人或者跳跃越过障碍物,保证可以正常前进。6、保证通过所有障碍后可以通关。三、原始资料1.面向对象程序设计课程设计指导书2.耿祥义.JAVA大学实用教程北京:清华大学出版社,2009.四、要求的设计(调查/论文)成果1.课程设计报告2.课程设计软件五、进程安排布置任务,查找资料、需求分析1天 总体设计1天详细设计天编制源程序实现天测试与修改1天撰写课设报告2天六、主要参考资料1张广彬.Java课程设计案例精编(第二版).北京:清华大学出版社,2011.2耿祥
3、义.Java课程设计(第二版).北京:清华大学出版社,2008.3耿祥义.JAVA大学实用教程北京:清华大学出版社,2009.4邹林达陈国君Java2程序设计基础北京:清华大学出版社,2010. 邹林达.Java2程序设计基础实验指导北京:清华大学,2010.指导教师(签名):20 年 月 日目录图11需求与总体设计需求分析提供一个友好的用户交互界面,简单明了容易操作。并且游戏有一定的难度和娱乐 性。开发一个Mario类。一个场景类,以及敌人类,障碍物类。让超级玛丽能够在场景 中完成各种动作。并且有场景的切换等等功能。游戏中设计了一些很有意思的陷阱,玩 家一步小心掉入陷阱,超级玛丽就会死亡。这
4、样会给人意想不到的惊奇,达到娱乐大众, 增加游戏难度的效果。游戏的设计匠心独具,并且都经过了各种测试,除了为玩家增加 一些意想不到的游戏陷阱以外,还必须保证玩家能够通关。程序功能图如图1所示:程序类图系统的整体类图的框架如图2所示。首先是窗体类。他需要调用到Mario和BackGround类中的方法。以便动态的显示 Mario类和BackGrounc。而BackGround里面 又包含了 Enemy 和 Obstruction 。 Enemy Obstruction 和 Mario 类又调用静态类 StaticValue 的方法,用以显示真实的图片。而 StaticValue则是一个静态类,将
5、存储 在硬盘的图片资源加载进入内存以便其他模块调用。图3MyFrame 实2详细设计l5; BuffsredlmagE.jI6 : g?tGraptiicsOrun方法里面动态得绘制窗体中需要显示的Mario的图片,敌人的图片。该窗体的run方法是一个死循环,每次执行一个窗体对象的序列图窗体对象纟继承了 JFrame类并且实现了 Runnable接口。作为窗体对象,它首先显示 窗体,绘制背景。然后启动线程。在的图片,障碍循环调用sleep方法睡眠50毫秒。序列图如图3所示。1: Thr&adO图3MyFrame-allBg:Lit-isStart: bo clean-mano:Mario-no
6、iABgiBatkGroLind-t: Thread+ keyPre ss ed(KeyEvent: void+ keyReleesediKeyEvenfloid + keyTyped(KeyEvent)ryoid+ paint(Graphics):void+ runO:voidMyframe详细类图privateMariomario;Mar嚳1 ;Mar嚳1 ;ipzLT:biLner-.,i 4-hia-p-.c1 rIO !MariobTOlcan-lifeiint-movingiint-showlrnaqeiBiufferedlrnaqe -uptime:int=Klnt-ysint*
7、bg:BackGround *-corCrint5tstusStringtThrced*xmow:intayrnqvuint+downO;voidJumpQivsid+ l#ftMnv#0-Woirl fleftStop Devoid +rlghlN1oveO:vuid+ righttopOciiJ *Lun0rvcj;clEnemy-bg: BstkGraund -buFFerEdlmageiBufFeredlrnage -dovnMax;int-imageType:int-is LeftOrVP; boolean-startlmageTypejnt -startlsLeftOrLlpibo
8、alEan-startXJnt-starts :int-type:int -upMsx:int-icint-ycintt:T bread+ deadO:void+ reSetQ :void+ runQ:vo id+ 5tarMcv eQ: voidObstruGtion-hg:BackGraLind-5hinxImage:BufferedIrriage-tartType:int-t:Thread-type:int-x:int-y:int+ resetQ:woid+ rurQivoidBackGround-a II Enemy: Li st-a II Ob st ructio n:Li st-h
9、glmage: Buffc redim age -flagiboqlean-isDown: booleanisOverboolednremove Enemy: List c tn emy-re mov 亡 Ob nruction; List -Eorfcint+ enemy sSta rtM oveQn/o i d +retO:voidetScree nSize().widint height = ().getScree nSize().height; (width - 900) / 2,(height - 600) / 2); (this);(); (true);ize(); i+)Obst
10、ruction ob = ().get(i); ize(); i+)Obstruction ob = ().get(i);ize(); i+)Obstruction ob = ().get(i);th;if(3 = ()images/ + i + .gif);startImage = (new File(./images/); bgImage = (new File(./images/); endImage = (new File(./images/);for(int i = 1; i = 2; i+)(new File(./images/flower + i + .gif);for(int
11、i = 1; i = 3; i+)(new File(./images/triangle + i + .gif);for(int i = 1; i = 5; i+)(new File(./images/Turtle + i + .gif);for(int i = 1; i = 4; i+)(new File(./images/stone + i + .gif);for(int i = 1; i = 4; i+)(new File(./images/pipe + i + .gif);for(int i = 1; i = 2; i+)(new File(./images/land + i + .g
12、if);(new File(./images/);(new File(./images/); catch(Exception e)();4 系统测试游戏开始界面的测试运行程序,成功后进入游戏欢迎界面,按空格开始游戏,程序测试界面如下图所示:游戏运行的测试(1)障碍物场景测试,游戏运行截图页面如下:(2)敌人类测试,游戏运行页面截图如下:J V(3)障碍物与敌人测试,游戏场景图如下:口口口(4) 3次生命用完,遇到障碍物死亡,运行界面截图如下:(5)穿过所有障碍物,最后闯关成功,游戏页面截图如下:排除错误的处理编程是一个细致的工作,编程过程中的一个小小的错误都会导致最终程序无法运 行。此次编程过
13、程中,在编写的时候,整个代码报错量非常大,检查了代码的输入,发 现并没有错误,后来通过一步步排除,发现是在最初在包里创建class的时候未选中public static void ma in(Stri ng args)这个选项,后来重新创建 class 后复制原有的代码,就没有报错了。除此之外,一般都是一些输入的小错误,例如输入的符号 不是英文输入法下的,又或者是语句最后遗漏了“;”,eclipse是比较智能的软件,哪一行有错,哪里就有红叉叉的标记,检查起来也轻松很多。最后排除了所有问题后,终 于运行成功。总结本次课程设计为期两周,有多个题目可供选择,刚开始我选择的是管理系统,也已 经搜集和查
14、阅了很多资料,但做到一半的时候发现代码量不够,一个投票管理系统的代 码只有四百多行,如果要加入新的功能的话,需要连接数据库操作,而我对数据库的操 作掌握的不太好,所以临时换成做 java 的小游戏。写程序的过程中经常犯一些小错误,譬如分号掉了,或者没有在英文的状态下输入 等等,所以程序刚写出来的时候出现了不少的错误,更改错误也浪费了很多时间。还有 就是创建 project 和 class 的时候选择了错误的选项,导致程序大面积的报错,后来通 过排除检查后也修改了这些错误,最后所有的 .java 文件都没有报错之后,开始运行整 个程序,运行成功并进行了测试。课程设计的创新部分在于,游戏中设计了一些很有意思的陷阱,玩家一步小心掉入 陷阱,超级玛丽就会死亡。这样会给人意想不到的惊奇,达到娱乐大众,增加游戏难度 的效果。游戏的设计匠心独具,并且都经过了各种测试,除了为玩家增加一些意想不到 的游戏陷阱以外,还必须保证玩家能够通关。课程设计的不足之处在于,设计的只是简单的 java 小游戏,是单机游戏,场景的 变换不够丰富,所创造的障碍物和敌人也不如真实的大型游戏形象。需要进一步改进的 地方在于,可以设置更多的关卡和障碍物,增加游戏的难度和趣味性。通过本次课程设计我学会了创建各种不同的类,也熟悉了写程序的步骤,学习到了 更多有关 java 的知识。我们还需要学习的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中药保留灌肠试题及答案
- 2025年品制魔方考试题及答案
- 2025年普通车床操作试题及答案
- 2025年少先队考试题库及答案
- 2025年微观天下试题及答案
- 2025年精准扶贫竞赛题库
- 2025年美育测试题及答案
- 2025年采气工考试题及答案
- 2025年秋招:会计岗真题及答案
- 2025年供应链专员招聘笔试真题及答案
- 国家开放大学《Web开发基础》形考任务实验1-5参考答案
- 《进一步规范管理燃煤自备电厂工作方案》发改体改〔2021〕1624号
- JGJT299-2013 建筑防水工程现场检测技术规范
- 输变电工程施工质量验收统一表式附件1:线路工程填写示例
- 健康教育指导评分表
- 快速入门穿越机-让你迅速懂穿越机
- DLT 5630-2021 输变电工程防灾减灾设计规程-PDF解密
- 医院人才猎头服务方案
- 网络运维工作日志填写规则
- 大学生预征对象登记表(样表)
- 地质钻施工方案
评论
0/150
提交评论