超级玛丽游戏设计(Java+GUI+J2SE)

news/2024/10/23 5:32:19/

目 录
1、绪论 11
1.1背景以及现状 11
1.2 Java语言的特点 12
1.3 系统运行环境及开发软件: 12
1.4 可行性的分析 13
1.4.1 技术可行性 13
1.4.2 经济可行性 13
1.4.3 操作可行性 14
2、 需求分析 14
2.1 用户需求分析 14
2.2功能需求分析 15
2.3界面设计需求分析 15
3、 系统概要设计 16
3.1系统模块设计 16
3.1.1窗体类 16
3.1.2初始化类 17
3.1.3背景类 18
3.1.4马里奥类 18
3.1.5障碍物类 19
3.1.6敌人类 19
3.2系统流程设计 20
4、 系统详细设计 21
4.1 设计目标 21
4.2 系统模块设计 22
4.2.1窗体类 22
4.2.2初始化类 26
4.2.3背景类 28
4.2.4马里奥类 31
4.2.5障碍物类 37
4.2.6敌人类 39
5、系统的实现 42
5.1游戏开发所需要的图片 42
5.1.1马里奥的所有图片 42
5.1.2游戏中障碍物的图片 43
5.1.3游戏中怪物的图片 44
5.1.4游戏中的背景图片 44
5.1.5游戏开始时的图片 45
5.2游戏设计的界面 45
5.2.1 游戏逻辑展示 45
5.2.1 游戏逻辑展示 46
6、系统测试 48
6.1 测试的意义 48
6.2 测试过程 49
6.3 测试结果 49
7、总结与展望 50
7.1 总结 50
7.2 设计中的不足之处 51
7.3 展望 51
致 谢 52
外文原文 53
外文翻译 57
2、需求分析
所谓系统分析,就是指在整个系统开发工程中,解决“做什么”的问题,把要解决哪些问题,满足用户哪些具体的信息需求调查分析清楚,从逻辑上或是说从信息处理的功能需求上提出系统的方案,即逻辑模型,为下一阶段进行物理方案设计,解决怎么办提供依据。
2.1 用户需求分析
超级玛丽这款游戏是很多人童年经典的回忆,是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱。并且随着社会的快速发展,人们的生活节奏越来越快,人们对于童年的美好已经不愿意仅仅停留在回忆阶段。所以利用java语言开发一款超级玛丽游戏正是人们迫切需要的。
2.2功能需求分析
本系统主要是完成超级玛丽游戏的基本操作。本系统需要满足以下几点要求:
(1) 在开始界面按空格键进入游戏。
(2) 利用方向键来控制马里奥的运动。
(3) 碰撞检测:
A.马里奥在运动的过程中如果碰到障碍物则停止运动,在移动到悬崖上方是会掉下去,并失去一条生命。
B.对于有些敌人,如果马里奥跳到敌人头顶上,则敌人消失,否则马里奥失去一条生命。
(4)马里奥顶到金币会增加分数,当马里奥失去3条生命时游戏结束。
2.3界面设计需求分析

  1. 选取和谐Q版的图片,使画面色彩和谐自然。
  2. 固定游戏界面大小与初始显示位置。
  3. 游戏采用900600像素显示,对于马里奥和障碍物选用6060像素的正
    方图片,对于较大的障碍物分割成多个60*60的小正方形。
    4、系统详细设计
    4.1 设计目标
    本软件是针对超级玛丽小游戏的JAVA程序,进入游戏后首先按空格键开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动性和马里奥的生命值。当马里奥通过最后一个场景后游戏结束。
    4.2 系统模块设计
    本系统共包括6各类:
    4.2.1窗体类
    该类主要用于存放游戏的场景以及其他各类,并且实现KeyListener接口,用于从键盘的按键中读取信息。该类中的一些属性主要包括了用于存放所有场景的list集合 allBG,马里奥类 mario,当前的场景 nowBG以及其他一些游戏中需要的标记等。而且在该类中,运用双缓存的技术使得游戏的流畅度更高,解决了游戏中出现的闪屏问题。
    将该类的名字定义为MyFrame,并且要在该类中实现KeyListener接口和Runnable接口。然后首先要在该类中定义一个List集合,集合的泛型为背景类BackGround,集合的名字定义为allBG,用于存放所有的背景。接着定义一个Mario类属性,名字为mario,这个就是游戏运行时候的所需要的mario。接下来还要在类中定义一个BackGround属性,nowBG,默认值应当为空,会在构造方法中赋予该属性初值,这个属性主要是用来存放当前游戏运行时马里奥所处的游戏场景。另外该类中还应该有一个Thread类属性t,这个属性主要是为了在游戏运行的时候控制游戏的线程。然后就可以在类中定义main()方法,将该类实现就可以了。值得一提的是该类的构造方法相对来说是比较复杂的。
    在该类的构造方法中,应当首先绘制窗体类的标题,以及窗体类的大小,并且要对窗体类在初始化的时候的位置,也就是在屏幕中显示的位置,最好是显示的时候居中,这样的话在游戏运行时会比较美观一些。其次还要对窗体的一个是否可拉升属性进行一下设置,这个设置的主要目的是因为游戏的界面都是开发者经过深思熟虑考虑出来的比较美观的界面,玩家随意改变游戏的窗口大小可能会对游戏的体验造成影响,所以在这里应该设置游戏的窗体默认不可以被拉伸。
public MyFrame(){this.setTitle("玛丽奥");this.setSize(900, 600);//这里是为了获得电脑屏幕的整体大小,以便于下面确定窗体的位置int width = Toolkit.getDefaultToolkit().getScreenSize().width;int height = Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation((width-900)/2, (height-600)/2);//设置窗体默认不可以被拉伸this.setResizable(false);//初始化图片StaticValue.init();

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/889249.html

相关文章

试着使用SDL2复刻曹操传(一)

对古董老游戏的复刻,使用SDL再合适不过了,废话不多说,新建工程然后开搞! 对于IDE,本人选择jetbrains系列的CLion: 游戏程序总框架: 根据上图编写main.c文件: #define SDL_MAIN_HAND…

【Java游戏项目】超级玛丽(附源码)

《超级玛丽》这款游戏想必大家都玩过,在市面上五花八门的游戏我们眼花缭乱,但是都无法与童年的记忆相比较,经典版的超级玛丽小编觉得是我们00后的童年回忆。 在你的童年记忆里,是否有一个会蹦跳,会吃蘑菇的小人&#x…

【游戏推荐】---【幻想风】---愿您找到想要的书---

🎆🎆 !【WELCOME】!🎇🎇 目录 🎆🎆 !【WELCOME】!🎇🎇 🔲🔲前言 ✨✨正文 🎭🎭剧情…

java版超级玛丽游戏

技术选型 平台:Windows开发工具:Intelij IDEA JDK环境:Java 8 UI界面:基于Swing的桌面编程技术。 绘图技术:Graphics 集合框架 IO流 多线程等 地图配置 地图map.txt文件 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0…

1751 - 快乐的马里奥

马里奥是一个快乐的油漆工人,这天他接到了一个油漆任务,要求马里奥把一个 nn 行 mm 列的矩阵每一格都用油漆标记一个数字,标记的顺序按照广度优先搜索的方式进行,也就是他会按照如下方式标记: 1、首先标记第 11 行第 …

FZU 2234 牧场物语(dp 好题)

Problem 2234 牧场物语 Accept: 95 Submit: 434 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description 小茗同学正在玩牧场物语。该游戏的地图可看成一个边长为n的正方形。 小茗同学突然心血来潮要去砍树,然而,斧头在小茗的右下方。…

计算机游戏155,MAME0.155经典1430款游戏合集

MAME0.155经典1430款游戏合集本合集收录了MAME自1984至2008年间已模拟的几乎所有经典游戏,共1430款,而且基本只收录了游戏的一个版本,也就是剔除了克隆,以达到最大的精简(当然一些必要的克隆还是会保留的,一般都是和原…

《巧克甜恋》官方中文版全解锁存档分享

因为之前修复更新英文版后补丁失效的问题一不小心把存档删了,遂意识到了存档的重要性,也特此分享给需要的朋友。 全解锁存档下载