1、毕 业 论 文(设计) 开 题 报 告 书 论文题目 基于java的手机游戏系统的设计与实现 姓 名 黄飞扬 学 号 201201327046 入学年月 2012年9月 院 系 电子信息学院 专 业 软件技术 指导老师 甄春成 填写日期:_年_月_日论 文 题 目 基于java的手机游戏系统的设计与实现选题的背景及意义:从小屏按键手机到大屏触控手机,从非智能平台再到智能平台,我们可以直观的发现手机愈加的贴近人们的生活。可以说今天的手机已经从单纯的通讯工具转变为一个集通讯、音乐、电影、游戏等多功能于一身的便携终端。手机的综合价值越来越高,这使得人们对它的依赖性越来越强。我们可以清楚的看出,现在的
2、生活节奏正在变快。人们除了工作和学习之外,还要花费不少的时间在往返的路途上,当然也就没有太多时间呆在电视机前,这一现状自然而然的激发了移动终端(手机、掌上游戏机)的飞速崛起。在掌上游戏机系列中,任天堂的NDSL、索尼的PSP已经被我们所熟知,成为了很畅销的游戏机。但是从近几年来看,我们发现手机游戏正在潜移默化的侵蚀着掌上游戏机的市场份额,当然这种“侵略”是有依据的。目前在手机上看到的已经不再是当年简单的贪吃蛇。各种各样庞大、精美的手机游戏已经走进我们的生活。甚至一些电脑上出色的网游魔兽世界也有了手机终端中的复刻版,这些都让忙碌的我们感受到了不一样的乐趣。Java在移动设备上的功能实现也越来越具
3、影响力,为丰富人们的生活,提供服务等方面提供了诸多方便。本文主要介绍一款基于Java语言开发的手机游戏贪吃蛇,该设计主要是应用J2ME技术,结合JDK 1.8.0,使用IDE Eclipse 4.4与EclipseMe1.7.9作为开发工具,以Sun J2ME Wireless Tool Kit 2.5.2软件作为模拟测试工具的综合性的开发设计。本设计主要是对手机游戏的开发过程的各个环节做了详细的介绍,其中包括:手机游戏开发平台的搭建与测试、具体设计及开发步骤、软件测试运行与打包生成等,实现了经典游戏贪吃蛇的手机嵌入,以便满足一些手机用户的娱乐需求。选题的构思与设想:论文主要章节:摘要ABST
4、RACT目 录1绪论2手机游戏2.1 手机游戏现状2.2 手机游戏分类3.程序开发语言3.1 JAVA3.2 JAVA程序开发流程3.3 JAVA语言的特点4.开发环境及相关技术介绍4.1 开发环境4.2 JDK4.3 WTK4.4 ECLIPSE与ECLIPSEME5.游戏的开发与实现5.1 游戏工程及程序的建立5.2 手机中的坐标系5.3 游戏的具体实现环节5.4 具体编程的实现6.结论参考文献答 谢程序中存在的问题:开发移动游戏与传统游戏的开发有很多不同,想开发有吸引力的移动游戏尤其困难。这比开发控制台游戏或PC游戏更困难,因为众多的设备具有不同的存贮器、声音和显示性能。除此之外,你还必
5、须合理利用J2ME这样的开发环境。开发移动游戏需要一套与普通游戏不同的方法和思路。移动游戏的预算很小而且时间安排很短。这个平台有许多种硬件和软件的组合,并且在硬件厂商之间没有多少共同点。第一、花费更多的时间用来设计。开发者都有想用最简捷经济的方式做事的倾向。然而,为了创作一个世界第一流水平的游戏,你就必须使用世界第一流水平的开发过程。关键步骤是设计思路、试制、生产和产品质量检测。然而,因为设备和移动运营商的多样性,开发者不得不花费更多的时间用于前期的计划。这就存在这一种风险,那就是一个设计可以用于一种设备,但是可能就不能用在另一种设备。第二、像在PC中一样,为硬件的最小公分母( lowest
6、common denominator )开发,这意味着你的代码不能对硬件和操作系统以及程序设计语言之间的交互抱过高幻想。 第三、类似于硬件中的问题,开发两个API之间的基本功能。比较软件开发环境和围绕它们的不足进行针对性设计。开发者必须花费更多的时间了解这两个平台,但是最后的效果是很值得的。1操作坏境的不兼容问题:本论文讲述的移动开发环境是J2ME,J2ME是获得美国大部分移动运营商支持的移动应用开发平台。J2ME是一个解释语言,运行在有虚拟机的任何操作系统上,通常运行速度很慢,而且在优化代码上有许多的困难。在过渡期间,为这个环境开发游戏成为一种挑战。例如,BREW 1.0支持掩盖的位图传送(
7、 Masked-Blit ),而J2ME MIDP 1.4不支持。而且,一些J2ME手机不支持声音。所以你的代码不应该使用掩盖的位图传送支持或者声音支持。比如说,如果你创建自定义位图字体,你可能认为你需要掩盖的位图传送。然而,你可以使用提前修正背景色来创建字体位图。这两个平台可以在载入一个文件的时候改变调色板,允许动态的调整字体背景色,但是文本必须出现在固定的背景上。2.显示速度方面的问题:在移动游戏开发过程中,最大的问题是缺乏对显示速度的重视。虽然移动运营商已经选择了强大的处理器和彩色的显示屏,但是他们忽略了对于游戏来说至关重要的一个方面。手机使用许多绘制程序,一些支持双缓冲技术,而另一些不
8、支持。在某些情况下,可以更容易的直接绘制到屏幕上。直接绘制到屏幕有时比双缓冲更快。然而,使用低刷新速率在屏幕上绘制大的图像可能会引起闪烁。造成这一问题的原因在于,画面在显示的同时,程序又在改变它,于是画面闪烁。3.不同屏幕尺寸问题:图形是游戏的一个关键的方面,描画速度是一个重要的程序函数。不同于控制台游戏和PC游戏,移动设备没有标准的屏幕尺寸或者长宽比,这就导致了很多兼容性问题。开发者可以通过编写非常灵活的背景和前景描画程序来解决这个问题。关键是创建一个允许快速扩展或者缩小游戏视窗的架构,并且不使图像变形或者生成让人看上去觉得别扭的屏幕比例。当然,你有很多方法来处理这个问题,最坏的情况就是你可
9、以为每种手机的显示屏重新设计图形。或者,你还可以动态地调节你的游戏背景和其它图形。4.输入问题:输入要么成就要么毁掉一个游戏体验。游戏一般都需要快速响应的反馈。不然的话,你的游戏就会感觉有点迟钝。在过去,移动电话不需要能够快速响应的按键,因为拨电话号码没有那种需要。现在,这就有了一些问题,如果你的按键响应速度很慢,你的游戏反馈就会很慢,而且不幸的是没有解决办法来提高它的速度。而且,大部分的手机不支持同时按下多键,而这又是格斗类游戏所必须的。因此是否能够解决好这方面的问题就显得尤为重要了。技术路线与研究方法:技术路线: 论文的主要是论述用J2ME技术在手机游戏制作开发中的应用,以一款贪吃蛇手机游
10、戏为实例具体讲述了运用J2ME制作手机游戏。搭建JDK坏境,使用WTK开发工具包,在“Eclipse+EclipseMe”的平台下开发程序,使游戏系统得以实现。 研究方法:1. 文献研究法,查找相关资料,找一些相关代码,用JDK查找相关方法,在论坛、贴吧等各种网站寻找程序中遇到的各种问题的解决方法;2. 理论与实际问题相结合的方法,分析用户需求,在对各种系统开发平台、开发技术、开发坏境、数据库技术等各方面的比较下,选择相对较佳的方案;3. 利用UML建模方法进行分析建模以及设计建模,并进行实际操作调试,从而实现本系统的具体功能;4. 系统分析与逻辑辩证分析相结合的方法。进度安排及各阶段主要任务
11、:1、2014年11月1日前完成毕业论文的选题填写开题报告2、2014年11月15日前拟定论文题目及写作大纲了解开发环境3、2014年12月25日前毕业设计的初次实现及修改4、2015年1月1日前毕业设计的完善5、2015年1月5日前完成设计论文初稿6、2015年1月6日前完成设计论文终稿主要参考资料与技术条件:参考资料:1 詹建飞Java Me核心技术与最佳实践,北京:电子工业出版社,2013年;2 张鹏3D手机游戏开发实例教程,北京:电子工业出版社,2013年;3 石民勇、税彬彬手机游戏设计与制作教程,北京:中国传媒大学出版社,2014年;4 杨邵芳、王颖、林锦全Java程序设计基础,北京
12、:科学出版社,2012年;5 张鹏3D手机游戏开发实例教程,北京:电子工业出版社,2009年;6 李兴华Java开发实战经典,北京:清华大学出版社,2014年;7 徐明华、邱加永、纪希禹Java基础与案例开发详解,北京:清华大学出版社,2014年;8 王国辉Java程序开发参考手册,北京:机械工业出版社,2013年。技术条件: 本次毕业设计通过应用Java技术,结合JDK 1.8.0,使用IDE Eclipse 4.4与EclipseMe1.7.9作为开发工具、Sun J2ME Wireless Tool Kit 2.5.2软件作为模拟测试工具的综合性设计,实现了手机游戏的开发与设计。指导老师
13、意见:指导老师签名: 年 月 日湖南信息学院毕业论文基于JAVA的手机游戏系统的设计与实现学生姓名:黄飞扬学 号:201201327046 年级专业:二一二级软件技术指导老师:甄春成二级学院:电子信息学院目 录摘要11绪论32手机游戏32.1 手机游戏现状32.2 手机游戏分类1233.程序开发语言 343.1 Java43.2 Java程序开发流程43.3 Java语言的特点454.开发环境及相关技术介绍564.1 开发环境64.2 JDK64.3 WTK74.4 Eclipse与EclipseMe85.游戏的开发与实现95.1 游戏工程及程序的建立95.2 手机中的坐标系125.3 游戏的
14、具体实现环节135.4 具体编程的实现136.结论21参考文献22答 谢23摘 要 从小屏按键手机到大屏触控手机,从非智能平台再到智能平台,我们可以直观的发现手机愈加的贴近人们的生活。可以说今天的手机已经从单纯的通讯工具转变为一个集通讯、音乐、电影、游戏等多功能于一身的便携终端。手机的综合价值越来越高,这使得人们对它的依赖性越来越强。我们可以清楚的看出,现在的生活节奏正在变快。人们除了工作和学习之外,还要花费不少的时间在往返的路途上,当然也就没有太多时间呆在电视机前,这一现状自然而然的激发了移动终端(手机、掌上游戏机)的飞速崛起。在掌上游戏机系列中,任天堂的NDSL、索尼的PSP已经被我们所熟
15、知,成为了很畅销的游戏机。但是从近几年来看,我们发现手机游戏正在潜移默化的侵蚀着掌上游戏机的市场份额,当然这种“侵略”是有依据的。目前在手机上看到的已经不再是当年简单的贪吃蛇。各种各样庞大、精美的手机游戏已经走进我们的生活。甚至一些电脑上出色的网游魔兽世界也有了手机终端中的复刻版,这些都让忙碌的我们感受到了不一样的乐趣。Java在移动设备上的功能实现也越来越具影响力,为丰富人们的生活,提供服务等方面提供了诸多方便。本文主要介绍一款基于Java语言开发的手机游戏贪吃蛇,该设计主要是应用J2ME技术,结合JDK 1.8.0,使用IDE Eclipse 4.4与EclipseMe1.7.9作为开发工
16、具,以Sun J2ME Wireless Tool Kit 2.5.2软件作为模拟测试工具的综合性的开发设计。本设计主要是对手机游戏的开发过程的各个环节做了详细的介绍,其中包括:手机游戏开发平台的搭建与测试、具体设计及开发步骤、软件测试运行与打包生成等,实现了经典游戏贪吃蛇的手机嵌入,以便满足一些手机用户的娱乐需求。关键字 J2ME WTK EclipseABSTRACTFrom mobile phones to screen touch screen buttons, from the intelligence platform to intelligence platform, we ca
17、n directly find mobile phones more and more close to peoples life.Todays cell phone was already from the simple communication tools into a set of communication, music, movies, games and other multi-functional portable terminal.Mobile phone comprehensive value more and more high, this makes people mo
18、re and more dependent on it.We can clearly see, now life rhythm is faster.In addition to work and study, people still spend a lot of time on the way back and forth, of course, there is no much time to stay in front of the television, the present situation of natural inspired mobile terminal (mobile
19、phone, PSP) rapid rise.In their series of PSP, nintendos NDSL, SONY PSP has been as we know, has become a very popular game.But from the point of view in recent years, we found that mobile phone games gradually eroded the market share of PSP, of course, this kind of aggression is based on.See now on
20、 the phone is no longer a simple snake.A variety of large, elegant mobile game has come into our lives.Even some excellent computer online game world of warcraft has complex engraving of the mobile terminal, which makes the busy we felt the different fun.Java in the function realization of the mobil
21、e device is also more and more influential for rich peoples life and providing services offered many convenient. This paper mainly introduces a mobile game snake of Java language development. This design is a comprehensive development design,which mainly applied 1.8.0 JDK J2ME technology, combined w
22、ith the Eclipse, use IDE EclipseMe1.7.9 as 4.4 development Tool, Tool Kit to 2.5.2 from J2ME Wireless software as simulation test tools. This design is mainly to the mobile games every parts of the development process are described in detail, including: the cellular phone game development platform a
23、nd testing, specific design and development steps, software test, operation and packaged generation. Realize the classic game - snake phone embedded, in order to meet some cell phone users entertainment demand. Key Words:J2ME,WTK,Eclipse1绪论任何游戏在设计之初,所面向的目标群体的定位都不尽相同,自然的影响游戏设计的动机也会不同,受到游戏设计导向和动机的影响,任
24、务的设计目的大体可分为:提升游戏娱乐性、使玩家压抑释放、获得心里满足、同时也可视为一种赚钱的手段。随着3G技术的普及和应用,基于Java的开发软件在手机上的使用非常的广泛,手机增值服务的内容也是越来越多,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。在这个信息社会中,随着信息网络化的不断进展,手机游戏越来越多的走进人们的工作和生活。其中现在国内从图形化游戏开发的主流技术来看,包括:基于嵌入式游戏开发与设计、基于Java游戏开发与设计、基于Brew游戏开发与设计、基于Uni-java游戏的开发与设计、手机网络游戏的开发与设计等。其中随着3G技术的飞速发展,Java手机游戏具有更大的市场
25、优势。本设计通过查阅相关书籍,研究手机游戏开发与设计的整体设计流程及设计思路、学习并使用Java语言进行程序的编写及运行调试,完成基于Java语言的手机游戏的开发与设计。2手机游戏2.1 手机游戏现状在信息和网络高速发展的今天,手机已经成为不可或缺的通讯工具,它的普及速度之快,让人瞠目,在短短的几年间,手机及其它无线设备已经走进了普通百姓的工作和生活。众所周知,手机的规模越来越壮大、功能也越来越强大,而游戏也已成为手机上不可缺少的功能,目前,手机游戏业正在以良好的发展前景飞快发展着,而且将进入一个高利润的稳定增长期。2.2 手机游戏分类12随着信息技术的飞速发展,手机游戏的逐渐的多样化,具体分
26、类归纳如下表所示:游戏形式文字类游戏短信游戏WAP浏览器游戏图形类游戏嵌入式游戏JAVA游戏BREW游戏UNI-JAVA游戏画面形式纯文字手机游戏2D手机游戏3D手机游戏表 手机游戏分类列表短信游戏:玩家和游戏服务商通过短信中文字的内容来交流,达到游戏目的的一种文字游戏。一般玩家通过回复短信的形式来进行游戏,游戏单调、枯燥无味。Wap浏览器游戏:通过手机上网,使用浏览器浏览网页来进行的一种文字游戏,玩家根据Wap浏览器浏览到的页面上的提示,以选择不同的选项的方法来进行游戏,游戏不够直观、单调无趣。嵌入式游戏:将游戏程序预先固化到手机中的一种图形类游戏,其中固化过程在手机出厂前就已经完成。因此这
27、种手机游戏不能进行任何修改或删除操作。Java游戏:Java是一种Sun微系统公司所发展出来的程序语言,它具有很多有利于手机游戏开发的性质,例如封装性、安全性等,便于手机游戏的开发与设计,而且目前在手机上应用最多的就是JAVA游戏。BREW游戏:和java类似,brew也是一种程序语言,BREW (Binary Runtime Environment for Wireless)即无线二进制运行环境,brew游戏的一主要特点就是可以扩充容量。Uni-java游戏:中国联通刚刚为其手机准备的一个新的通用开发平台。 Uni-Java可以让中国联通的手机也支持并运行Java程序,同时也支持一些Java
28、游戏。目前已经有相当数量的厂商开始进入Uni-Java手机游戏开发的领域。2D手机游戏:采用图形类的手机游戏,其中手机游戏界面为二维图像。3D手机游戏:延续2D手机游戏继续发展,手机游戏界面也由二维图像发展为三维图像,给玩家以更好的视觉效果,使游戏更具娱乐性。3.程序开发语言 33.1 JavaJava是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重
29、新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C+语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。Java分为三个体系Java SE(J2SE,Java2 Platform Standard Editio
30、n,标准版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。3.2 Java程序开发流程3.2.1 编译编译就是把所编制的*.Java文件,编译成二进制的*.class文件。Java.exe是由Sun公司编写的一个编译器,它可以把*.Java文件成为*.class文件。其中,如果一个*.Java文件中定义了多个类,它就将被编译成多个*.class文件。3.2.2 混淆(可选) 由于class文件格式透明的缘故,Java文件很容易被反编译。因
31、此,如果不希望别人掌握你的源代码的话,就一定要进行混淆(Obfuscate)。所谓混淆,就是利用工具,将方法各类名改成没有实际意义的特定的字符及代号,增加阅读的难度。这样做的目的是为了更充分的保护了自己的知识产权,而且混淆器还可以减少程序的大小。混淆器一般都是由第三方软件开发商提供的,许多都是开源的,可以免费使用。3.2.3 预审核在完成编译后,必须对*.class文件进行预审核,因为class在传输过程中容易损坏或是被篡改,且手机的资源有限,所以在手机上审核一般比较困难。因此为了使我们在手机上进行的审核工作量减少。我们在PC机上进行一部分预审核工作。3.2.4 打包MIDP可执行文件后缀名为
32、jar。后缀为jad的文件是jar文件的描述文件。在仿真器或手机上安装运行有了jar及jad文件后,就可以把它们放到仿真器或手机上运行了。至于如何把它们放到手机上,根据手机的功能不同,可有如下几种方法:使用数据线,将PC与手机相连,下载文件;使用红外线;使用蓝牙;使用OTA空中下载(利用短信/WAP)。3.3 Java语言的特点43.3.1 平台独立性要使应用软件在网络中的任意一台电脑中都能够正常运行,就必须使得软件具有平台独立性。软件的平台独立性一直以来都是软件发展的需求及开发者所追求的首要目标,而Java正是一款具有平台独立性的编程语言,在源程序级保证了其基本数据类型与平台的无关,使得Ja
33、va程序可以在世界范围内共享,为程序的编译和解读提供了很大的方便性。3.3.2 面向对象面向对象的软件编程技术是当今软件开发行业中最常用的一种技术,Java正是一款面向对象的编程开发软件。它使用一种被称为“类(class)”的软件对象,代码可以重复使用和可以扩展,使得程序开发变得容易许多。具体来说,面向对象性包括以下三个特点:封装性:Java提供了类机制,以类对象为基本组成单元,对象中封装了状态变量和方法。Java的封装性很好的体现了模块化和信息隐蔽等良好的程序设计思想。继承性:Java编程语言中最重要的数据类型是类,它提供了单继承机制。为了解决多继承的问题和克服了多继承的复杂性,Java引进
34、接口(interface)的概念,进而使得Java程序更容易被扩展和使用。多态性:Java语言通过方法的重载和覆盖实现多态性。方法重载是指一个类中可以有多个名字相同,但参数类型不同的方法。方法覆盖是指在继承的过程中,子类可以重新定义父类的某种方法,实现自己需要的功能。3.3.3 安全性 作为Web编程语言的一种,Java具有良好的安全结构和安全策略。代码在编译的过程中接受多层的安全检查。在实现安全性方面,主要采取的措施包括:取消指针操作、内存管理自动化、提供多网络软件协议的用户接口等。3.3.4 多线程 通过多线程运行机制,Java支持多任务和并行处理。也就是说,Java可以同时处理多个执行线
35、程。Java编程语言的多线程行,极大改善了CPU的吞吐量、响应时间等性能指标。3.3.5 分布式Java中包括了一个支持HTTP和FTP协议传送和接收信息的库函数,因此可以通过 URL地址在网络上很方便地访问其它对象,其访问方式与访问本地文件系统几乎完全相同。4.开发环境及相关技术介绍54.1 开发环境操作系统:Microsoft Windows 7程序语言:Java 开 发 包:Java(TM) 2 Standard Edition (5.0)Sun J2ME Wireless Tool Kit 2.5.2JDK 1.8.0IDE: Eclipse 4.4 EclipseMe1.7.94.2
36、 JDK4.2.1 JDK简介JDK是Java开发工具包(Java Development Kit)的缩写,它是一切Java应用程序的基础,是整个Java的核心。J2ME是Java语言的一种,所以在安装J2ME开发工具之前,就必须先安装JDK。4.2.2 JDK的安装 下载JDK,使用版本为JDK 8.0,自定义安装路径安装。4.2.3 JDK的配置 配置环境变量,具体变量及其变量值如下表所示:变量名变量值JAVA_HOMEF:Javajdk1.8.0_20;PATHF:Javajdk1.8.0_20BIN;CLASSPATHF:Javajdk1.8.0_20LIB;F:Javajdk1.8.
37、0_20LIBTOOLS.JAR;表 JDK中变量配置列表4.2.4 JDK测试在DOS模拟窗口中输入“java -version”,得到如下图所示,即安装JDK成功。图 测试JDK4.3 WTK4.3.1 WTK简介WTK 的全称是Sun J2ME Wireless Toolkit Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。使用其中的工具可以开发与 Java Technology for the Wireless Industry (JTWI, JSR 185) 规范兼容的设备上运行的j2me 应用程序。该工具箱包含了完整的生成工具、实用程序以及设
38、备仿真器。到本文写作时为止可以获取有四个版本,分别是1.0.4, 2.0, 2.1和2.2。每个版本都包括英语,日语,简体中文,繁体中文4个语种包。4.3.2 WTK的安装 下载WTK,使用版本为WTK 2.5.2,自定义安装路径安装。4.3.3 WTK测试 运行“Sun Java(TM) Wireless Toolkit 2.5.2 for CLDC”,弹出如下图所示界面证明WTK安装成功。图4.4 Eclipse与EclipseMe4.4.1 Eclipse与EclipseMe简介Eclipse是一个开发源代码的、基于Java的可扩展的开发平台。Eclipse最大的一个特点就是它是完全免费
39、的,是一种可扩展的开放源代码IDE。在Eclipse中几乎每样东西都是插件,且各种插件都为我们提供开发程序的各种功能。同时各个领域的开发人员通过开发插件,可以构建与Eclipse环境无缝集成的工具。EclipseMe为Eclipse的一个插件,致力于帮助开发者开发J2ME应用程序。EclipseMe并不为开发者提供无线设备模拟器,而将各手机厂商的实用模拟器紧密连接到Eclipse开发环境中,为开发者提供一种无缝统一的集成开发环境。4.4.2 Eclipse与EclipseMe的安装下载Eclips,使用版本为Eclipse 4.4,自定义安装路径安装。下载EclipseMe,使用版本为Ecli
40、pseMe1.7.9,自定义安装路径安装。4.5 WTK与EclipseMe的绑定 将WTK绑定到EclipseMe,会大大提高开发者的工作效率。 启动Eclipse,选择“windows”菜单,再选择“Preferernces”,在对话框中选择“J2ME”选项,再选择“Device Management”选项,单击“Import”按钮,在安装了WTK 2.5.2的路径下,选择WTK 2.5.2文件夹,再单击“Refresh”按钮,这是“Devices”列表中就会列出所有模拟设备,如下图所示,即WTK与EclipseMe的绑定成功。图5.游戏的开发与实现5.1 游戏工程及程序的建立5.1.1
41、建立新的工程文件运行Eclipse软件,新建工程 “J2ME Midlet Suite”,如下图所示,其中,设置项目的运行环境如下图所示,游戏的工程建立完成。图图5.1.2 新建主程序文件在工程文件夹,新建主程序“J2ME Midlet”,如下图所示,游戏的主程序建立完成。图5.1.3 向主程序内添加类方法一:鼠标右击工程文件夹,依次选择菜单项“New” “Class”,将类命名为“SnakeCanvas”,单击“Finish”按钮,完成类的加载。方法二:主程序编写完成时,在主程序中调用的类名“SnakeCanvas”下有红色下划线,说明该类没有被添加到工程中。用鼠标单击类名“SnakeCan
42、vas”,在出现的下拉菜单中点击“Create class SnakeCanvas”,如下图所示,则完成类“SnakeCanvas”的加载。图5.2 手机中的坐标系手机中的xy坐标系与普通的xy坐标系有所不同,手机中,以屏幕的左上角为原点,水平方向为x轴,垂直方向为y轴,如下图所示:xy0y0x普通xy坐标系手机中的xy坐标系图5.3 游戏的具体实现环节数据的初始化;变量的定义及赋值;设置屏幕背景颜色为粉红色;设置画笔颜色为红色,并绘制贪吃蛇蛇身及食物;食物的产生及其产生位置的限制条件;蛇身的移动;手机按键功能实现;达到游戏结束条件时,游戏结束;游戏的运行与调试游戏的模拟实现;游戏的打包生成;
43、.jad及.jar文件的生成5.4 具体编程的实现5.4.1 主程序的编写及功能实现 /系统导入相应的包,其中有自动加载的,也有手动导入的部分。具体导入包的情况,要依据程序中所用到的类的种类。import javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;/ myMIDlet类的具体实现public class myMIDlet extends MIDlet /实现两个Canvas类之间的切换 SnakeCanvas displayable = new SnakeCanvas(); public m
44、yMIDlet() / 获得当前MIDlet的Display对象,并设置SnakeCanvas对象为当前的显示对象 Display.getDisplay(this).setCurrent(displayable); /系统自动生成代码,本程序中默认其初始状态 public void startApp() public void pauseApp() public void destroyApp(boolean unconditional) 5.4.2 变量的定义及赋值public class SnakeCanvas extends Canvas implements Runnable 定义贪吃
45、蛇节点坐标:其中第二维下标为0的代表x坐标,第二维下标是1的代表y坐标。int snake = new int2002;定义已经使用的节点数量。int snakeNum;贪吃蛇运动方向。0代表向上,1代表向下,2代表向左,3代表向右 (其中方向的控制变量依据手机开发平台的不同而不同,例如:Nokia手机开发平台中,-1表示向上、-2表示向下、-3表示向左、-4表示向右。这里所用的为Sun Java(TM) Wireless Toolkit 2.5.2)。int point;/向上private final int KEY_UP = 0;/向下private final int KEY_DOWN = 1;/向左private final int KEY_LEFT = 2;/向右private final int KEY_RIGHT = 3;定义游戏区域宽度。int width, height;定义蛇身单元宽度。private final byte snakeWidth = 10;利用布尔类定义状态:是否处于暂停状态,true代表暂停;boolean isPaused = false;是否处于运行状态,true代表运行。boolean isRu
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100