java超级玛丽基于Android的超级玛丽游戏最终作业
超级玛丽小游戏
超级玛丽小游戏
游戏中的基本规则包括玩家有三条生命,如果被敌人触碰或掉入深渊,就会失去一条生命。
玩家可以通过收集金币或者踩踏特殊方块来获取额外的生命。
此外,玩家还可以获得不同的道具,比如蘑菇可以使超级玛丽变大,花朵可以让超级玛丽发射火球。
玩家需要掌握一些基本的技巧,比如准确的跳跃和踩踏敌人,以及避开障碍物和陷阱。
此外,玩家还需要学会利用道具和特殊方块,以及找到隐藏在关卡中的秘密通道和宝藏。
总的来说,超级玛丽小游戏是一款富有挑战和乐趣的游戏,玩家需要灵活的操作和良好的反应能力,才能顺利通关并拯救公主。
希望玩家能够尝试不同的策略和方法,挑战自己,享受游戏带来的乐趣。
java超级玛丽游戏计算机毕业设计任务书
java超级玛丽游戏计算机毕业设计任务书毕业设计(论文)任务书第1页毕业设计(论文)题目:基于JAVA的超级玛丽的设计和实现毕业设计(论文)要求及原始数据(资料):1. 深入了解超级玛丽的游戏环境和可研究性;2(熟练掌握Java,html编程语言并能灵活运用;3. 设计实现游戏的功能模块;4 熟练地运行程序和修改程序;5. 对java环境有深入的研究;6(训练检索文献资料和利用文献资料的能力;7(锻炼自我完成论文的能力。
第2页毕业设计(论文)主要内容:1 详细了解基于java的超级玛丽游戏的功能与应用。
具体说明超级玛丽游戏的编写目的参照文献以及技术说明。
2 实现的简单功能是实现超级玛丽到水沟和食人花的上面时会使Mario死掉,跳跃的过程中可以顶破砖块等,实现原版游戏中的玛丽游戏的主要功能,游戏人物Mario可以根据玩家的操作进行移动和跳跃,在落到蘑菇人头上时会让蘑菇人死掉,落基本游戏要素3 包括具体的设计目的,游戏的功能需求,具体的功能模块,功能描述,程序的整体框架,程序的详细设计等等对设计java的超级玛丽游戏进行可行性研究的报告。
涉及到可行性研究的前提对现有系统的分析,所建议技术可行性的分析。
可行性研究的前提。
4 对java超级玛丽游戏进行概要设计和详细设计5 系统的设计和实现包括5.1开发工作5.2游戏素材管理5.3游戏场景布置5.4游戏用例图5.5游戏状态图5.6游戏例图6 对设计进行具体的总结。
7 参考文献8 致谢学生应交出的设计文件(论文):1(内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2(包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。
第3页主要参考文献(资料):1 夏人青,罗志敏,严军.中国大学生创业政策的回顾与展望(1999-2011),高教探索,2012(1):123~1282 王光亚. 手机下Java游戏开发概述,电子科学,2009(2):25~263 车战斌,韩玉民,刘安战. 高职Java手机游戏开发专业课程体系建设研究,职业教育研究,2012(2):44~454 丁峰,徐鹏,蔡月茹. 基于Java的Web应用概览,计算机世界,2004(1):124~127 5 籍炜. 基于Java的拼图游戏开发,学园,2013(5):1506 李德平. 基于JAVA的指纹考勤机统计软件的开发,清远职业技术学院学报,2012,5(3):34~397 Weirich S, Huang L. A Design for Type-Directed Programming in Java, ElectronicNotes in Theoretical Computer Science ,2005 .117~1368 迟伟雅. Java语言简介,电脑与网络,23~259 陈涵生. Java语言与Java技术,计算机工程,1997,27(5):3~610 J. Martinez-Llario,M. Gonzalez-Alcaide. Design of a Java spatial extension forrelational databases,The Journal of Systems and Software,2011 (84):2314~2323 11 张小红. 浅谈ORACLE中基于JAVA的存储查询优化,电子技术与软件工程,2013(5):200~20112 Claudia B, Stephan D. Educational and technical design of a Web-based interactivetutorial on programming in Java,Science of Computer Programming2004(53):25~36 13 吴越胜,李新磊等. Eclipse 3.0 程序开发技术详解,清华大学出版社, 2010: 13~15 14 吴亚峰,苏亚光等. 30天学通java项目案例开发,电子工业出版社, 2009: 153~190 15 唐大仕. JAVA程序设计第二版,清华大学出版社, 2003:1~1016 吕聃. 基于Java的在线考试系统设计与实现,吉林大学,学位论文,201217 尚蔚. 基于Java的多形式WEB视频监控系统的设计与实现,东华大学,学位论文,2010 18 强锋科技. Java开发利器: Eclipse从入门到精通,清华大学出版社, 2005: 24~111 19 宋全德. 基于Java的Madlib自动化测试框架,计算机系统应用,2014,23(2):28~35 20 (英)伊乐斯, 克里普斯著, 蔡黄辉, 马文涛译.架构实战—软件架构设计的过程,机械工业出版社, 2010: 42~76专业班级学生要求设计(论文)工作起止日期 2014年3月17日~2014年6月27日指导教师签字日期 2014年3月17日教研室主任审查签字日期系主任批准签字日期。
超级玛丽JAVA小游戏详细设计文档
无关,需要表示层调用定义好的接口与逻辑层的通信 数据持久层。保存游戏中的数据,载入游戏中需要的资源,与程序逻辑层无
关,用 XML 文档存储数据
2.7 程序的三层结构图
表现层(绘制屏幕)
逻辑层(程序的逻辑)
数 据 持 久 层 ( 数 据 存4储 )
不同的操作; 查询记录:查询五个最高游戏分数,排名由上往下递减。 游戏设置(包括音乐设置和按键设置):玩家可以设置游戏进行时的音乐开
或关以及修改相应的控制键。
2.6 程序的总体架构
本程序采用 3 层程序架构,业务表现层,业务逻辑层和数据持久层。 业务表现层。主要是游戏界面的绘制,通过指定的接口绘制,与游戏的逻辑
private void walk()
//人物走的动作
private boolean checkTileCollisionVertical() //检查与地图的纵
向碰撞
private boolean checkTileCollisionHorizon() //检查与地图的横
向碰撞
private void fire() //发射子弹
地图,以提高游戏的运行速度 5) 居于多线程,实现进度条
2.2 游戏功能划分
游戏的基本功能应该包括菜单处理,程序逻辑处理,持久性处理和挂起恢复处理。 关于菜单的处理,包括可以选择的进入游戏、保存、帮助和音效开关等。 程序的逻辑处理就是涵盖了程序中除菜单外几乎所有的功能。 持久性处理就是资源的载入和游戏的进度保存。
private boolean checkSpriteCollisionVertical() //检查纵向与
java超级玛丽游戏计算机毕业设计论文[管理资料]
基于JAVA的超级玛丽设计与实现摘要随着计算机技术及网络技术的不断发展,电子游戏越来越普及。
经典游戏“超级玛丽”因其本身所具有的娱乐性与教育意义而被人们广泛接受,在广大的青少年玩家中享有极高的知名度。
Java语言作为一种完全面向对象的程序设计语言,在游戏设计方面具有独特优势。
Java语言由C++语言发展而来,但比C++语言简单。
它具有简单、与平台无关、高效、安全、多线程等特点,在游戏设计开发方面得到广泛应用。
本课题在大学生自主创业的大背景下,利用Java语言重新设计开发了“超级玛丽”游戏,基本实现了旧版游戏的所有功能。
目前该版本游戏已经发布在学校的公共论坛上,已被许多同学下载并试玩,反响较好,但是仍暴露了一些问题,如人物形象设计过于单调等,这些问题的优化将会在下一个版本中得到实现。
本文在对整个游戏的各种需求及可行性分析的基础上,详细论述了游戏的设计过程与实现方案。
论文包括绪论、相关技术研究、可行性分析、系统设计与实现以及结论等部分内容。
关键词: Java;超级玛丽;C++Design and Implementation of a Java-based Super Mario GameAbstractWith the development of computer and network technology, video games have become more and more popular. Super Mario as a classical game, which enjoys high popularity in the majority of juvenile game players was widely accepted due to its entertainment and educational significance. Java language as a programming language that is completely object oriented, has an unique advantage in game design. Java language developed from C++ language is much more simple than C++ language. Its advantages such as simplicity, platform independence, efficiency, security and multi threading etc, has been widely used in the aspects of game design. This topic which is in the context of College Students' entrepreneurship, use Java language to design and develop the "super Mario" game again that basically achieve the features of the old version of the game. The current version of the game being released in the school public forum have been downloaded and played by many students. Although the evaluation of the game was good, there are still some problems, such as the character image is too monotonous. Optimization of all these problems will be implemented in the next version.Based on the demand and feasibility analysis of the whole game, the game design process and implementation plan were discussed in detail. The thesis includes introduction, related technology research, feasibility analysis, system design and implementation as well as the conclusion part.Key words: Java; Super Mario; C++目录摘要 (i)Abstract (ii)1 绪论 (1)课题研究背景 (1)课题研究意义 (1)课题研究内容 (2)2 可行性分析 (3)经济可行性分析 (3)技术可行性分析 (3)系统性能需求分析 (3)3 相关技术研究 (5)开发工具及环境 (5)Java语言 (5)Eclipse环境 (6)面向对象程序设计 (6)C/S结构与B/S结构 (6)4 系统设计与实现 (7)开发工作 (7) (7)游戏场景布置 (7) (8) (8)游戏时序图 (9) (10) (10)Mario图类 (11)Enemy类图 (13)Obstruction类图 (14)BackGround类 (15)StaticValue类图 (16)MyFrame类图 (17)游戏功能与代码实现 (18)游戏功能 (18) (18)5 游戏运行截图及程序说明 (25)结论 (30)参考文献 (31)致谢 (32)外文原文 (33)1 绪论课题研究背景《超级玛丽》全名为《超级马里奥兄弟》,是由任天堂公司出品的著名横版过关游戏。
超级玛丽JAVA小游戏概要设计文档
目录1.导言 (2)1.1编写目的 (2)1.2项目范围 (2)1.3参考资料 (2)1.4缩写说明 (2)1.5术语定义 (2)2.任务概述 (3)2.1目标 (3)2.2开发环境 (3)2.3运行硬件环境要求 (3)3.功能需求 (3)3.1游戏功能划分 (3)3.2功能划分的架构图 (4)3.3具体的功能模块 (4)3.4功能描述 (4)3.5程序的总体架构 (4)3.6程序的三层结构图 (5)4.面向对象设计 (5)4.1用例图 (5)4.2顺序图 (6)4.3活动图 (6)4.4主要类图 (7)4.5各个模块的方法或类名类表示 (7)4.6地图绘制中的坐标说明 (8)5.运行需求 (8)5.1界面设计技术 (8)5.2硬、软件接口要求 (8)5.3故障处理 (9)6.其它需求 (9)6.1可扩展性要求 (9)1.导言1.1编写目的该文档的目的是说明超级玛丽游戏的功能和设计方向、目标等描述游戏项目的概要设计。
其主要内容包括:游戏项目的功能简介,接口设计,模块设计,界面设计。
本文档预期读者包括:项目管理人员,编程人员,数据库设计人员,美工,测试人员。
1.2项目范围该文档定义了游戏的模块,结构单元,但未确定单元的实现方法,这部分内容将在详细设计/实现中确定。
1.3参考资料《软件工程案例教程》机械工业出版社韩万江编著《J2ME手机游戏开发技术详解》清华大学出版社李振鹏龚剑编著1.4缩写说明UML:Unified Modeling Language(统一建模语言)的缩写,是一个标准的建模语言。
1.5术语定义MIDP2.0定义:MIDP2.0也叫MIDP_NG,它的编号是JSR118。
MIDP2.0与1.0相比有很大提高,增加的特性包括:提供域安全模型,以允许对应用程序进行签名和论证;提供TCP、UDP网络接口;内置OTA;更好的用户界面;基本的声音API。
2.任务概述2.1目标实现超级玛丽游戏的主要功能,主人翁可以吃到蘑菇变大,吃到花可以发射子弹,有的水管可以下去,可以踩到乌龟,可以顶破砖块,实现大家熟悉的基本功能。
超级玛丽--Java课程设计---精品管理资料
《面向对象程序设计》课程设计报告题目: 超级玛丽软件的设计与实现院(系): 信息科学与工程学院专业班级:计算机科学与技术1201班学生姓名: 程伟学号: 20121183011指导教师:吴奕20 14 年 12 月 29 日至20 15 年 1 月 9 日华中科技大学武昌分校制面向对象程序设计课程设计任务书目录1需求与总体设计 (5)1。
1需求分析 (5)1.2程序功能图 (5)1。
3程序类图 (6)2详细设计 (7)2。
1 MyFrame实现 (7)2.1.1窗体对象的序列图 (7)2.1.2 Myframe详细类图 (8)2.2 Mario实现 (8)2。
2.1 Mario对象的序列图 (8)2.2.2 Mario类图 (9)2。
3 Enemy类的实现 (10)2。
4 Obstruction类的实现 (11)2。
5 BackGround类实现 (11)3编码实现 (12)3。
1 MyFrame类的详细代码......................................................................................... 错误!未定义书签。
3。
2 BackGround类的详细代码................................................................................... 错误!未定义书签。
3.3 Mario类的详细代码............................................................................................... 错误!未定义书签。
3.4 Enemy类的详细代码............................................................................................... 错误!未定义书签。
超级玛丽java游戏课程设计
超级玛丽java游戏课程设计一、课程目标知识目标:1. 学生能够理解Java编程语言的基本语法和结构,掌握面向对象编程的基本概念。
2. 学生能够运用Java编程实现游戏界面设计、角色控制、碰撞检测等基本功能。
3. 学生了解游戏开发中的坐标系统和动画原理,并能够将其应用于超级玛丽游戏设计中。
技能目标:1. 学生掌握使用Java编写程序的方法,培养编程思维和解决问题的能力。
2. 学生能够运用面向对象的设计思想,设计出结构清晰、可维护性强的游戏代码。
3. 学生通过团队协作,学会使用版本控制工具,提高项目管理和团队协作能力。
情感态度价值观目标:1. 学生培养对编程和游戏开发的兴趣,激发创新意识和探索精神。
2. 学生在项目实践中,增强自信心,培养面对困难和挑战时的积极态度。
3. 学生通过团队协作,学会尊重他人意见,培养良好的沟通能力和团队精神。
课程性质:本课程为实践性较强的课程,结合Java编程语言和游戏开发技术,使学生能够在实际操作中掌握编程知识和技能。
学生特点:学生处于初中或高中年级,具有一定的计算机操作基础,对游戏开发感兴趣,具备一定的逻辑思维能力。
教学要求:课程注重理论与实践相结合,强调动手实践,引导学生通过自主学习和团队协作完成游戏设计项目。
在教学过程中,关注学生的个体差异,鼓励学生提问和分享,提高学生的综合素质。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. Java基础语法:变量、数据类型、运算符、控制流程(条件语句、循环语句)、数组等基本概念。
2. 面向对象编程:类与对象、构造方法、继承与多态、接口与实现等。
- 相关章节:课本第3章至第5章。
3. Java图形用户界面(GUI):Swing库的使用,窗口、标签、按钮、文本框等组件的创建与应用。
- 相关章节:课本第7章。
4. 游戏设计基础:- 坐标系统与动画原理:游戏中的坐标系,帧动画原理。
- 碰撞检测与角色控制:矩形碰撞检测,角色移动、跳跃等控制逻辑。
基于Java的超级玛丽游戏的设计与实现论文
分类号_______________ 密级________________UDC _______________ 学号_ ___ 毕业设计(论文)论文题目基于Java的超级玛丽游戏的设计与实现thesis Topic学生姓名学号所在院系专业班级导师姓名职称完成日期年月日基于java的超级玛丽游戏的设计与实现摘要近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用。
J2SE称为Java标准版或Java标准平台。
J2SE提供了标准的SDK开发平台。
利用该平台可以开发Java桌面应用程序和低端的服务器应用程序,也可以开发Java Applet程序。
“超级玛丽”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。
本游戏中通过总结和分析JAVA游戏的开发流程和代码功能的设计,采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。
开发了一款超级玛丽游戏,该游戏主要分为窗体类、场景类、马里奥类、敌人类、障碍物类等几个类。
在主程序运行的线程中,用户控制的超级玛丽随方向键的操作而移动,并且可以实现马里奥游戏中的一些基本功能,例如踩死敌人或者顶掉砖块。
本游戏采用双缓存技术,解决了游戏过程中的闪屏问题。
通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。
本文在介绍Java相关技术和国内外发展现状的基础上,对“超级玛丽”游戏的整个生命周期的各个开发阶段进行了详细地介绍。
为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序调试过程和功能测试结果。
【关键字】:面向对象;Java;碰撞检测;超级玛丽Design and implementation of java-based Super Mario gameAbstractIn recent years, Java as a new programming language, with its simplicity, portability and platform independence, etc., have been widely used. J2SE called Java Standard Edition or Java standard platforms. J2SE SDK provides a standard development platform. You can use the platform to develop Java desktop applications and low-end server applications, you can develop Java Applet program."Super Mario" game is a classic game, because it is simple, entertaining and popular. The game features through the development process and code design summary and analysis of JA V A games, using object-oriented design patterns, all objects of the game gives the concept of objects and attributes. Developed a Super Mario game, the game is divided into several classes form class, class scene, Mario class, class enemies, obstacles and so on. In the main thread running, user-controlled Super Mario with the arrow keys to move the operation, and can achieve Mario game some basic functions, such as stepping on the enemy or top off the bricks. The game uses dual caching technology to solve the game during the splash screen problem. Through the development of this game, to learn Java technology and familiar with software development process purposes.This paper describes the state of the art related to the development of Java and abroad on the basis of the various development stages of "Super Mario" game for the entire life cycle of a detailed introduction. In order to ensure the correctness of the program code and functions to achieve reliability, this article describes the game software debugging process and functional test results.Key words: Object-Oriented,java,Collision Detection, Mario目录1、绪论 (5)1.1背景以及现状 (5)1.2 Java语言的特点 (5)1.3 系统运行环境及开发软件: (6)1.4 可行性的分析 (6)1.4.1 技术可行性 (6)1.4.2 经济可行性 (7)1.4.3 操作可行性 (7)2、需求分析 (7)2.1 用户需求分析 (7)2.2功能需求分析 (8)2.3界面设计需求分析 (8)3、系统概要设计 (8)3.1系统模块设计 (8)3.1.1窗体类 (9)3.1.2初始化类 (9)3.1.3背景类 (10)3.1.4马里奥类 (10)3.1.5障碍物类 (11)3.1.6敌人类 (11)3.2系统流程设计 (13)4、系统详细设计 (14)4.1 设计目标 (14)4.2 系统模块设计 (14)4.2.1窗体类 (14)4.2.2初始化类 (18)4.2.3背景类 (21)4.2.4马里奥类 (24)4.2.5障碍物类 (29)4.2.6敌人类 (31)5、系统的实现 (34)5.1游戏开发所需要的图片 (34)5.1.1马里奥的所有图片 (34)5.1.2游戏中障碍物的图片 (35)5.1.3游戏中怪物的图片 (35)5.1.4游戏中的背景图片 (36)5.1.5游戏开始时的图片 (36)5.2游戏设计的界面 (37)5.2.1 游戏逻辑展示 (37)5.2.1 游戏逻辑展示 (38)6、系统测试 (39)6.1 测试的意义 (39)6.2 测试过程 (40)6.3 测试结果 (40)7、总结与展望 (41)7.1 总结 (41)7.2 设计中的不足之处 (41)7.3 展望 (41)致谢 (42)外文原文 (43)外文翻译 (47)1、绪论1.1背景以及现状随着计算机日益普及,计算机已然成为人们日常生活的一部分的今天,计算机游戏也越来越成为人们生活中不可或缺的元素。
超级玛丽小游戏设计毕业设计
摘要《超级玛丽》全名《超级马里奥兄弟》,是任天堂公司出品的著名横版过关游戏,最早在红白机上推出,有多款后续作品,迄今多个版本合共销量已突破4000万套。
其中的主角马里奥、路易、桃子公主、蘑菇王子等等已成为任天堂的招牌人物。
该课题主要是模仿经典的《超级玛丽》完成相应的游戏功能。
本游戏以java为主要技术核心,通过各种核心类实现了游戏中的主要人物和角色,并通过各类函数实现了地图的绘制、碰撞检测、键控、滚屏等核心功能,并对游戏进行了一系列优化,例如产生新对象,收集垃圾,对时间、空间的权衡,实现了电脑版的超级玛丽。
关键字:超级玛丽;Java;碰撞检测;滚屏Abstract"Super Marie" full name "super Mario Bros." version of the cross, is a famous Nintendo Co produced the pass of the game, the first introduced in red and white machine, there are a variety of subsequent works, so multiple versions of total sales have exceeded 40000000 sets. One of the main characters Mario, Louis, Princess Peach, mushroom Prince has become Nintendo sign characters. The main issue is to imitate the classic "super Marie" to complete the corresponding game function. This game is the main core technology in Java, through a variety of core class implements the main characters and the characters in the game, and implements map rendering, collision detection, key control, scrolling and other core functions through various kinds of function, and the Games were a series of optimization, such as creating a new object, garbage collection, to balance time, space, achieve 1 computer version of super Marie.Key words: Super Marie ,Java, Collision detection ,Roller screen目录1. 绪论 (1)1.1 java介绍 (1)1.2 超级玛丽游戏的历史 (1)2. 基本概要 (2)2.1 游戏应用环境的构建 (2)2.1.1游戏需要的硬件环境 (2)2.1.2游戏需要的软件环境 (2)2.2 操作 (2)2.3 游戏界面 (2)3. 系统分析 (4)3.1 本程序需要解决的主要技术问题 (4)3.2 游戏的总体构架 (4)3.3 程序的类结构以及流程图 (5)3.3.1 类结构 (5)3.3.2 流程图 (6)4. 详细设计及实现 (7)4.1 地图的实现 (7)4.1.1地图的结构 (7)4.1.2约定规则 (7)4.1.3地图的产生 (8)4.2 滚屏的实现 (9)4.2.1原理 (9)4.2.2地图内部对象的移动 (9)4.2.3小结 (9)4.3 地图切换的实现 (9)4.4 碰撞检测 (10)4.4.1原理 (10)4.4.2碰撞检测在游戏中的应用 (10)4.5 玛丽以及键控处理的实现 (10)4.5.1 Mario类的实现 (11)4.5.2键控处理 (12)4.6 砖头的实现 (12)4.6.1分类 (12)4.6.2结构 (13)4.7 敌人的实现 (13)4.7.1分类 (13)4.7.2结构 (14)4.8 重力模拟 (15)5. 游戏的优化及注意点 (16)5.1 游戏中屏幕绘制技术的优化 (16)5.2 游戏中新对象的产生和垃圾收集 (16)5.3 游戏对系统资源占用的优化 (17)6. 总结 (18)参考文献 (20)致谢 (21)附录 (22)1.绪论1.1java介绍Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。
超级玛丽--Java课程设计
超级玛丽--Java课程设计《面向对象程序设计》课程设计报告题目:超级玛丽软件的设计与实现院(系):信息科学与工程学院专业班级:计算机科学与技术1201班学生姓名:程伟学号:20121183011指导教师:吴奕20 14 年 12 月 29 日至20 15 年 1 月 9 日华中科技大学武昌分校制总体设计1天详细设计1.5天编制源程序实现3.5天测试与修改1天撰写课设报告2天六、主要参考资料[1] 张广彬. Java课程设计案例精编(第二版).北京:清华大学出版社, 2011.[2] 耿祥义. Java课程设计(第二版).北京:清华大学出版社, 2008.[3] 耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.[4] 邹林达.陈国君 Java2程序设计基础.北京:清华大学出版社,2010.[5] 邹林达.Java2程序设计基础实验指导.北京:清华大学,2010.目录1需求与总体设计 (2)1.1需求分析 (2)1.2程序功能图 (3)1.3程序类图 (3)2详细设计 (4)2.1 MyFrame实现 (4)2.1.1窗体对象的序列图 (4)2.1.2 Myframe详细类图 (5)2.2 Mario实现 (6)2.2.1 Mario对象的序列图 (6)2.2.2 Mario类图 (7)2.3 Enemy类的实现 (8)2.4 Obstruction类的实现 (9)2.5 BackGround类实现 (9)3编码实现 (10)3.1 MyFrame类的详细代码....... 错误!未定义书签。
3.2 BackGround类的详细代码.错误!未定义书签。
3.3 Mario类的详细代码........... 错误!未定义书签。
3.4 Enemy类的详细代码........... 错误!未定义书签。
3.5 Obstruction类的详细代码错误!未定义书签。
4系统测试 (60)4.1 游戏开始界面的测试 (60)4.2 游戏运行的测试 (60)4.3 排除错误的处理 (64)总结 (64)1需求与总体设计1.1需求分析提供一个友好的用户交互界面,简单明了容易操作。
超级马里奥 java
1、游戏内容简介在很多年以前,红白机FC的超级马里奥兄弟是当时的游戏中的颠峰之作,套用当时最流行的一句话就是操作感和平衡性几乎完美无暇。
这里完成的 MLDN马里奥参考的就是这款游戏的设定,对游戏的背景、人物、敌人等重新绘制,并加入了一些恶搞的元素。
2、游戏操作游戏通过键盘操作,键盘上的箭头“” 和“” 分别控制Mario的移动,空格键控制Mario的跳跃,通过以上的简洁的操作完成整个游戏。
3、游戏中的设定开始游戏时,Mario会有3条生命,消灭敌人或顶一些物品可以得到分数,每到500分会增加一条生命,如果Mario被敌人杀死或是掉下悬崖,会失去一条生命,并从该版面重新开始游戏,如果Mario的生命数为0,则游戏结束,返回标题画面重新开始游戏。
游戏中有一个秘技,在游戏的开始画面通过键盘输入一些内容可以使Mario的生命数增加到30条。
4、游戏中的物品介绍砖块:被Mario顶到会消失,Mario可以获得10分的分数,其中有些砖块在Mario从上边经过的时候会消失。
水管:在水管中一般会有食人花,如果Mario被花碰到会损失生命。
?:被Mario顶到会变成无法破坏的铁块,同时Mario可以获得50分的分数。
铁块:一般是从?变化过来的,不会被Mario破坏透明?:在游戏中,某些地方会有隐藏的?,o顶到会变成无法破坏的铁块,同时Mario可以获得50分的分数。
5、游戏中的敌人介绍三角(蘑菇):会缓慢的左右移动,可以被Mario踩死,每消灭一个Mario可以获得50分的分数。
乌龟:比三角的移动速度稍快,可以被Mario踩死,每消灭一个Mario可以获得100分的分数。
食人花:在水管中出现,无法被Mario消灭。
代码介绍1、代码通过面向对象的设计思路,将系统分为Mario,物品,敌人,背景,窗体显示等多个Java类,共1600多行代码,运用了Java的Swing、IO操作、线程、类集等技术,并完全按照Java编码规范进行命名和编写。
超级玛丽JAVA小游戏测试报告文档
超级玛丽JA V A小游戏测试报告目录1.导言 (1)1.1编写目的 (1)1.2项目范围 (1)1.3参考资料 (2)1.4缩写说明 (2)1.5术语定义 (2)1.6版本更新信息 (2)2. 测试设计 (2)2.1测试要点 (2)2.2测试时间、地点、人员 (3)2.3测试覆盖设计 (3)2.4测试环境描述 (3)2.5功能测试执行情况 (4)2.6界面测试 (7)2.7测试进度度量 (7)2.8测试工作量度量 (8)2.9.1测试任务评估.................................................................错误!未定义书签。
2.9.2测试对象评估.................................................................错误!未定义书签。
超级玛丽JA V A小游戏测试报告1.导言1.1编写目的该文档的目的是描述超级玛丽JA V A小游戏的系统测试的总结报告,其主要内容包括:系统环境的介绍、功能的实现的测试、系统结果评估。
本文档预期读者包括:开发人员,项目管理人员,测试人员。
1.2项目范围该文档定义了对超级玛丽游戏的主要功能,主人翁可以前进、后退、跳跃、吃到蘑菇变大、可以踩到乌龟、可以顶破砖块、等功能的实现情况以及项目的运行的测试。
1.3参考资料《LoadRunner使用手册》北京长江软件有限公司出版社编制《超级超级玛丽JA V A小游戏概要设计文档》《软件测试技术概论》古乐史九林遍著/清华大学出版社《软件测试:第二版》Paul.C.Jorgensen 著/机械工业出版社1.4缩写说明无1.5术语定义功能性测试:按照系统需求定义中的功能定义部分对于系统实行的系统级别的测试;非功能性测试:按照系统需求定义中的非功能定义部分对系统实行系统级别的测试;测试用例:测试人员设计出来的用来测试软件某个功能的一种情形。
基于android超级玛丽制作毕业论文
毕业设计(论文)题目: 基于安卓的超级马里奥制作毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
超级玛丽游戏设计(java)
Java程序设计实验报告专业:嵌入式工程技术年级:2012姓名:黄泽康学号: 20125003指导教师:贺伟阿坝师专物理与电子科学系Java编程超级玛丽的游戏设计题目简介:本游戏是利用java语言在JCreator Pro和jdk的环境下,经过两个星期的编写与调试完成的一个超级玛丽游戏。
本游戏代码长度约3000行,编写过程中历经两个版本(V1.0 版大约2000行代码、V2.0 版大约3000行代码)。
V1.0版本用时一个星期,V2.0版本用时一个星期,此游戏操作简单、界面美观、功能基本较齐全。
整个游戏分功能类模块,约实现了超级玛丽游戏经典版的所有功能的 80%。
一、实验目的:1、熟悉类和了解如何创建类,对创建的类进行测试。
让我们更加了解学习面向对象设计的目的和作用;2、了解java面向对象编程设计与C语言、C++编程的区别;3、学会使用各种程序命令、了解各种包的作用和功能,从而设计图形界面等;4、掌握java面向对象中的各种使用语句;5、学会设计和编写简单的程序或游戏。
二、实验原理、要求及主要设计思想:原理:利用建立的各种类和包的调用来实现各自的作用,并且实现游戏编写的效果。
设计要求:实现一个简单的超级玛丽游戏程序的基本要求:①在二维平面里画出地图(道具、敌人等)、玛丽,根据超级玛丽的动作和高度在确定地图的高度,并且还要对人的动作进行设计,;②玩家能通过控制按键A左走、D右走、L大跳、J小跳、K发子弹等来控制玛丽的动作;③在游戏中添加声音效果,如:游戏进行的声音、玛丽吃金币的声音、玛丽撞墙的声音、玛丽发子弹的声音、玛丽死亡的提示音等等;④玛丽游戏界面上有文件(退出游戏、打开地图)、游戏(暂停、开始、新游戏)、工具(自定义地图)、帮助(关于、使用说明)的菜单,并且在每个子菜单上添加特定的标志;设计思路:1、首先设计游戏主界面、游戏界面上的控制菜单,控制菜单包括:文件、游戏、工具、游戏帮助。
文件、游戏等菜单又包含了以下子菜单:文件:单击打开地图,就可以选择已创建好的地图关卡;单击退出游戏,就直接退出整个游戏主界面。
Java小程序之山寨版超级玛丽
Java小程序之山寨版超级玛丽一、游戏基本功能1、能够向左向右行走(键盘监听)2、能够跳跃3、能够发射子弹4、能够检测和障碍物之间的碰撞5、背景图片的移动二、游戏运行界面三、游戏大致实现思路:1.窗体2.自己角色的添加3.背景图片的添加4.背景图片的移动5.人物的移动和跳跃6.砖头、水管等等障碍物的添加7.任务和障碍物的碰撞难点分析:1.人物的多键控制1)给人物设定方向boolean变量:向左、向右、向上、向下2)通过键盘监听来修改方向的变量值按下某个键的时候,我们把相应方向改为true,释放的时候改false 2.地图配置自定义文件读取方式实现:文件流的使用和字符串String类的方法调用3.碰撞检测封装一个Rectangle类的对象4.子弹添加1)先定义一个容器,这个用于封装所有的子弹对象2)按下某个键的时候,创建一个子弹对象(以角色的坐标为基准初始化)3)把子弹对象添加到容器当中4)在paint方法中,遍历容器,取出子弹对象并进行绘制5)检测子弹如果超出了窗体边界,则需要把当前子弹从容器当中移除掉四、程序源代码:代码结构图:分了三个包、敌人类包、游戏界面类包、游戏地图配置包com.huaxin.mario包:[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario;import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.ArrayList;import javax.swing.ImageIcon;import javax.swing.JFrame;import com.huaxin.enery.Enery;import com.huaxin.enery.Pipe;import Util.Map;public class GameFrame extends JFrame{public Mario mario;public Enery pipe,cion,brick;//背景图片public BackgroundImage bg ;//容器装敌人public ArrayList<Enery> eneryList = new ArrayList<Enery>();//子弹容器public ArrayList<Boom> boomList = new ArrayList<Boom>();//子弹的速度public int bspeed=0;//画地图,制定规则,是1画砖头,是2画金币,是3画水管public int [][] map =null;//构造函数里面初始化背景图片和马里奥对象public GameFrame() throws Exception {mario = new Mario(this);mario.start();Map mp= new Map();bg = new BackgroundImage();//窗体重绘线程new Thread(){public void run(){while(true){//重绘窗体repaint();//检查子弹是否出界checkBoom();try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}}}}.start();map=mp.readMap();//读取地图,并配置地图for (int i = 0; i < map.length; i++) {for (int j = 0; j < map[0].length; j++) {//读取到的是1,画砖头if(map[i][j]==1){brick = new Pipe(j*30,i*30,30,30,new ImageIcon("image/brick.png").getImage());eneryList.add(brick);}//读到2画金币if(map[i][j]==2){cion = new Pipe(j*30,i*30,30,30,new ImageIcon("image/coin_brick.png").getImage());eneryList.add(cion);}//读到3画水管if(map[i][j]==3){pipe = new Pipe(j*30,i*30,60,120,new ImageIcon("image/pipe.png").getImage());eneryList.add(pipe);}}}//设置背景音乐com.huaxin.music.Util.startMusic("music/bg1.wav");}public void initFrame(){//设置窗体相关属性this.setSize(800,450);this.setTitle("山寨版超级玛丽");this.setResizable(false);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(3);this.setVisible(true);//该窗体添加键盘监听KeyListener kl = new KeyListener(this);this.addKeyListener(kl);}public void paint(Graphics g) {//利用双缓冲画背景图片和马里奥BufferedImage bi =(BufferedImage)this.createImage(this.getSize().width,this.getSize().height);Graphics big =bi.getGraphics();big.drawImage(bg.img, bg.x, bg.y, null);for (int i = 0; i <eneryList.size(); i++) {Enery e =eneryList.get(i);big.drawImage(e.img, e.x, e.y, e.width, e.height,null);}//画子弹for (int i = 0; i < boomList.size(); i++) {Boom b =boomList.get(i);Color c =big.getColor();big.setColor(Color.red);big.fillOval(b.x+=b.speed, b.y, b.width, b.width);big.setColor(c);}//画人物big.drawImage(mario.img, mario.x, mario.y, mario.width, mario.height,null);g.drawImage(bi,0,0,null);}//检查子弹是否出界,出界则从容器中移除,不移除的话,内存会泄漏public void checkBoom(){for (int i = 0; i < boomList.size(); i++) {Boom b = boomList.get(i);if(b.x<0 || b.x>800){boomList.remove(i);}}}}[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario;import java.awt.Image;import java.awt.Rectangle;import javax.swing.ImageIcon;import com.huaxin.enery.Enery;//自己的角色类public class Mario extends Thread{public GameFrame gf;public boolean jumpFlag=true;//马里奥的坐标public int x=0,y=358;//马里奥的速度public int xspeed=5,yspeed=1;//马里奥的宽高public int width=30,height=32;//马里奥的图片public Image img = new ImageIcon("image/mari1.png").getImage();public boolean left=false,right=false,down=false,up=false;public String Dir_Up="Up",Dir_Left="Left",Dir_Right="Right",Dir_Down="Down";public Mario (GameFrame gf) {this.gf=gf;this.Gravity();}public void run(){while(true){//向左走if(left){//碰撞到了if(hit(Dir_Left)){this.xspeed=0;}if(this.x>=0){this.x-=this.xspeed;this.img=new ImageIcon("image/mari_left.gif").getImage();}this.xspeed=5;}//向右走if(right){if(hit(Dir_Right)){this.xspeed=0;}//任人物向右移动if(this.x<400){this.x+=this.xspeed;this.img=new ImageIcon("image/mari_right.gif").getImage();}if(this.x>=400){//背景向左移动gf.bg.x-=this.xspeed;//障碍物项左移动for (int i = 0; i <gf.eneryList.size(); i++) {Enery enery = gf.eneryList.get(i);enery.x-=this.xspeed;}this.img=new ImageIcon("image/mari_right.gif").getImage();}this.xspeed=5;}//向上跳if(up){if(jumpFlag && !isGravity){jumpFlag=false;new Thread(){public void run(){jump();jumpFlag=true;}}.start();}}try {this.sleep(20);} catch (InterruptedException e) {e.printStackTrace();}}}//向上跳的函数public void jump(){int jumpHeigh=0;for (int i = 0; i < 150; i++) {gf.mario.y-=this.yspeed;jumpHeigh++;if(hit(Dir_Up)){break;}try {Thread.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}}for (int i = 0; i <jumpHeigh; i++) {gf.mario.y+=this.yspeed;if(hit(Dir_Down)){this.yspeed=0;}try {Thread.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}}this.yspeed=1;//还原速度}//检测碰撞public boolean hit(String dir){Rectangle myrect = new Rectangle(this.x,this.y,this.width,this.height);Rectangle rect =null;for (int i = 0; i < gf.eneryList.size(); i++) {Enery enery = gf.eneryList.get(i);if(dir.equals("Left")){rect = new Rectangle(enery.x+2,enery.y,enery.width,enery.height);}else if(dir.equals("Right")){rect = new Rectangle(enery.x-2,enery.y,enery.width,enery.height);}else if(dir.equals("Up")){rect = new Rectangle(enery.x,enery.y+1,enery.width,enery.height);}else if(dir.equals("wn")){rect = new Rectangle(enery.x,enery.y-2,enery.width,enery.height);}//碰撞检测if(myrect.intersects(rect)){return true;}}return false;}//检查是否贴地public boolean isGravity=false;public void Gravity(){new Thread(){public void run(){while(true){try {sleep(10);} catch (InterruptedException e) {e.printStackTrace();}if(!jumpFlag){}while(true){if(!jumpFlag){break;}if(hit(Dir_Down)){break;}if(y>=358){isGravity=false;}else{isGravity=true;y+=yspeed;}try {sleep(10);} catch (InterruptedException e) {e.printStackTrace();}}}}}.start();}}[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.ImageIcon;//键盘按下监听类public class KeyListener extends KeyAdapter{public GameFrame gf;public boolean jumpFlag=true;public KeyListener(GameFrame gf) {this.gf=gf;}//键盘监听public void keyPressed(KeyEvent e) {int code = e.getKeyCode();switch(code){//向右走case 39:gf.mario.right=true;break;//向左走case 37:gf.mario.left=true;break;case 66:addBoom();break;//向上跳case 74:gf.mario.up=true;break;}}//添加子弹public void addBoom() {Boom b = new Boom(gf.mario.x,gf.mario.y+5,10);if(gf.mario.left) b.speed=-2;if(gf.mario.right) b.speed=2;gf.boomList.add(b);}//键盘释放监听public void keyReleased(KeyEvent e) {int code=e.getKeyCode();if(code==39){gf.mario.right=false;gf.mario.img=new ImageIcon("image/mari1.png").getImage();}if(code==37){gf.mario.left=false;gf.mario.img=new ImageIcon("image/mari_left1.png").getImage();}if(code==74){gf.mario.up=false;}}}[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario;import java.awt.Image;import javax.swing.ImageIcon;public class BackgroundImage {public int x=0,y=0;public int ox=0,oy=0;public Image img=new ImageIcon("image/startBack.jpg").getImage();}[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario;//子弹类public class Boom {//子弹的坐标,大小,速度int x,y;int width;int speed=1;public Boom(int x, int y, int width) {super();this.x = x;this.y = y;this.width = width;}}主函数类,作为整个程序的入口[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario;public class Test {//主函数,程序入口public static void main(String[] args) throws Exception {GameFrame gf = new GameFrame();gf.initFrame();}}com.huaxin.enery包:[java] view plain copy print?在CODE上查看代码片派生到我的代码片<span style="color:#333333;">package com.huaxin.enery;import java.awt.Image;//障碍物的抽象父类public abstract class Enery {public int x,y;public int width,height;public Image img;public Enery(int x, int y, int width, int height,Image img) {this.x = x;this.y = y;this.width = width;this.height = height;this.img=img;}}</span><span style="color:#ff0000;"></span>[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.enery;import java.awt.Image;//金币类public class Coin extends Enery{public Coin(int x, int y, int width, int height, Image img) {super(x, y, width, height, img);}}[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.enery;import java.awt.Image;//砖头类public class Brick extends Enery {public Brick(int x, int y, int width, int height, Image img) {super(x, y, h, height, img);}}[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.enery;import java.awt.Image;//水管类public class Pipe extends Enery {public Pipe(int x, int y, int width, int height, Image img) {super(x, y, width, height, img);}}com.huaxin.util包:[java] view plain copy print?在CODE上查看代码片派生到我的代码片package Util;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStreamReader;import java.util.ArrayList;//地图配置类public class Map {//数据容器public ArrayList<String> list = new ArrayList<String>();public int [][] map=null;public int[][] readMap() throws Exception {// 构造文件输入流FileInputStream fis = new FileInputStream("map.txt");InputStreamReader isr = new InputStreamReader(fis);BufferedReader br = new BufferedReader(isr);//直接读取一行数据String value =br.readLine();while(value!=null){//将读取到的一行数据加入到容器中list.add(value);value =br.readLine();}br.close();//得到多少行多少列int row=list.size();int cloum=0;for (int i = 0; i < 1; i++) {String str=list.get(i);String [] values=str.split(",");cloum=values.length;}map = new int [row][cloum];//将读到的字符创转换成整数,并赋值给二位数组mapfor (int i = 0; i < list.size(); i++) {String str=list.get(i);String [] values=str.split(",");for (int j = 0; j < values.length; j++) {map[i][j]=Integer.parseInt(values[j]);}}return map;}}五、项目总结:这个小项目看起来挺简单的,其实里面也有很多功能需要仔细去思考的,以前觉得游戏人物在窗体走的时候,觉得一直是人在走,其实,人物走到中间或者走到某一位置的时候,人物已经是在原地踏步了,取而代之的是背后那张长度很长的背景的图片在移动,任务的左右移动相对而言比较简答实现,跳跃功能就不是那么简单了,需要永达线程,跟后面障碍物碰撞检测又有关系,当没有碰到的时候,人物要往下掉,一不注意就会出现各种bug,比如,可以一直跳,在跳的同时还能再跳,还有就是下降可能不会落地面的同一高度,可能会高于地面的高度,可能会低于地面的高度;障碍物的添加,我们是通过配置地图的方式,配置地图有时通过读入文件的操作,大致的原理是将后面的那张的背景图片划分成很多的小格子,将这些小格子用代码转换为二位数组,二维数组可以存入不同数字,代表不同的障碍物,通过操作文件就可以轻易配置地图;首先通过文件输入流将文件数据读入,将字符转换为数字,并存储在二维数组中,后面,通过遍历二维数组的不同位置的值,在相应的格子填充相应的障碍物;地图就这样配置好了;觉得配地图很炫酷,因为以前有位学长在演示的时候,觉得好难,现在自己掌握了觉得也不是很难了,当然了,这里离不开老师的指导;碰撞检测类似之前小球的碰撞检测,这里主要需要处理碰撞之后的一些逻辑,如何避免一直碰撞(人物贴着障碍物不能动)等;发射子弹的话,也比较简单了,利用容器装子弹,不过需要注意的是要及时将容器中子弹移除,不然内存会很快被吃完的;。
超级玛丽
super(image,width,height);
this.state= state;
stateOld= state;
this.x= x;
this.y= y;
this.vx= vx;
this.vy= vy;
}
}
packagecom.game.marry;
importjavax.microedition.lcdui.game.Sprite;
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
//启动运行
protected void startApp() throws MIDletStateChangeException {
Thread th = new Thread(this);
th.start();
}
public void run()
{
while(outTrue == false)
{
try{
Thread.sleep(1500);
}catch(InterruptedException e){}
}
notifyDestroyed();
{
try{
bambooImage= Image.createImage("/bamboo.png");
cloudImage= Image.createImage("/cloud.png");
coinImage= Image.createImage("/coin.png");
手机游戏的开发—超级玛丽的设计与实现JBUILDER
手机游戏的开发—超级玛丽的设计与实现JBUILDER 目录前言 1 1 相关技术介绍 2 1.1 J2ME介绍 2 1.2 手机游戏应具有的特征 2 1.3 开发环境 3 1.4 JAVA语言特点 3 1.5 关于JBUILDER xx 4 1.6 关于WIRELESS TOOL KIT 5 1.7 JAVA APPICATION MANAGER 5 1.8 本章小结 5 2 需求分析 6 2.1 功能需求分析 6 2.2 可行性研究 6 3 概要设计 8 3.1 本程序需要解决的主要技术问题 8 3.2 游戏的总体架构 8 3.3 程序的类结构 10 3.5 CANVAS类 13 3.6 GRAPHICS类 13 3.7 MIDP1.0技术下的绘制背景技术 13 3.8 MIDP2.0新增的GAMECANVAS包 14 3.9 PNG图片格式 14 3.10 内存检测器 15 3.11 关于混淆器 15 3.12 本章小结 15 4 详细设计及实现 16 4.1 地图绘制的实现 16 4.2 碰撞检测 17 4.3 键控处理的实现 19 4.4 主要人物玛丽的实现 21 4.5 乌龟的实现 26 4.6 菜单的实现 26 4.7 游戏的主CANVAS类的实现 28 4.8 本章小结 32 5 游戏的优化及注意点 33 5.1 游戏中屏幕绘制技术的优化 33 5.2 游戏中新对象的产生和垃圾收集 33 5.3 游戏优化中时间、空间的权衡 34 5.4 游戏中关于来电挂起和恢复处理的注意点 34 5.5 本章小结 35 6 总结36 6.1 小结 36 6.2 感想 36 参考文献 37 致谢 38手机游戏开发—超级玛丽的设计与实现摘要:在现在这个时候,手机中软件技术出现前所未有的成熟,各种工具都已经开始简单化并逐步完善,无线终端性能在不断提高,运行速度加快,传输能力加强,内存的增大,色彩、清晰度更高,终端价格的下降,以及彩屏手机用户的增长,使得中国手机游戏市场空前繁荣。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1、用例图 14 1.2、用例叙述 14 2、时序图图 15 3、类图 18
四、概要设计说明书 19 1.引言 19
1.1编写目的 19 1.2项目背景 19 1.3定义 19 1.4参考资料 20 2.任务概述 20 2.1目标 20 2.2运行环境 20 2.3需求概述 20 2.4条件与限制 20 3.总体设计 20 3.1处理流程 20 3.2总体结构和模块外部设计 20 3.3功能分配 21 4.接口设计 22 4.1外部接口 22 4.2内部接口 22 5.数据结构设计 23 5.1逻辑结构设计 23 5.2物理结构设计 23 5.3数据结构与程序的关系 23 6.运行设计 23 6.1运行模块的组合 23 6.2运行时间 23 7.出错处理设计 23 7.1出错输出信息 23 7.2出错处理对策 23
2.2目标
开发出一套用于在Android平台开发的游戏,为广大游戏爱好者提
供方便,感受在手机平台上马里奥的逼真形象。并通过此次游戏开发过 程全面提高游戏爱好的兴趣。
2.3条件、假定和限制
2.3.1 硬件条件:普通基于Intel或AMD的CPU的PC机。 2.3.2 运行环境: 基于Android手机操作系统的手机用户可利用的资源为
口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系
统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于
2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已
经发布。
Android手机操作系统:Android是一种以Linux为基础的开放源码,
五、详细设计说明书 24 1.引言 24
1.1编写目的 24 1.2项目背景 24 1.3定义 24 1.4参考资料 24 2.总体设计 24
2.1需求概述 24 2.2软件结构 25 3.程序描述 25 3.1登录模块 25 3.2测试要点 26
一、可行性分析
1.引言
1.1编写目的
可行性研究的目的是为了对问题进行研究,以最小的代价在最短的 时间内确定问题是否可解。
5.其它需求 13 5.1安全性要求 13 5.2一致性要求 13 5.3完整性要求 13
6.运行需求 13 6.1用户界面 13 6.2硬件接口 13 6.3软件接口 13
6.4故障处理………...…………………………………………………………………… 13 7.其它需求 14
三、面向对象分析 14 1、用例图 14
2.5决定可行性的主要因素
技术可行:现有技术可以承担开发任务,且小组成员中已有掌握JAVA技
术的人员。
3.对现有系统的分析
3.3费用支出
3.4人员
所需人员的专业技术类别和数量:java编程技术类别1人、整体开发架构技术 类别1人、图形处理技术类别1人
3.5局限性
目前市场存在的超级马里奥游戏马里奥的形象不逼真,从用户的角 度来看基于手机平台的超级马里奥游戏可能更刺激,可以随时随地感受 游戏的魅力。
操作系统主要使用于便携设备。目前尚未有统一中文名称,中国大陆地
区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初
由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并
拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及
其他领域上。
2010年末数据显示,仅正式推出两年的操作系统的
4.所建议技术可行性分析
4.1对系统的简要描述
可以完成基本的前进、后退、跳跃、顶金币、吃蘑菇并变大,发子弹打 怪物等功能 。所建议的系统是基于Android手机系统的平台,结合JAVA 技术而建立的信息搜索平台。掌上操作,随处都可以玩,有利于提高系 统的效率。能实现数据交互,能够给广大游戏爱好者带来较多便利,打 发无聊的时间。
4.3.4对系统运行的影响
提高游戏在系统上的运行速度。
4.3.5对运行环境的影响
减少老版游戏在运行环境上对资源的利用率,丰富了Android系统的软 件应用范围及案例。
4.5技术可行性评价
4.5.1 在限制条件下,功能目标是否能达到:可以达到 4.5.2 利用现有技术,功能目标能否达到:可以达到 4.5.3 对开发人员数量的和质量的要求,并说明能否满足:开发人员必须
2.任务概述
2.1目标
超级马里奥游戏平台是一款基于Android平台的游戏。此平台的目 的在于给用户提供一个放松娱乐。
2.2运行环境
操作系统:Microsoft Windows 7 支持环境:Android手机操作系统 数 据 库:SQLite
2.3条件与限制
由于Java语言本身的限制,该系统采用TCP/IP协议,程序运行速度 比其他语言的程序略低。
本文档将供开发组团队成员查阅和使用,其中包括系统设计人员、 编程人员、测试人员。
1.2项目背景
目前游戏在休闲游戏市场上有着很大份额,给用户提供一个放松娱 乐,也是目前大多数青年娱乐的主要方式。超级玛丽游戏是适合青年用 户使用的具有开发智力的游戏。在当今如此盛行网络游戏的时代,益智 类游戏不能不说是一个绝好的切入点。与一般传统的角色扮演类游戏相 比,超级玛丽游戏的开发更适合于手机平台智力游戏的发展趋势,从另 一方面更可以使如今的用户远离一些血腥暴力游戏所带来的危害。益智 休闲类游戏不仅满足用户对游戏的需要,也是一种促进智力发展的手 段。
目录
一、可行性分析 5 1.引言 5
1.1编写目的 5 1.2项目背景 5 1.3定义 5 1.4参考资料 6 2. 可行性研究的前提 6 2.1要求 6 2.2目标 6 2.3条件、假定和限制 7 2.4可行性研究方法 7 2.5决定可行性的主要因素 7 3.对现有系统的分析 7 3.1工作负荷 7 3.2费用支出 7 3.3人员 7 3.5 局限性 …...…………………………………………………………………………..…7 4.所建议技术可行性分析 8 4.1对系统的简要描述 8 4.2与现有系统比较的优越性 8 4.3采用建议系统可能带来的影响 8 4.5技术可行性评价 9 5.社会因素可行性分析 9 5.1法律因素 9 5.2用户使用可行性 9 6.其他可供选择的方案 10
里奥”。
1.4参考资料
1.张海藩.软件工程导论(第五版),北京:清华大学出版社, 2008.2
2.可行性研究的前提
2.1要求
2.1.1 功能:实现主人公马里奥的前进、跳跃、顶金币、吃蘑菇并变 大,发子弹打怪物等功能。 2.1.2 性能: (1) 系统处理的准确性和及时性。系统处理的准确性和及时性是系统 的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可 能承受的工作量。响应时间,更新处理时间都比较迅速,完全满足用户 要求。一般操作的响应时间应在2-3s内,对数据的导入、导出的操作也 应在可接受的时间内完成。
4.功能需求
4.1功能划分
前进功能模块; 后退功能模块; 跳跃功能模块; 顶金币加分功能模块; 吃蘑菇变大功能模块; 吃花打怪物功能模块;
4.2功能描述
主人公马里奥前进,当遇到金币时按跳跃键跳起金币消失,金币的 个数加一;当遇到空中跳台时可跳跃上去,也可继续前进;当遇到红蘑 菇时主人公变大并且生命条数加一;当遇到花时主人公可发子弹打怪 物;当主人公遇到坑时跳过去则过关否则就game over。此为第一关的内 容。
学校图书馆料,我们指导老师能力较强同项目开发限制:要在给 定的经费内完系统投入使用的最晚终端打印出。
2.4可行性研究方法
2.4.1 调查方法:填写报告的,上网收集资料翻阅相关书籍 。 2.4.2 系统评价角度:功能的齐全程,操作可行性界面友好完成软件 系统
评价角度:功能的齐全程,操作可行性界面友好完成软件 系统的 实际经费开销情况,完成软终端打印
要会java语言和Android方面的知识。 4.5.4 在规定的期限内,开发能否完成:可以完成
5.所建议系统经济可行性分析
5.1支出
寝室电力资源消耗及人员时间消耗。
5.2收益/投资比
在游戏运转后不久,游戏的效益就可以体现出来:低成本、高效率、响 应时间短都将成为本系统立足于长期发展的支柱,其收益很快会超过支 出,并逐渐实现盈。
5.性能需求
5.1数据精确度
7.其他可供选择的方案
经过全方位的可行性研究报告表明,此系统投资效益比较大,技术、经 济、操作都有可行性,可以进行开发,所以可以立即开始进行。
二、需求分析
1.引言
1.1编写目的
本需求规格文档的目的是说明超级玛丽游戏平台最终需要满足的条 件和限制,为进一步设计和实现提供依据。本文档将用户的需求用文字 的形式固定下来,是与用户沟通的成果,也是用户验收项目时的参考。
Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的
智能手机平台。Android的主要竞争对手是苹果的IOS,微软的WP7以及
RIM的Blackberry OS。
1.4参考资料
佘志龙《Google Android SDK开发范例大全》(第一版)人民邮电出版 社 2010.6.1
1.3定义
SQLite:是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,
它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了
它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存