目 录
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();

























超级玛丽游戏设计(Java+GUI+J2SE)相关推荐

  1. 小玩意:猜数字小游戏(Java GUI)

    猜数字小游戏(Java GUI) 又到了学期末,又到了交各种各样作业的时间.悉听闻面向对象的小作业,诶,课程设计四选一,还没写,得嘞,得写了. 找一天,开始写,放正文 游戏规则 游戏规则,顾名思义,游 ...

  2. java程序实现剪刀石头布功能_基于JAVA的剪刀石头布游戏设计——Java课程设计报告_...

    基于JAVA的剪刀石头布游戏设计 1剪刀石头布游戏设计思路阐述 在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现: ⑴构造创建服务器端和客户端 ⑵创建输入输出流 ⑶编写服务器端处 ...

  3. java gui快速设计,Java GUI简单设计 360天气

    介绍 界面设计基于 360天气官网 原型,使用java 提供的GUI(awt/swing)包构建. 实现过程较为java基础,不是特别复杂. 先说一下我的感受,在选360天气作为GUI原型认为可以简单 ...

  4. 蜘蛛纸牌java课设_java蜘蛛纸牌游戏设计

    java蜘蛛纸牌游戏设计 java蜘蛛纸牌游戏源程序 AboutDialog.java import javax.swing.*; import java.awt.*; /* **"关于&q ...

  5. 【java毕业设计】基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码)——连连看游戏

    基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的连连看游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  6. 【java毕业设计】基于java+GUL的超级玛丽游戏GUL设计与实现(毕业论文+程序源码)——超级玛丽游戏

    基于java+GUL的超级玛丽游戏GUL设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+GUL的超级玛丽游戏GUL设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章 ...

  7. 基于Java的超级玛丽游戏的设计与实现

    项目介绍 本软件是针对超级玛丽小游戏的JAVA程序,进入游戏后首先按空格键开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动性和马里奥的生命值.当马 ...

  8. 【项目精选】基于Java的超级玛丽游戏的设计与实现(源码+论文+视频)

    点击下载源码 超级玛丽小游戏的JAVA程序,进入游戏后首先按空格键开始,利用方向键来控制的马里奥的移动,同时检测马里奥与场景中的障碍物和敌人的碰撞,并判断马里奥的可移动性和马里奥的生命值.当马里奥通过 ...

  9. 一文教你用java实现儿时的超级玛丽游戏

    导读:近年来,Java作为一种新的编程语言,以其简单性.可移植性和平台无关性等优点,得到了广泛地应用.J2SE称为Java标准版或Java标准平台.J2SE提供了标准的SDK开发平台.利用该平台可以开 ...

最新文章

  1. matlab zeros(12 1),Matlab中  函数zeroS(1,8) 代表什么意思??
  2. Visual Studio 2010软件安装教程
  3. 超图iServer版本安装和使用入门图解
  4. 刷固件Layer1到手机FLASH(硬刷)
  5. 最简化Selenium环境安装
  6. spring aop组件_安全性中的Spring AOP –通过方面控制UI组件的创建
  7. 计算机桌面上的公文包怎么加密,公文包的用法
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的早教管理系统
  9. SQL笔试之盘古开天
  10. 1.海康威视-在浏览器中摄像头激活
  11. dep指定版本 go_Golang官方依赖管理工具:dep
  12. FPGA:调试报错Error:add_1 must be in range [-1,DEPTH-1]解决办法和调试思路
  13. python爬虫基础案例——爬取猫眼电影并保存数据到excel
  14. office2010 错误1706 解决办法
  15. 在浏览器设置中,如何禁用或启用Cookie?
  16. js实现pc打开摄像头,拍照,下载
  17. 饥荒启动服务器显示error,Win10电脑运行饥荒游戏提示error during initialization解决方法...
  18. JavaScrip 防止别人复制,剪切,查看源代码,页面另存为的操作
  19. nvidia Quadro P620在linux下安装驱动
  20. 电脑android模拟器下载地址,原神电脑版怎么下载 安卓模拟器电脑版下载地址

热门文章

  1. 【obs】转载:OBS直播严重延迟和卡顿怎么办?
  2. 苹果开发者账号官方翻译篇-账号简介
  3. 证券投资深度学习_基于风险中性的深度学习选股策略
  4. 计算机模拟图像和数字,模拟与数字的区别
  5. java wtc_WTC的配置(二)
  6. 支持向量机是怎么画分类平面的?
  7. RK3399教程:wifi驱动调试技巧
  8. xp获取计算机管理员权限,xp管理员权限的获取与防范
  9. 系统思考正反馈之马太效应
  10. 网易易盾js逆向分析