java的超级马里奥设计与实现(源码)

自1983年,任天堂公司发行了第一代游戏机“红白机(FC)”,人们进入了掌上游戏的时代,到后来慢慢发展研制出的GAMEBOY游戏机,再到现在青年人都热衷的XBox游戏机,30年见证了游戏机的发展,而“超级马里奥”这款由任天堂公司推出的游戏,从刚开始的红白机一直到现在的XBox游戏机,就一直很火热,这种冒险益智类游戏被广大游戏爱好者所追捧。本游戏是通过分析和总结Java游戏的开发流程以及代码功能的设计,通过面向对象的设计模式,对游戏中的人物模型赋予对象的概念和属性。使用Java开发的这款超级马里奥游戏,主要包含人物类、怪兽类、场景类、窗体类、障碍物类等几个类。游戏程序运行中,用户可以通过方向键控制人物的移动,实现游戏中的基本功能,例如能够踩死怪物,顶起砖块,吃蘑菇变大等。通过游戏程序的设计,能够学习和熟悉Java语言技术。本文首先介绍超级马里奥游戏的研究背景及现状,论述了课题研究意义,详细叙述了游戏的设计过程,并且介绍了相关关键技术,进行了需求分析。本游戏使用Java+Swing控件,使用Eclipse IDE开发编写。关键词 游戏机,超级马里奥,Java
目 录
1 引言 1
1.1 研究背景 1
1.2 研究目的及意义 1
1.3 研究现状 1
1.4 课题研究内容 2
1.5 本章小结 3
2 系统相关技术 3
2.1 开发工具及环境 3
2.2 面向对象程序设计 5
2.3 B/S结构与C/S结构 6
2.4 本章小结 6
3 可行性分析 6
3.1 概述 6
3.2 技术可行性分析 7
3.3 经济可行性分析 7
3.4 操作可行性分析 7
3.5 本章小结 7
4 系统设计与实现 7
4.1 概述 7
4.2 系统运行环境 7
4.3 系统模块设计 8
4.4 本章小结 15
5 程序的实现 15
5.1 游戏开发素材 15
5.2 游戏运行 16 *好棒文|www.hbsrm.com +Q: *351916072* 

5.3 本章小结 22
6 系统测试 22
6.1 测试的意义 22
6.2 测试过程 22
6.3 测试结果 23
6.4 本章小结 23
结 论 24
致 谢 25
参考文献 26 1 引言
1.1 研究背景
《超级马里奥》全名是《超级马里奥兄弟》,这款游戏是由任天堂公司开发推出的。这款游戏的形象背景讲述的是管道工兄弟营救公主的冒险故事历程。90后的年轻人大都在以前的小霸王机上玩过这款冒险益智类游戏。而这款游戏在发行至今就一直很火热,从以前的1985的经典像素版本到现在流行的PS4,XBOX版本,一直就收到年轻人的吹捧,这款游戏包含了童年的回忆,是无法被超越经典。
1.2 研究目的及意义
超级玛丽这款游戏是很多人童年经典的回忆,是一种简单的大众游戏,随着计算机与智能手机的普及,游戏已经慢慢成为人们日常生活不可或缺的娱乐项目。大家可以看到在现在这个网络普及的年代,网络游戏的影响力已经不是90年代可以比的了。
现在很多的网络游戏比如LOL,DOTA在世界都有着极强的影响力,我们可以看到2017年在北京鸟巢举办的英雄联盟世界比赛,在全世界都有着很大的关注,而且在央视采访中也见到了游戏的身影,并且不是坏性质的批判,而是惊讶游戏对人们生活和经济的推动。我选择超级玛丽这款游戏作为毕业设计,也是因为我对这款游戏的童年回忆以及浓厚的兴趣。我选择用Java语言来编写这款游戏是想巩固Java语言编程技术,巩固语言相关专业知识,同时我认为Java在图像处理上要比C、C++要强的多,而且支持的平台也比较多。游戏中涉及Swing实现基本窗体与部分组件,使用双缓冲技术解决卡帧问题,算法模拟重力系统等等。
1.3 研究现状
随着Java应用的日益普及、Java在各种平台上的实现,Java应用程序一次编译到处运行的特点逐渐体现出其影响力,对减少重复编程、提供快捷的跨平台应用起着不可忽视的作用。本课题着眼于Java技术的应用,由几个基于Java的相同类型的游戏设计进行说明。
1.3.1 基于java的坦克大战设计与实现
该论文介绍了坦克大战的基本构建方法、java的相关技术及程序的结构分析和具体功能的实现。重点运用了图形化用户界而GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。运用图形化用户界面的构建,通过启用多线程机制,将画面构造出来,使用双缓冲消除闪烁现象。使用键盘监听类KeyMonitor实现坦克的控制操作,实现坦克与障碍物之间的碰撞检测,利用容器类添加对象。
1.3.2 基于java的飞机大战设计与实现
该论文主要阐述以面向对象的程序开发语言 Java 及 Eclipse 为开发工具的飞机大战游戏。介绍程序开发使用Eclipse平台开发环境及环境搭建,最后讲述了基于Java 飞机大战游戏功能的实现。其功能模块如下:主界而模块, Hero 模块, Enemy 模块, Bullet的类模块,检测子弹与敌机碰撞模块检测。使用Applet程序中采用的AWT的绘图机制主要涉及三个方法:paint()方法,update()方法和repaint()方法,update()方法和paint()方法都有一个Graphics类参数,Graphics是画图的关键。
1.3.3 刘传提出的小游戏超级玛丽的设计和实现
该论文阐述的在游戏中,存放各种游戏图像的静态类是StaticValue,这个类中包含了许多BufferedImage类的图片对象,之所以选择用BufferedImage对象来保存图像是因为这个文件操作类对象支持对许多格式的图片的读取和存储,在读入外部图像资源时只用简单调用ImageIO的方法就可以完成将图像进行序列化存入到BufferedImage对象中,并可以将该对象作为参数传入到程序执行时调用的其他方法中进行处理后绘制到游戏窗口的画布上。在StaticValue类中,使用了双缓冲的技术方法解决卡帧闪屏的现象主要是定义一个image类的图片,从图片中获取graphics,然后用graphics来绘制图片到空的窗体类中,使用的方法就是将空白的图片作为中转,将图片转入程序中。
这种做法类似其他游戏项目中对主要固定游戏元素进行保存和记录的配置文件config或者xml文件,即实现一个文件部署描述符的作用,因为往往游戏在开发过程中,有很多还未出现的游戏元素,往往游戏的开发者不能预知到这些情况。因此实现一个存放游戏元素的特征表来布置己知和将要添加的游戏元素的主要信息,这种文件部署描述符有标准的格式,在开发和部署环境中可供移植的,静态数据文件表除了为游戏开发和部署的协同提供一个标准的属性单外,也影响到游戏执行过程中有关游戏事务和状态的正确性原则。因此,一个好的游戏文件部署描述符型文件对游戏的设计是至关重要的。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/931.html

好棒文