Java的超级玛丽小游戏的设计与实现

目 录
1 引言 1
1.1 开发背景 1
1.2 发展现状 1
1.3 实现目标 2
2 开发环境 2
2. 1 Eclipse的特性 2
2. 2 Java介绍 2
2. 3 Java语言的特点 3
3 需求分析 3
3.1 可行性分析 3
3.2 功能需求 4
4 总体设计 5
4.1 游戏的模块划分 5
4.2 游戏中类之间的关系 6
5 详细设计 7
5.1 主界面与主线程 7
5.2 游戏场景的实现 8
5.3 Mario的实现 8
6 游戏中主要类的介绍与描述 9
6.1 MyFrame类 9
6.2 BackGround类 11
6.3 Obstruction类 11
6.4 Enemy类 12
6.5 Mario类 13
7游戏的优化及注意点 15
7.1 游戏中屏幕绘制技术的优化 15
7.2 碰撞检测 16
7.3 模拟重力系统 16
7.4 隐形问号的设计 16
8 游戏的实现 17
结 论 22
致谢 23
参考文献 24
1 引言
1.1 开发背景
随着计算机的普及与游戏产业的壮大,在人们的生活中,玩游戏已经成为工作之余休息娱乐的一种方式[1]。其中,单机小游戏是指计算机上运行的不需要网络的游戏软件。目前用来编写单机小游戏最多的程序语言就是Ja *好棒文|www.hbsrm.com +Q: ^351916072* 
va语言[2]。随着科技的发展,现在游戏的种类也越来越多,越来越强大。然而很多很久之前的小游戏在如今依然有顽强的生命力,《超级玛丽》便是这么一款小游戏[3]。
2010年5月国家教育部成功召开“全国推进高等学校创新创业教育和大学生自主创业工作”视频会议[4],大学生自主创业得到广泛支持与推广,为响应国家政策,大学生应积极利用所学来自主创业,基于经典游戏“超极玛丽”本身具有的巨大影响力和商业价值,以自主创业,锻炼能力为目的,利用Java语言重新设计编写“超级玛丽”,并将游戏推广,在为广大青少年游戏爱好者带来欢乐的同时,减轻家庭的负担,实现自己的创业梦想。同时,以Java语言重新设计“超级玛丽”,也是对“超级玛丽”赋予一个新的生命,使其不被传统束缚,可以渐渐融入这个日新月异的世界,只有这样,“超级玛丽”才能走的更远[5]。
基于此本论文开发了一款windows操作系统下运行的横版冒险游戏——《超级玛丽》小游戏。《超级玛丽》游戏是在Eclpice环境下,运用灵活的Java语言而开发的一款小游戏,在开发该游戏的过程中涉及到了碰撞检测、模拟重力、触屏监听等算法。
1.2 发展现状
根据任天堂官方统计[6],《超级玛丽》系列问世于1985年,其第一个作品《超级玛丽》销量高达4000万。在获得的巨大成功后,任天堂便开始《超级玛丽》系列的开发,之后每隔几年便会推出《超级玛丽》系列的新作,这当中也有很多销量极为不俗的作品[7],比如1987年的《超级玛丽3》、1989年的《超级玛丽大陆》、1990年的《超级玛丽世界》等。这之后《超级玛丽》系列虽然新作不断,然而都销量平平,直到2006年的《新超级玛丽》,销量才开始有了复苏的迹象,而2009年有着3000万销量的《新超级玛丽wii》更是标志着《超级玛丽》系列的复活[8]。如今,《超级玛丽》系列在游戏市场上的地位不容小觑。
《超级玛丽》系列自问世起,做的便是横版冒险类小游戏[9],这在当时非常新颖,所以很快获得了成功。然而随着科技的发展,游戏设备和游戏种类层出不穷,横版冒险类小游戏受到了很大的冲击,任天堂便开始转型,使《超级玛丽》系列获得了新的机遇[10]。然而,这也使得其在横版冒险类游戏的成就止步于此[11]。而本系统仍然选择了制作横版冒险类游戏,志在以新颖的关卡设计和流畅的动作来使这类游戏重新发扬光大。
1.3 实现目标
本游戏主要实现以下目标:
a)游戏界面美观,运行流畅,占用系统资源不多。
b)各对象之间的碰撞检测快速、准确,无明显漏洞。
c)场景设计合理有趣而不失新颖,数量适中。
d)主人公具有模拟重力系统。
2 开发环境
2. 1 Eclipse的特性
Eclipse是一个优秀、源代码开放、稳定、功能强大的开发平台,可以通过加载插件实现功能的扩充,其核心被设计为可以动态发现、装入和运行插件,平台中的每个子系统都是由实现某些关键功能的一组插件构建的,通过安装不同的插件可以使得Eclipse具有不同的功能和开发能力[12]。
2. 2 Java介绍
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Ja *好棒文|www.hbsrm.com +Q: ^351916072* 
va平台(即JavaEE, JavaME, JavaSE)的总称[13]。Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言[14]。
Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。
2. 3 Java语言的特点
2.3.1 平台无关性
Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口[15]。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关。
2.3.2 安全性
Java的编程类似C++,但舍弃了C++的指针对存储器地址的直接操作[16],程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。
2.3.2 面向对象
4.1 游戏的模块划分
根据游戏的需要,我们把整个游戏分为以下几个模块:
1) 主界面模块
主界面模块主要负责实现与界面相关的功能。例如场景的绘制、场景的切换、游戏开始与结束的判定以及事件的监听等。主界面模块是玩家第一个接触到的模块,本游戏中的大部分操作都是以本模块为基础来实现的。
图3.5系统用例图
2) Mario控制模块
Mario控制模块包含了Mario的各种信息,如Mario所在的场景、坐标位置、生命值以及分数等。该模块主要负责Mario的操作控制,比如Mario的移动、跳跃、与各种障碍物和敌人的碰撞以及Mario的死亡判定。其中,Mario跳跃时增添了模拟重力系统,使得Mario的跳跃看上去更加舒服、流畅,接近现实。

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

好棒文