基于java的超级玛丽游戏的设计与实现论文内容摘要:

dows 7; ( 2)开发工具: eclipse; ( 3)编程语言: Java 语言; 可行性的分析 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。 因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 技术可行性 本游戏是在 Windows 7 环境下开发的,一般的机器配置就可以了,对机器本身没有太高 的要求,一般当前学校或个人电脑完全可满足要求,环境只需装上码农毕业设计下载网: 第 12 页 jdk 或以上版本就行了, Java 是现在全球最时髦的开发工具之一 ,它拥有一套庞大且完善的类库 ,内置了其他语言需要靠库甚至是操作系统才能支持的功能 ,拥有一个虚拟机。 NeatBeans IDE 是 SUN 公司开发的 Java 可视化集成开发工具,是目前最优秀的 Java 集成开发工具之一。 经济可行性 由于本系统使用到的工具一般机器都具备,使用环境也很简单,开发成本低,本课题研究的内容是涉及网络的游戏对战。 当今形式下网络游戏俨然已 经成为年轻人最时兴的消费方式之一, JAVA 一直以来由于其可以“跨平台”以及“一次编译,到处运行”等特点,许多人直接它为网络编程语言,且由于 JAVA 游戏一般来说简单有趣,并且对用户硬件要求极小,所以 JAVA 游戏通常对 85%的计算机用户都有吸引力。 且政府态度和政策都是一种信号,表明 2020 年对本土网络游戏的扶持力度将加大;国内游戏厂商将可获得发展的核心技术平台;政策有利于保护中国游戏软件的自主知识产权;这为网络游戏发展创造了良好的政策环境。 操作可行性 由于在整个系统的开发过程中从操作简便 、界面美观、灵活实用的用户要求为出发点,界面设计时充分考虑玩家的感受,界面比较直观,交互性很好,所以操作起来简单明了。 码农毕业设计下载网: 第 13 页 需求分析 所谓系统分析,就是指在整个系统开发工程中,解决“做什么”的问题,把要解决哪些问题,满足用户哪些具体的信息需求调查分析清楚,从逻辑上或是说从信息处理的功能需求上提出系统的方案,即逻辑模型,为下一阶段进行物理方案设计,解决怎么办提供依据。 用户需求分析 超级玛丽这款游戏是很多人童年经典的回忆, 是一种简单的大众的游戏,自从计算机实现以来,深受广大 电脑玩家的喜爱。 并且 随着社会的快速发展,人们的生活节奏越来越快,人们对于童年的美好已经不愿意仅仅停留在回忆阶段。 所以利用 java 语言开发一款超级玛丽游戏正是人们迫切需要的。 功能需求分析 本系统主要是完成超级玛丽游戏的基本操作。 本系统需要满足以下几点要求: (1) 在开始界面按空格键进入游戏。 (2) 利用方向键来控制马里奥的运动。 (3) 碰撞检测: ,在移动到悬崖上方是会掉下去,并失去一条生命。 ,如果马里 奥跳到敌人头顶上,则敌人消失,否则马里奥失去一条生命。 (4)马里奥顶到金币会增加分数,当马里奥失去 3 条生命时游戏结束。 界面设计需求分析 1) 选取和谐 Q 版的图片,使画面色彩和谐自然。 码农毕业设计下载网: 第 14 页 2) 固定游戏界面大小与初始显示位置。 3) 游戏采用 900*600 像素显示,对于马里奥和障碍物选用 60*60 像素的正 方图片,对于较大的障碍物分割成多个 60*60 的小正方形。 码农毕业设计下载网: 第 15 页 系统概要设计 系统模块设计 首先在对于系统的需求进行了分 析,因为设计者的最初是要做一款游戏,所以窗体类必不可少。 接下来继续分析,游戏中还需要背景类、障碍物类、敌人类、马里奥类这及格类。 其次为了游戏的流畅以及游戏中图片调用的方便,专门为此再设计一个初始化类。 窗体类 该类主要用于存放游戏的场景以及其他各类,并且实现 KeyListener 接口,用于从键盘的按键中读取信息。 该类中的一些属性主要包括了用于存放所有场景的 list 集合 allBG,马里奥类 mario,当前的场景 nowBG 以及其他一些游戏中需要的标记等。 而且在该类中,运用双缓存的技术使得游戏 的流畅度更高,解决了游戏中出现的闪屏问题。 Myframe allBG:List mario:Mario nowBG:BackGround ...... + main():void + paint():void + keyPressed():void + kerReleased():void ...... 码农毕业设计下载网: 第 16 页 初始化类 用于存放游戏所需要的所有静态文件,在游戏开始的时候将所有文件导入,提高游戏的运行速度。 并且在该类中将所有需要用到的图片进行分类,分为障碍物类,马里奥类,敌 人类以及背景图片。 当游戏运行时可以直接调用这些集合中的图片进行遍历,在调用的时候更加方便,而且可以使马里奥或者敌人在移动的时候产生动态效果。 StaticValue + allMarioImage:List + startImage:BufferedImage ...... + init():void ...... 背景类 该类表示马里奥及障碍物和敌人所处的场景,并且将障碍物和敌人绘制到场景中。 在该类中包括用于存放敌人和障碍物的 list 集合,以及当敌人或者障碍物被消灭后用于存放已经消 失的敌人和障碍物的集合,这样做是为了在马里奥死亡时重置场景所用的。 其次在该类中还使用了控制敌人移动的方法,是为了在程序之初控制敌人静止,然后在玩家点击空格以后在使得敌人开始移动。 BackGround bgImage:BufferedImage isOver:boolean isDown:boolean allEnemy:List removeEnemy:List ...... 码农毕业设计下载网: 第 17 页 + enemyStartMove():void + reset():void ...... 马里奥类 用来控制马里奥的行动,并且在该类中加入碰撞检测,判断马里奥是否与障碍物或者敌人发生碰撞。 该类中的属性主要定义了马里奥所在的场景,马里奥的移动和跳跃的速度,以及马里奥在移动过程中需要显示的图片。 另外该类中还定义了玩家的生命值和所获得的分数。 并且在 run()方法中还定义了当马里奥到达最后一关的旗子时,玩家将失去对马里奥的控制,剩下的由程序控制走到城堡,完整全部游戏。 Mario x:int y:int xmove:int ymove。 int life:int isDead:boolean ...... + leftMove():void + leftStop():void + jump():void + down():void + dead():void ...... 障碍物类 绘制场景中所需要的障碍物,例如地面、砖块、水管等等。 该类中的属性包括了障碍物的坐标,障碍物所需要显示的图片等。 并且在该类中也定义了障碍物类的重置方法,当马里奥死亡时,场景类会调用该方法。 码农毕业设计下载网: 第 18 页 Obstruction x:int y:int type:int starttype:int showImage:BufferedImage ...... + reset():void + setImage():void ...... 敌人类 该类中主要设置了两种敌人,一种是蘑菇怪,可以被马里奥踩死,另一种是食人花,不能被踩死。 该类中的属性包括了敌人的坐标,敌人的初始坐标,需要显示的图片,以及敌人的移动方向和移动范围等。 敌人的初始坐标主要是为了当敌人执行重置方法后将敌人的位置还原。 Enemy x:int y:int startx:int starty:int showImage:BufferedImage upMax:int downMax:int ...... + reset():void + dead():void ...... 码农毕业设计下载网: 第 19 页 系统流程设计 按空格键 开始 判断与场景中物体的碰撞 敌人 障碍物 是否丢失生命 是否为砖块 是 否 否 是 消灭敌人,继续游戏 游戏重置,并且失去一条生命 游戏继续 并且 是否已丢失三条生命 否 是 阻止移动, 砖块消失 阻止移动 继续游戏直至通关 游戏结束 使用方向键控制马里奥移动 码农毕业设计下载网: 第 20 页 系统详细设计 设计目标 本软件是针对超级玛丽小游戏的 JAVA 程序,进入游戏后首先按空格键 开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动性和马里奥的生命值。 当马里奥通过最后一个场景后游戏结束。 系统模块设计 本系统共包括 6 各类: 窗体类 该类主要用于存放游戏的场景以及其他各类,并且实现 KeyListener 接口,用于从键盘的按键中读取信息。 该类中的一些属性主要包括了用于存放所有场景的 list 集合 allBG,马里奥类 mario,当前的场景 nowBG 以及其他一些游戏中需要的标记等。 而且在该类中,运用双缓 存的技术使得游戏的流畅度更高,解决了游戏中出现的闪屏问题。 将该类的名字定义为 MyFrame,并且要在该类中实现 KeyListener 接口和Runnable 接口。 然后首先要在该类中定义一个 List 集合,集合的泛型为背景类BackGround,集合的名字定义为 allBG,用于存放所有的背景。 接着定义一个 Mario类属性,名字为 mario,这个就是游戏运行时候的所需要的 mario。 接下来还要在类中定义一个 BackGround 属性, nowBG,默认值应当为空,会在构造方法中赋予该属性初值,这个属性主要是 用来存放当前游戏运行时马里奥所处的游戏场景。 另外该类中还应该有一个 Thread 类属性 t,这个属性主要是为了在游戏运行的时码农毕业设计下载网: 第 21 页 候控制游戏的线程。 然后就可以在类中定义 main()方法,将该类实现就可以了。 值得一提的是该类的构造方法相对来说是比较复杂的。 在该类的构造方法中,应当首先绘制窗体类的标题,以及窗体类的大小,并且要对窗体类在初始化的时候的位置,也就是在屏幕中显示的位置,最好是显示的时候居中,这样的话在游戏运行时会比较美观一些。 其次还要对窗体的一个是否可拉升属性进行一下设置,这个设置的主要目的是因为 游戏的界面都是开发者经过深思熟虑考虑出来的比较美观的界面,玩家随意改变游戏的窗口大小可能会对游戏的体验造成影响,所以在这里应该设置游戏的窗体默认不可以被拉伸。 public MyFrame(){ (玛丽奥 )。 (900, 600)。 //这里是为了获得电脑屏幕的整体大小,以便于下面确定窗体的位置 int width = ().getScreenSize().width。 int height = ().getScreenSize().height。 ((width900)/2, (height600)/2)。 //设置窗体默认不可以被拉伸 (false)。 //初始化图片 ()。 当这些都设置好以后,接下来就应当在构造方法中绘制了,当然最先应当将游戏的场景绘制到窗体类中,然后在窗体。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。