版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXX学院毕业设计(论文)论文题目 J2ME弹球游戏设计 院 (系) 专 业 计算机科学与技术 学生姓名 学 号 指导教师 年 月 日J2ME弹球游戏设计摘 要移动开发已成为开发人员社区最流行词之一。 移动无线游戏互动游戏,包括 和个人数字助理PDA个人数码助理,日益普及的移动游戏也是需求日益增长。 相对于传统桌面电脑游戏和电视游戏、无线游戏非常不同,如有限界面的大小,内存空间的张力诸多限制。 手持游戏,在较近的形式,但部署的无线移动设备的游戏很特殊,不同公司的移动 ,无论外观、接口的大小,关键方式等不同,造成额外的复杂性。 J2ME java 2微型版近年来,与各种设备,特别是移动通信设备的
2、快速发展和新开发技术的诞生。 它定位在消费电子产品应用、设备、智能化、多样化,并提供一种革命性的解决方案,其编写一次,跑的Java功能,提高发展效率。 J2ME技术设备平台不统一的适当使用带到某程度上,以消除矛盾。 J2ME技术和结构分析程序和函数。关键词: 游戏;J2ME;弹球J2ME Pinball game designAbstractMobile development has become one of the most popular words of the developer community. Mobile wireless game interactive games,
3、including mobile phones and personal digital assistants PDA personal digital assistant, the growing popularity of mobile gaming is also growing demand. Very different compared to the traditional desktop computer games and video games, wireless games, such as limited the size of the interface, the me
4、mory space of tension to many limitations. Hand-held games, closer to the form, but the deployment of wireless mobile devices of the game is very special, different mobile phone, regardless of appearance, the size of the interface, the key way, resulting in additional complexity. The J2ME the java 2
5、 micro edition in recent years, with a variety of equipment, especially the birth of the rapid development of mobile communications equipment and a newly developed technology. It is positioned in the consumer electronics applications, equipment, intelligent, diverse, and provides a revolutionary sol
6、ution, its write once, run the Java function, improve development efficiency. The appropriate use of the J2ME technology and equipment is not a unified platform is brought to a certain extent, to eliminate contradictions. J2ME technology and structural analysis programs and functionsKeywords: game;J
7、2ME;pinball 目 录 TOC o 1-3 h z u HYPERLINK l _Toc326621795 第1章 课题背景 PAGEREF _Toc326621795 h 1 HYPERLINK l _Toc326621796 引言 PAGEREF _Toc326621796 h 1 HYPERLINK l _Toc326621797 主要研究内容 PAGEREF _Toc326621797 h 1 HYPERLINK l _Toc326621798 研究的目的和意义 PAGEREF _Toc326621798 h 2 HYPERLINK l _Toc326621799 第2章 相关
8、理论和方法 PAGEREF _Toc326621799 h 1 HYPERLINK l _Toc326621800 Java简介 PAGEREF _Toc326621800 h 1 HYPERLINK l _Toc326621801 Java概述 PAGEREF _Toc326621801 h 1 HYPERLINK l _Toc326621802 Java语言的特点 PAGEREF _Toc326621802 h 1 HYPERLINK l _Toc326621803 J2ME简介 PAGEREF _Toc326621803 h 2 HYPERLINK l _Toc326621804 J2M
9、E概述 PAGEREF _Toc326621804 h 2 HYPERLINK l _Toc326621805 J2ME的体系结构和配置 PAGEREF _Toc326621805 h 3 HYPERLINK l _Toc326621806 第3章 关于Eclipse PAGEREF _Toc326621806 h 1 HYPERLINK l _Toc326621807 Eclipse简介 PAGEREF _Toc326621807 h 1 HYPERLINK l _Toc326621808 Eclipse概述 PAGEREF _Toc326621808 h 1 HYPERLINK l _To
10、c326621809 第4章 游戏的分析与设计 PAGEREF _Toc326621809 h 1 HYPERLINK l _Toc326621810 开发的环境和工具选择 PAGEREF _Toc326621810 h 1 HYPERLINK l _Toc326621811 需求分析 PAGEREF _Toc326621811 h 3 HYPERLINK l _Toc326621812 概要设计 PAGEREF _Toc326621812 h 5 HYPERLINK l _Toc326621813 游戏的关键问题 PAGEREF _Toc326621813 h 6 HYPERLINK l _
11、Toc326621814 第5章 游戏的实现 PAGEREF _Toc326621814 h 1 HYPERLINK l _Toc326621815 功能详细及代码实现 PAGEREF _Toc326621815 h 1 HYPERLINK l _Toc326621816 主类 PAGEREF _Toc326621816 h 1 HYPERLINK l _Toc326621817 欢迎界面 PAGEREF _Toc326621817 h 2 HYPERLINK l _Toc326621818 游戏中的菜单类 PAGEREF _Toc326621818 h 4 HYPERLINK l _Toc3
12、26621819 游戏的配置 PAGEREF _Toc326621819 h 5 HYPERLINK l _Toc326621820 游戏中的大神来助(帮助功能) PAGEREF _Toc326621820 h 6 HYPERLINK l _Toc326621821 小球 PAGEREF _Toc326621821 h 6 HYPERLINK l _Toc326621822 碰撞检测 PAGEREF _Toc326621822 h 7 HYPERLINK l _Toc326621823 主界面 PAGEREF _Toc326621823 h 8 HYPERLINK l _Toc32662182
13、4 游戏的引擎 PAGEREF _Toc326621824 h 8 HYPERLINK l _Toc326621825 第6章 游戏的运行测试 PAGEREF _Toc326621825 h 1 HYPERLINK l _Toc326621826 游戏的运行和测试 PAGEREF _Toc326621826 h 1 HYPERLINK l _Toc326621827 发现的问题及解决情况 PAGEREF _Toc326621827 h 1 HYPERLINK l _Toc326621828 结 论 PAGEREF _Toc326621828 h 1 HYPERLINK l _Toc326621
14、829 致 谢 PAGEREF _Toc326621829 h 1 HYPERLINK l _Toc326621830 参 考 文 献 PAGEREF _Toc326621830 h 1 HYPERLINK l _Toc326621831 附录A 中文翻译 PAGEREF _Toc326621831 h 1 HYPERLINK l _Toc326621832 附录B 英文原文 PAGEREF _Toc326621832 h 1 课题背景引言目前,无线通信已成为增长最快的国家之一,最尖端的通信。 越来越多的 和其他无线通信设备成为大多数市民的工作和生活。 在同一时间, 游戏自然成为当今社会的热点
15、问题。 游戏的发展势头,甚至网络游戏相比,有不足。 今天,流行的在线游戏,但很难打破,在此窗体中,游戏开发商和运营商转向 游戏,与真正的3G时代,各种各样的移动互联网接入,无线传输技术的日新月异,更多的 游戏业步入黄金增长期。 随着移动通信技术的快速发展,彩色 的普及,更有趣、更有活力和无穷的 游戏。 游戏视频游戏领域的发展步伐最快的部分,正成为新的宠儿行业,表明市场前景广阔。 一时间,电信运营商、服务提供商,游戏制造商, 厂商和人人都在谈论移动游戏的光明未来。从最早的SMS游戏雅瓦游戏网络游戏, 游戏产业正在形成。 移动游戏市场将很快进入快车道,在所有方面的重大突破和非凡表现。 在面对移动游
16、戏市场的巨大潜力,游戏开发商、运营商、服务提供商和移动终端制造商和其他产业链的参与者开始自己的战斗准备,以便掌握主动。 诺基亚、索尼爱立信、摩托罗拉和其他主要 厂商开始在游戏中提高 的性能,同时仍在开放平台的 操作系统,方便用户享受 游戏业务。 和国内游戏公司如盛大、网易,已经在 游戏开发商的行列中。 新浪、搜狐和其他著名的门户网站,但也有涉足 游戏领域,已开辟了专门的移动游戏频道和列,以及一些其他的游戏网站充分加速 游戏开发的步伐。主要研究内容 游戏的特点是其品种,良好的移动游戏内容和情节的完美结合,也不是可有可无的。 本白皮书旨在研究如何处理游戏的详细信息,实现功能的改进,增加游戏的表现力
17、。 研究的目的和意义80%品牌的 游戏看世界。 品牌游戏主要内容就是西方运营商的主打,而国内 游戏但质量却很令人担忧。 根据控件的网站透露,一旦金融业尖锐地指出,移动游戏市场质量、品牌等游戏星球大战、蝙蝠侠、蜘蛛侠、指环等。 人们更加失望。从 游戏的消费者的角度考虑,国产 移动市场的费用将不得不面对两个问题:首先,消费者可以接受的游戏价格很低,只有3.7元的平均价格为 游戏,虽然越来越多的新用户加入到 游戏的消费力,但令人担忧的是,很少有“回头客”,即使用GPRS用户可以使用三个月内的一些服务,非常少,继续使用。这两个问题的罪魁祸首,本场比赛的质量。 “如果价格低廉的 游戏,这是因为他们是唯一
18、值钱”。因此,根据目前国内的现状, 游戏的质量,已成为发展的瓶颈,让整场 游戏的后续健康发展的道路,我们的运营商已经有一个深刻的反思。基于上述,如何做 游戏的细节和完美的游戏来吸引玩家的关注是必要的。 相关理论和方法Java简介 Java概述Java编程语言的Java是一般术语由Sun Microsystems inc。 在1995年5月和Java平台。 HotJava浏览器的Java实现Java支持Java小程序显示魅力:跨平台,动态Web,互联网计算。 自那以来,Java已被广泛接受和推广互联网的快速发展,常用的浏览器都支持Java小程序。 在另一方面,Java技术的不断更新。 Java语
19、言的特点Java在结束什么样的语言? Java是一种非常优秀的一个简单的面向对象的分布式解释性能可靠的安全性体系结构的中立型便携式多线程的动态语言。1.易懂Java原本是语言设计的集成控制家电,因此必须简单明了。 Java语言的简洁性,主要体现在以下几方面:1。 Java风格类似于C,所以c#程序员都很熟悉。 在某种意义上,Java语言是C和C语言的变体,因此,c#程序员可以快速掌握Java编程技术。 2。 Java放弃C可以容易出现程序错误,例如指针和内存管理。 3。 Java提供丰富的类库。2.面向的是对象面向对象是最重要的Java功能。 Java语言的设计是完全面向对象的,它不支持C语言
20、作为面向过程的编程技术。 Java支持代码的静态和动态样式继承和重用。 从面向对象的特征,Java是类似于SmallTalk,但其他功能,特别是用于分布式计算环境的功能远远超出SmallTalk。3.分开布局方式Java包括子图书馆基于TCP IP协议支持的 和FTP。 因此,Java应用程序通过URL的美德打开和访问网络上的对象,其访问和访问本地电脑文件的系统出奇的相似。 分布式环境,特别是给予非静态内容的互联网是一个不一般蓝图的任务,但Java语法和功能帮助我们轻松实现这个目标。4.健壮Java主观是检验程序在编程译码和运行时的非正确地方。以及类型检验帮助检验出许多开发未成熟程序出现的不对
21、的地方。Java能自我利用内存,降低了内存在极有可能出现错误的地方的可能性。Java当然还有真数组,防止了填满数据的可能性。这些功能极大降低了开发Java应用程序的时间。Java提供Null指针检验数组边界检验异常字节以及代码校验。5.结构方式为中立建立Java作为一个整体网络,Java编译到一个中立的中间文件格式结构。 只要有Java运行时系统的计算机可以执行此中间代码。 现在,Solaris2.4体系结构的Java运行时系统,windows 95和Windows NT Win32系统。 Java源代码被编译到一个高的,并独立于机器的字节码格式语言,这种语言的设计从机器上运行的虚拟机中运行调
22、试器实现执行。6.安全可靠两个办法中的Java的安全可以保证。 一方面,在Java语言中,像和释放内存的指针和C功能被删除,以避免非法内存操作。 另一方面,当Java是用于创建浏览器、语言功能和浏览器功能结合起来,使之更安全。 您的机器上,Java语言经过多次测试。 通过代码检查,检查的格式代码段,检测指针操作,对象操作,是否太,并试图更改对象类型。J2ME简介 J2ME概述许多 游戏开发技术,J2ME的快速发展,短时间,支持更多的 、丰富的自然资源发展,很受开发商的欢迎,已经成为主流,常见的移动应用开发技术,广泛应用于实际的发展过程。 应用软件开发的发展作为一个新兴领域,人才以及产品的需求仍
23、远未得到满足,移动应用程序开发技术已成为最受欢迎的现在,一个发展前景广阔的技术。J2ME,即java 2的微型版,太阳Java2平台,微型版java 2平台,其中的一个版本,J2SE,J2EE说。 J2ME是高度优化的Java运行时环境,并应用于大量的消费电子设备,如移动 、 的 ,屏幕 的可视 、数字机顶盒、数字机顶盒、汽车导航系统的汽车导航系统等。 ,但也广泛使用的移动通信设备,如移动 、双向寻呼机、智能卡、个人组织者和掌上电脑掌上电脑记事本。 J2ME技术移植到Java语言和平台独立的小型电子设备共享应用程序的功能,使移动无线设备。 J2ME的体系结构和配置1.J2ME体系的结构所要求的
24、那种灵活性,以便支持资源约束的设备,并且可以自定义部署,这是J2ME的体系结构设计为模块化和可扩展。 J2ME技术在定义的模块化和可扩展性模型中的一个完整的应用程序正在运行,软件层模型中基于主机操作系统。图2-1体系结构J2ME系统的总体结构:定义配置Java虚拟机顶设备的主机操作系统上运行,构成整个平台的基础上。 配置提供了基本的语言功能,设备的特殊功能的配置文件提供了API和广泛的类库。 应用程序需要配置的经营环境和至少一个配置文件,多个配置文件可以共存的,可以叠加。Java虚拟机层Java虚拟机层:Java虚拟机的一种实现,这是为特定设备自定义的主机操作系统,支持特定的J2ME配置。层配
25、置:配置层定义的最低组Java类库中可用的Java虚拟机功能与特定类别的设备。 某程度上,通用部件和库配置定义Java平台的功能,这些功能和库的开发人员可以承担属于特定类别的所有设备上都可用。简表面层:框架层定义了最低的应用程序编程接口API特定系列中可用的设备。 框架,以实现特定的配置。 是写给一个特定的应用框架,因此可以移植到框架支持的任何设备。 设备可以支持多个帧。 用户和应用程序供应商看到的是这层。2.J2ME配置J2ME围绕一个中心配置的组件。 它们用于消费电子产品和嵌入式设备的特殊类。 J2ME定义两个配置,这两个种配置由于不同的计算能力来支持不同的设备对象。连接受限设备配置CLD
26、C连接受限设备配置:此配置定义Java应用程序编程接口,支持手持设备、技术。 例如 、pda等。 疾病控制连接的设备配置连接的设备配置:配置应用程序编程接口支持插入墙设备、机顶盒等。 关于EclipseEclipse简介Eclipse是IBM下一代视觉年龄的替代它集成了发展环境,但其目标不仅仅是一个专门的IDE环境开发Eclipse体系结构下的Java程序,通过发展插头项,它可以扩展到任何languagecan发展成为绘图工具的图片。 Eclipse C语言发展中的作用插头项。 Eclipse是一个开源项目,任何人都可以下载Eclipse源代码,并在这个基础上发展自己的插头项功能。 这是未来只
27、要人民需要,那里将建在月蚀、脚本语言和其他语言to发展插头项。 通过发展新的插头项扩展现有的插头项功能,如Tomcat现有的Java开发环境中的服务器插件。 无限可扩展,具有统一的外观、操作和系统资源管理,这就是它的潜力。图3-1 EclipseEclipse概述 Eclipse项目分成3个子项目: 平台-Platform 开发工具箱-Java Development Toolkit(JDT) 外挂开发环境-Plug-in Development Environment(PDE)。 Eclipse版本介绍 释出版本(Release builds) 稳定版本(Stable builds) 整合版
28、本(Integration builds) 当日最新版(Nightly builds) 跨语言、跨平台性 大部分人认为Eclipse是一个Java IDE中,但是,它集成了JDT下载蚀,PDE。 然而,Eclipse工具平台。 JDT其实是Eclipse中添加产品,即插头项。 Eclipse本身实际上是指Eclipse平台的Eclipse平台,除了Java工具还可以实现下载,它还提供了多种工具来支持平台本身是相当小的软件。 如果要开发的Java程序,使用Eclipse JDT插件程序附带的。 如果希望程序在其他languages发展,需要把其他的插头项,如CDT c#开发工具包可以在C C程序
29、开发。 计算机语言的日食would的人类语言。 可以使用相同的插件机制,增加对不同languages的支持,使用特殊的插件程序,调用插件片段。 IBM捐赠中文繁体和简体语言包的支持,法语、德语、意大利语、日语、朝鲜语、巴西葡萄牙语和西班牙语。 Eclipse是使用Java编写,理论应该在任何平台上执行。 但严格来说,Eclipse不是跨平台的,因为它使用本机的图形操作平台建设。 因此,SWT标准微件工具包移植到平台,Eclipse平台上可以执行。 但现实不是大问题,因为外使用已被移植到了一些共同的平台,包括Windows,Linux主题LinuxGTK2,Solaris QNX,AIX,与Ma
30、c OS X的hp-ux。2.Eclipse 平台 Eclipse平台是一个集成机制的目的为提供各种软件开发工具,这些工具将成为Eclipse插件,必须扩展选项,再重新启动是有用的平台。 Eclipse美的设计是这一切都是插件,除了核心的底部。 这插件旨在使Eclipse具有强大的可扩展性,但更重要的是这个平台的共同合作提供了一个很明确的机制,允许各种插头项通过扩展点和贡献,因此新功能,可以轻松地和无缝联接平台。 概观 首次运行Eclipse,它将建立一个工作区的目录在Eclipse目录中,默认情况下,此目录中的所有工作将会继续存在。 备份工作目录,此目录备份行。 Eclipse的升级到新版本
31、,只要此目录复制过去。 要看新版本,发行说明,以确保它支持以前版本的工作区;不支持旧区的子目录复制到新的日食目录可以。 所有的个人设置将被保留。图3-2选择工作区 架构 Eclipse平台由几个组件:平台的核心内核,工作台,工作区,团队电车组件和组件描述帮助。图3-3结构 项目与资料夹 如果您要手动操作文件、复制或查看文件大小,你必须知道文件的放置位置。 操作系统更改本机文件系统,发生在各种操作系统需要符合程序的运作。 要解决此问题,Eclipse提供了一个抽象级别以上的文件系统。 也就是说,它不使用分层目录包含文件的子目录结构,相反,最高一级的Eclipse项目,在项目文件夹中使用。 默认情
32、况下,该项目对应于工作区的目录下的子目录,和文件夹对应于项目目录下的子目录。 Eclipse项目内的一切基于独立和独立于平台的存在。 平台核心 核心任务是把一切移动,并加载所需的插头项。 当你开始月食时,第一个实现此组件,该组件加载其他插头项。 工作区(workspace) 工作区是负责管理的用户资源,这些资源将被组织到一个或多个,上面。 Eclipse区中的每个项目对应于一个子目录的目录。 每个项目可以包含多个文件和文件夹,每个文件夹通常对应于项目目录下的子目录,但还可以连接到任何目录文件夹中的文件系统。 每个工作区保持低水平的历史,并记录每个资源的变化。 所以我们可以立即恢复更改,请返回到
33、以前保存的状态,在或前几天之前,可能是一天,根据用户设置的历史记录。 这段历史可以最大限度地减少资源丢失的风险。 工作区也有责任通知有关的工具来更改工作区的资源。 项目性质的工具可以标记为一个项目,项目性质,例如,标记为Java项目,必要时,配置代码的项目资源。 工作台(workbench) 当运行Eclipse工作台仅次于核心平台的日食在最基本的组件中时,Eclipse工作台工作台的基本接口将遇到的,在启动Eclipse工作台的工作是非常简单的后,主窗口,itdo不知道如何编辑、执行调试,只知道如何查找项目和资源,如文件和文件夹。 如果它不能做它把其他组件,如JDT。图3-4工作台 工作台看
34、起来像操作系统内建的应用程序,可以说Eclipse功能,而且在问题。 工作台本身可以说,日食图形用户界面,它是Eclipse的体系结构的自己的标准图形工具箱工具包外使用的标准构件和JFace一种基于外使用。 外使用将使用操作系统的图形支持,使程序的外观与操作系统。 这和过去的大多数Java程序是非常不同的,即使使用摆动,但还没有这样的。 视图(View) 工作台将会有许多不同种类的内部窗口,叫做查看视图,以及一个特殊窗口编辑器编辑器。 它的名字叫做视图,因为这些是不同角度查看的窗口,可以看到整个项目大纲视图项目中的Java类的近似状态Navigator视图中可以浏览整个项目。 查看支持编辑器,
35、可以提供替代呈现或工作台信息导航。 例如:书签视图将显示所有工作台中的书签,并将伴随着与文件关联的书签名称。 导航器视图将显示项目和其他资源。 查看有两个菜单,首先是要使用鼠标右键单击要查看访问菜单的标签,就可以类似于工作台窗口视图菜单中相同的方式来操作。 调用第二个菜单的下拉菜单的视图,访问方法是单击向下箭头。 视图下拉菜单包含操作通常会被应用到视图中的全部内容,而不是应用于特定视图中显示的项目。 排序和筛选操作通常可以在视图下拉菜单中找到。图3-5视图自定义表格是使用窗口重置的观点菜单的好时机。 重置操作将布局初始状态的还原过程。 选择一个视图窗口放映视图菜单以显示它。 现场确定必要的视图
36、,它将视图显示在放映视图子菜单。 选择显示视图子菜单底部的其他.。 ,你可以使用其他视图。图3-6其他视图 游戏的分析与设计 开发的环境和工具选择本游戏主要用的是J2ME通用的开发工具,能够开发运行在所有支持J2ME技术的 上的程序,开发环境和工具如下:操作系统: Microsoft Windows XP程序语言: Java 2开发包: Java(TM) 2 Standard Edition (5.0)Sun Micro. J2MEIDE:图4-1 J2ME虚拟机图4-2 J2ME虚拟机图4-3 Eclipse图4-4 Eclipse登陆界面 需求分析弹球游戏,休闲游戏类。在游戏中,玩家可以控
37、制滑板移动屏幕上通过键盘,赶上和改变屏幕上的球反弹。模型在球的飞行,从屏幕中心用户按Selecte关键的时候,它会出现在屏幕上的移动镜面反射,小挡板提前到墙壁或屏幕前实施拦截运行时球的运动控制,预判拦截球,要求球员在小球反弹到隧道深处前,使用键,以便它可以反弹,每个成功拦截,加1分,如果不能成功拦截游戏失败。图4-5游戏运行时界面1.游戏主菜单游戏容易理解菜单设计,并允许玩家快速进入游戏。 与菜单播放机可以清楚地知道哪些功能,以及哪些功能和可以玩的游戏,然后迅速了解游戏。 游戏主要功能的菜单:选择键或数字键5开始游戏,数字键上的数字键左下数字键,对数字键退出比赛。 在球员选择开始冒险进入主要的
38、游戏界面;周围的挡板和移动时,选择,;选择退隐江湖将退出程序。图4-6选择界面图4-7欢迎界面2.游戏的关卡设计一般而言,游戏级别设计相关的整个设计游戏的成功与否。 设计级别,来满足很多,既不太简单也不太困难,否则你会失去大量的球员参加。 玩弹球弹跳速度和难度框设置检查站弹球炸弹早框中,玩穿越程度越高困难越大。 由于为了达到简单的游戏效果,所以这个节目通关时,自动跳到下一关功能,如果没有通过则重新开始。3.分数统计游戏得分统计系统是吸引关键的球员之一。 很多人玩游戏,不希望看到比赛的最后结果,以便获得高分。 比赛的进程,显示当前屏幕左上角得分。图4-8分数统计概要设计游戏的全过程由操作整个游戏
39、操作开关切换过程包括:进入菜单界面,游戏界面游戏主人流程图图所示:图4-9流程图游戏的关键问题1.对滑板的移动控制滑板是游戏的关键之一,滑板游戏过程中通过移动捕捉线和更改球的弹跳,通过键盘发送的控制消息。 由于滑板移动的方向,所以要为响应函数的箭头键。 滑板移动过程中,还需要检测的滑板的位置,滑板不会被移动到屏幕。2.弹球的弹跳路线主要是弹球游戏,你需要实现自我绘制的。 此外,一个很重要的问题是产生弹球反弹行。 线生成算法还需要确保可以不会产生连续的同一行,否则将会有一个来回弹跳的大理石在一个地方,造成乒乓球现象,他们失去了原来的游戏的意义。3.碰撞检测游戏有一个地方遇到碰撞的问题:小球和滑板
40、和壁面碰撞。 小球和滑板和壁面碰撞的反弹球。 自然的碰撞检测碰撞检测的碰撞过程,最简单的方法是使用类。 使用类的另一个优势是从画功能已经封装对象的类,不同类型的对象只需要重写函数可以实现自己画的方法,大大简化了程序的执行过程。 游戏的实现功能详细及代码实现本游戏使用游戏引擎的游戏主机的控制流。 游戏界面游戏引擎是一个属性,游戏运行的游戏引擎为核心。 在游戏运行过程中发动机不断更新状态和状态更改显示在屏幕上,以便获得所有看到的比赛。 图5-1主界面主类 图5-2游戏主界面为每个MIDlet主类,该类必须继承MIDlet类,它控制整个计划的运作。类可以管理程序的创建,启动,暂停,函数结束。该方案的
41、主要类PinbalMIDlet。 PinbalMIDlet主要包括一个构造PinbalMIDlet()时,starApp()的pausApp()的destryApp和一些自定义的方法。其中的构造PinbalMIDlet()用于创建游戏菜单对象,并调用可显示seturret()设置当前显示的菜单的方法;在startApp()方法,以确定起始变量,如果属实,创建的主要游戏接口对象屏幕屏幕=新的屏幕(这)和创建引擎对象发动机=新引擎(屏幕),发动机的对象绑定到主界面,然后的呼叫seturret()方法来显示主接口;的pauseApp()方法被调用时,比赛暂停。的destryApp方法被调用时,程序结
42、束。自定义的方法:NewGame()方法设置的变量开始进入游戏主界面的“=”false,然后调用的starApp()方法;设置()方法调用setCurrent()方法创建一个对象的新设置,并设置它为当前显示的; (的destryApp(true)方法调用主类)的方法,ShowMainMenu()方法,并设置()以同样的方式; exit()方法退出程序。图5-3可选择的选择界面欢迎界面欢迎屏幕从一个继承Canvas类来实现启动画面类。在构造函数实现图5-4欢迎的界面在PinbalMIDlet对象的MIDlet的参数传递给构造主类this.midlet= midle方法调用的setFulScree
43、nMode一套全屏幕的照片,然后Image.createImage(“/ wel。png”)加载图像。除了构造函数,启动画面类还定义了一个按钮响应方法的kePressed方法,调用主的类ShowMainMenu(),当玩家按任意键进入游戏主菜单。代码如下:class StartScreen extends Canvasprivate final PinbalMIDlet midlet;private Image splashImge;public StarScreen(PinbalMIDlet midlet)this.midlet=midlet;setFulScreenMode(true);t
44、ry Image(/wel.png);intln(纯白界面!);游戏中的菜单类图5-5游戏菜单中的帮助菜单MainMenu类定义了一个String数组MainMenu中添加的菜单接口,在其构造数组赋值:MainMenu的0=“开始冒险”;MainMenu的1 =“配置”;MainMenu的2=“大神来助”;MainMenu的3=“退隐江湖”;构造函数定义为0整数menuIdx分配,反过来实例化一个Thread对象,并交换其start()方法,使线程。球员按住向上或向下的keyPressed(INT代码)方法,在的keyressed(代码)函数整数变量menIndex相应减一加一,在相应的pai
45、nt()的功能menIndex平局选项被选中。当menIdx=0,请进入游戏主的类NewGame()方法;帮助时menIdx= 2时,呼吁帮助进入游戏的主类()方法设置()方法的menuIdx= 1时,调用主类的游戏设置界面;接口; menuIdx= 3,调用类出口的主要()方法退出程序。图5-6选择退隐江湖退出程序代码如下:public Settings( PinballMIDlet midlet ) super(配置);this.midlet=midlet;ok = new Command(确定, Command.OK, 1);String a = 开,关;String b = 三等奖,
46、二等奖, 一等奖, 特等奖;游戏的配置该类Setings继承了Form并且能完成监听接口CommadListener。用此来显示一个Form,玩家可以设置游戏声音的开/关和进行提前选关,当完成相应所选的关卡后有相应奖励。图5-7配置中的界面设置类定义了两个变量的命令确定和ChoicGroup类的声音,水平。 OK =新的命令构造的声明(“确定”,Commad.OK,1)建立确定的命令和表格之间的关联,然后调用setCommadListener()命令,以表格的CommadListener副定义的字符串 A =“开放”和“关闭”的String =“三等奖”,“二等奖”,“一等奖”,“特等奖”,然
47、后分别实例ChoicGroup类,并最终调用的append(),并通过ChoiceGroup添加到窗体。 commadAction()方法的命令监听器,当commadaction= OK,调用主的类ShowMainMenu()方法返回游戏主菜单。代码如下:public Settings( PinbalMIDlet midlet ) super(配置);this.midlet=midlet;ok = new Commad(确定, Commad.OK, 1);String a = 开,关;String b = 三等奖, 二等奖, 一等奖, 特等奖;游戏中的大神来助(帮助功能)回到命令的大神来助类中
48、定义一个静态字符串变量TXT=“XX”(其中xxx是大神来助内容的游戏)帮助类的构造,使用背面=新的命令(“回归”,Comma,1)Commad对象的实例,添加一个返回按钮,然后调用addCommad(bak)到形式bak小按钮的CommadListener联接到setCommadListener;使用append(new StringItem(null,TXT)StrigItem的类实例的形式来添加游戏,以帮助内容。在commadAction(commad C,display D)C =返回,调用ShowMainMenu()方法返回到游戏的主菜单。小球从可变计数器的paint(Grahics
49、 g)的绘图功能来周期计数,当+counter=6,counter = 0,然后offest - 偏移量来确定的方向阴影的偏移与gsetColor,(color. getRGB()设置颜色g.fillArc(X,Y,宽度,高度,360)来填补,g.setColor(brighter.getRGB()设置明亮,g.draArc(X2,Y 2,宽度 - 高度 - 4,180+偏移量,-90)画出明亮的效果G.setColor(darkr.getRGB()设置暗,g.draArc(X,Y,宽度,高度0,-90)绘制出黑暗的效果。小球的行为:使用bouncHorizontal()方法来实现的球反弹水平
50、;的使用bouncVertical()方法来实现垂直反弹球,bounce(Sprte other)的方法一般反弹。一般的反弹,以防止“乒乓效应”,你需要一定的概率随机微妙的变化球线反弹。不过,路线的变化幅度不是太大,将严重扭曲或小球弹跳动作。如果的原始移动到左(DX0),反弹反弹2 CX,CY,整数变量的定义bounce(Sprte other)中获得球的位置,决定了球的运动原来的方向,将权利运动(DX);如果球移动到右侧(即DX0),反弹将向左移动(DX );如果原来的球被移动(DY 0),反弹将上升(DY移动)。最后,通过= DX0? -1:1,OY= DY0? -1:1,实现了一定的原始
51、球的方向偏移的概率,以防止“乒乓效应”。碰撞检测自绘制函数paint(Graphics g),盒g.setColor(color.getRGB()设置的颜色,色g.fillRect(X,Y,宽度,高度)填写,然后3D效果图:G.setColor(brighter.getRGB()设置明亮,G.setColor的(brighter.getRGB()和g.drawLine(X,Y,x宽,Y)提请明亮的边界范围,G通过setColor(brighter.of的getRGB()设置的黑暗,g.drawLine(x宽,Y,x的宽度,Y高度)和g.drawLine(X,Y,高度,宽度的X,Y,高度)画一个
52、黑暗的界限。小球和盒子碰撞功能,标准砖时调用clear()方法在包装盒上删除,并返回相应的分数值,而不是标准箱,与球的碰撞时,调用类的moveBrick(非营利组织BrickList ,neighbor.nPos)框框。与球碰撞函数,返回相应的分数值的框框。BrickList类是一个容器类,用于组织和管理框,负责创建框,绘制和消除工作。喜欢的BrickList类的构造实现创建框的方法moveBrick(INT,INT)用来移动框;的方法isClean()是否有用来判断列表框消除。其中还包含了一个非常重要的方式 与球碰撞检测箱。碰撞检测方法checkForCollision的(两个球),X =(
53、ball.getCenterX() - XOFFSET)/(Brick.WIDTH Brick.GAP)来获取相应的框球列位置if语句来判断,如果不是在方块内(X=宽度)返回0;/(Brick.HEIGHT Brick.GAP)对应的方块线位置与y=(ball.getCenterY() - YOFFSET)的小球内框,如果不返回0。然后平方的方法来衡量球和方块碰撞,只用一个盒子碰撞测试,如果发生碰撞,然后返回方块得分。主界面用于绘制游戏界面背景:g.setColor(BACKGROUND)painBackground(Grphics gpainTitle(Graphics gpainBackg
54、round()方法来绘制背景,呼叫painShadow(GRAHICS)绘制阴影发动机,pain(GRPHICS)方法,提请框设置字体格式; g.setFont(Font.getFont(PORTIONAL,Font.STYLE_BOLD,Font.SIZE_LARGE),g.setColor(ThreDColor.black.getRGB()设置字体颜色,g.drawString(“输入字体”,宽度/2 1,身高/ 220 TH_ANCHOR)绘制的字符,然后设置为红色,用同样的方法绘制,显示三维效果的颜色。用于绘制信息的方法paintOver(Grahics G)结束,画的背景下,在调用此
55、方法paintBacground(G)与g.setFont(Font.getFont(PORTIONAL,Font.STYLE_BOLD,Font.SIZE_LARGE)字体格式g.setColor(ThreDColor.black.getRGB()设置颜色,String(“游戏完结!”,宽度/2 1/3,身高 - 10,TH_ANCHOR)绘制字符,然后得出以上的颜色设置为红色的标题,然后重新绘制的字符显示三维效果。 游戏的引擎这个类实现Runable接口。在其构造函数来创建一个屏幕对象传递给引擎,所以它可以控制屏幕对象的游戏抽奖过程。引擎类还包括滑板运动控制,判断和进入游戏状态。屏幕显示板
56、必将在发动机类发动机(屏屏)构造的使用(这)screen.setEngine=新砖(空Scren.width/ 2 - Brick.WIDTH/ 2,Scren.VDIVIDER - 砖对象创建高度 - 4,-1,2)实例化的滑板砖,球新球,(Scren.width/2 - Brick.WIDTH/ 4,board.y - 2* Ball.RADIUS2* Math.max (1 Scren.width/ 80)2* Math.max(1/80,Scren.width)球对象实例创建一个小球,用砖头=新BrickList“(patTitle,PATTERN_WIDTH,-1)实例BrickLi
57、st =新线程(本)的的呼叫runer.start()方法使线程的Thread对象的实例对象的创建中,设置游戏等级nLevel= 0,设置国家nState=标题线程亚军。在游戏的状态,如果发动机类的Run()函数来控制游戏的游戏循环流量:当比赛处于暂停状态;(board_speed 0| | board_speed PX PW 0 &= board.y board.height判断球是否摔倒在地上,如果登陆的玩家损失的生命值(nLives - )比赛结束时,所有球员的生命损失的最终价值(nLives0)(游戏状态nState=过游戏分级nLevel=0)。 游戏的运行测试游戏的运行和测试用自带
58、的 模拟器运行后,游戏的基本功能基本上已经实现,下面来介绍一下测试的情况:作为一个真正的产品要经过单体测试、结合测试和系统测试。单元测试实际上就是编程人员自己对程序模块的功能测试。由实际环境所限,没有Java ,无法架设OTA服务器,因此也只能放弃系统测试。下面主要讲述结合测试。首先是打开wtk2.2的KToolbar对游戏进行打包产生jad文件。然后打开wtk2.2自带的Run MIDP Application工具,加载jad文件,程序就会自动运行,选择launch上PinballMIDlet这个程序,游戏画面就会跃然屏幕之上,接下来的工作就是动动手指来玩这游戏了。最后在玩的过程中把发现的问
59、题都一一记录下来。发现的问题及解决情况几乎所有的软件产品在开发之初都会存在这样那样的不足,有的是功能不符合需求,也有细节方面的逻辑错误。测试中发现的问题如下:1.在进入游戏时偶尔会出现闪屏现象,可能是由于用了两个线程的缘故(在菜单的实现和游戏引擎中都用了线程)。但是菜单中不用线程的话就实现不了菜单的选择功能了,暂时还未想到解决的办法。2.在游戏主界面上加的监听命令未能实现其功能,点了“暂停”和“退出”都没反应,未能实现“暂停游戏”和“继续游戏”的功能,所以去掉。3.分数记录系统不够完善,没有用一个单独的窗口来显示高分记录榜。由于时间比较仓促,上述问题还有待解决。结 论毕业设计是本科学习阶段的理
60、论和实践,这样的设计非常罕见的组合的机会,我要摆脱纯粹的理论知识的学习状态,我申请的专业知识和实用的设计与运动相结合的基础解决工程实际问题,同时也提高我的访问,以文学,设计手册,设计规范,以及其他能力的专业水平的能力,而且还通过全面控制当地贸易的平衡,以及在自由裁量权的详情的问题,都让我锻炼的能力,经验丰富,将力的质量,抗压强度和耐力也得到了不同程度的改善。这是我们都不愿意看到的正是我们毕业设计的目的。毕业设计的范围,这个过程是乏味的,但我收获更丰富。各项制度的适用条件,标准的各种设备,安装各种渠道的选择,设计,并继续成为熟悉并学会使用。和老师沟通,让我上提出了新要求,从经济角度来看,设计新的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度伸缩缝施工质量控制及整改合同正规范本3篇
- 2024年标准版一次性购销合同版
- 2024年版综合招商合作协议范本版B版
- 19《牧场之国》第二课时教学实录-2023-2024学年五年级下册语文统编版
- 2024年网络安全事件调查与责任认定合同2篇
- 农村房屋装修承揽合同
- Unit 3 Keep fit Section B 2a-2c 教学实录 2024-2025学年人教版(2024)七年级英语下册
- 4《地球 我们的家园》第二课时 教学实录-2023-2024学年道德与法治六年级下册统编版
- 2024年度人力资源培训课程与师资引进服务合作协议范本3篇
- 2024年度广告位出租合同2篇
- 教研组长述职报告演讲
- 农村集体经济组织内部控制制度
- 《接触网施工》课件 5.1.2 避雷器安装
- 第二届全国技能大赛珠宝加工项目江苏省选拔赛技术工作文件
- 淮阴工学院《供应链管理3》2022-2023学年第一学期期末试卷
- 2025年计算机等级考试一级计算机基础及MS Office应用试卷及解答参考
- 小学五年级上册语文 第一单元 语文要素阅读(含解析)
- 2024年广东公需科目答案
- ABB工业机器人基础知识
- 中国校服产业挑战与机遇分析报告 2024
- 2022版义务教育物理课程标准
评论
0/150
提交评论