浅析基于J 2 M E平台的贪吃蛇游戏开发

2013-01-19 15:17刘晓峥
科技视界 2013年17期
关键词:手机游戏线程绘制

刘晓峥

(长江工程职业技术学院,湖北武汉430212)

浅析基于J 2 M E平台的贪吃蛇游戏开发

刘晓峥

(长江工程职业技术学院,湖北武汉430212)

本文介绍了J2ME及其体系结构的基础上,以贪吃蛇游戏为实例,描述了借助J2ME的MIDlet类库开发手机游戏的全过程。

J2ME;MIDlet;手机游戏

1 初识J2ME

Java自从20世纪90年代早期诞生以来,以其强大的功能迅速为广大程序员们所接受。J2ME是由SUN公司于1999年在 JavaOne Developer Conference大会上正式推出,是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和Java SE、Java EE一起构成了Java技术的三大版本。它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。开发Java ME程序一般不需要特别的开发工具,开发者只需要装上Java SDK及下载免费的Sun Java Wireless Toolkit 2.xx系列开发包,就可以开始编写Java ME程式,编译及测试,此外目前主要的IDE(Eclipse及NetBeans)都支持Java ME的开发。

2 手机游戏发展之路

2.1 了解智能手机与J2ME

近年来的计算机技术一方面向着巨型化、智能化发展,另一方面同时向着微型化、便携化等方向发展。如今,随着人们对于嵌入式技术的深入研究,使得手机的功能不再仅限于通信,诞生了智能手机。所谓的智能手机(Smartphone),是指像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称。

智能手机操作系统包括早年的以多普达、HTC(宏达)为代表的Windows Mobile操作系统、以诺基亚为代表的Symbian操作系统,还有目前最流行,市场占有份额最大的Google公司开发的基于Linux的Android操作系统,另外苹果公司开发的基于类Unix的ios操作系统也后来居上,占有全球市场很大份额。不同操作系统的手机之间的应用软件互不兼容,而相同系统的手机软件基本通用,使用起来相当的便利。因为可以安装第三方软件,所以智能手机有丰富的扩展功能。但是,J2ME的实现并不要求手机一定要安装操作系统,它只要手机芯片支持java就可以运行,而目前绝大部分手机都内置Java虚拟机,所以J2ME技术以其移植性强,技术入门快的优势仍然在业内流行。

2.2 手机游戏的发展

手机游戏发展到如今已超过十年。大致总结,手机游戏可分为文字类游戏与图形类游戏。早期的电子宠物、短信游戏和WAP游戏,都属于文字类游戏,娱乐性较差。随着手机硬件和软件技术的不断发展,手机游戏开发也得到了快速的发展和商业应用,现在的手机游戏采用了更为直观且更为精美的画面直接表现,已发展到了可以和掌上游戏机媲美的程度,具有很强的娱乐性和交互性的复杂形态了,因此广受玩家们的欢迎。从早期的嵌入式游戏、短信游戏、WAP游戏、Java游戏再到网络游戏,手机游戏产业已经形成多元化发展,以画面精美为特点的小游戏、网络游戏为主的大型联网游戏、多人联网游戏,以及跨平台联网游戏都是未来的发展方向。随着中国3G用户渗透率的提升和无线网络覆盖范围的延伸,未来通过3G和WIFI接入网络玩手机游戏的用户将可以玩更多大型的网络游戏。如今的手机,已不仅仅只是一部手机,它更是一部微电脑或者游戏机,而手机的发展史,同时也是手机游戏的一部发展史。而本文介绍的贪吃蛇游戏,是诺基亚早期的一款代表性嵌入式游戏,直接嵌入手机芯片,可以运行但不能修改。以当今的眼光看,它的画面不够精美,娱乐性不是很强。但在手机游戏出现的早期,它是一款相当经典的游戏。

3 贪吃蛇游戏的设计与开发

3.1 开发平台与技术概述

本文中游戏开发背景如下:操作系统:Microsoft Windows XP;程序语言:Java 2;开发包:Sun Java(TM)Wireless Toolkit 2.5.2 for CLDC;IDE:Eclipse 3.2。

3.1.1 WTK

WTK的全称是Sun J2ME Wireless Toolkit,是Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。使用其中的工具可以开发与 Java Technology for the Wireless Industry(JTWI,JSR 185)规范兼容的设备上运行的j2me应用程序。该工具箱包含了完整的生成工具、实用程序以及设备仿真器。目前最新版本是2.5版。

3.1.2 MIDP

MIDP全称是Mobile Information Device Profile,意即移动信息设备配置文件。建立在CLDC的基础之上,用来描述手机和寻呼机这样更加具体化的无线移动设备。对于 Java ME平台,MIDP定义了一个标准的Java API集合,此集合与联网的受限设备配置 CLDC一起提供了一个面向移动信息设备(如移动电话、双向寻呼机和无线个人电脑记事本)的完整Java ME应用程序运行环境。

有了现代汉语中这种框架构式的存在,为网络用语“我了(嘞)个去”等提供了产生和生长的温床。“洗澡”“理发”是一个离合词,他的拆分和重新整合是广为人接受的,而“我了(嘞)个去”是不合实际的,这就导致了本来熟悉的词法和语素变得陌生。这种没有语法基础和逻辑基础的套用在网络这个平台上,以其受众追求新奇的心态下使得其临时成立。

3.1.3 ECLIPSE

Eclipse是一个开放源代码的软件开发项目。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。

3.2 开发过程(游戏代码略)

3.2.1 游戏规则简介

在贪吃蛇游戏中,玩家操作由小方块连接而成的蛇,去吃随机散落在画面内的小方块,每吃一块就增加一小方块长度,要是撞壁以及撞自己的尾,就属于失败,如无失败则直到通关为止。屏幕的长度的行向为11单位,纵向为18单位。在这个范围内,玩家通过操作方向键来控制蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机的屏幕大小如何,该游戏总是能获得最佳的显示效果。

图1 程序流程图

本游戏的操作流程:用户在启动MIDlet后,即进入游戏主画面,屏幕开始显示为欢迎画面。用户按下[启动]按钮后,就可以开始玩游戏。当用户想暂停时,再次按一下[启动]按钮开始,游戏就暂停了,在暂停的情况下再按[开始]按钮,游戏继续运行。任何时候按[EXIT]按钮退出,游戏MIDlet都会终止。

图2 游戏运行画面

1)地图模块

采用二维绘图工具:二维绘图工具drawLine采用4个参数——直线起点的x、y坐标值和直线终点x、y的坐标值

2)操作控制模块

MIDP的游戏设计,本质上就是用一个线程或者定时器产生重绘事件,用线程和用户输入改变游戏状态。这个游戏也不例外,启动MIDlet后,就立即生成一个重绘线程,该线程每隔50ms绘制一次屏幕。当然,重绘时有一些优化措施,并不是屏幕上所有的像素都需要重绘,而是有所选择,比如游戏画布上那些已经固定下来的就不需重绘。游戏画布是一个CommandListener,可以接受用户键盘命令,控制蛇的左移,右移,下移,上移。整个游戏的流程控制体现在游戏画布对象的paint()方法里。paint()根据当前的游戏状态,绘制出当时的游戏画面。欢迎画面和Game Over画面的绘制相当简单,游戏暂停画面的绘制也相当容易,就是设立标志,让paint()执行的时候无需真正执行重绘动作。

3)开始画面与字体模块

开始画面仍然生成绘制画布线程,利用paint()方法设置开始画面的各项属性,字体方面采用setColor方法分别绘制字体的边框与内部颜色。当线程启动时,即生成开始画面。

4)分数记录模块

在此模块中建立目标类实例,先借助字节输出流类统计游戏运行过程中的存储字段,即蛇吃的点数。再将存储记录的字节数字一次性传入目标类实例中。关键代码如下:

byte[]byteInputData=new byte[100];

inputStream=newByteArrayInputStream(byteInputData);

inputDataStream=newDataInputStream(inputStream);

再如前所示,将成绩用paint()方法绘制入结束画面的画布。

4 结束语

本文所介绍的贪吃蛇游戏,实现了手机游戏的一些基本和必需的功能。如游戏的界面设置,游戏动画的设置,玩家的控制键设置,游戏的保存和游戏纪录的保存,游戏的开始和暂停等功能。随着目前各大手机厂商的大力研发,智能手机的发展一日千里,手机芯片功能的更新也日新月异,本文的贪吃蛇游戏相形之下已然落后,但是,作为初学者,仍然要从基础做起,脚踏实地才能有所成就。

[1]陈立伟,张克非,黎秀红.精通JAVA手机游戏与应用程序设计[M].中国青年出版社,2005,5.

[2]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004,08.

[3]张孝祥.Java就业培训教程[M].北京:清华大学出版社,2003.

[4]王国辉,李立文,杨亮.JSP数据库系统开发完全手册[S].

This article describes the J2ME based on its architecture to Snake game as an example,describes a class library using the J2ME MIDlet whole process of the development of mobile games.

J2ME;MIDlet;Mobile games

刘晓峥(1984—),女,陕西汉中人,硕士,讲师,主要从事计算机软件教学和科研。

杨扬]

猜你喜欢
手机游戏线程绘制
Art on coffee cups
放学后
让手机游戏成为传统文化的传播新渠道
手机游戏对大学生的负面影响及对策分析
浅谈linux多线程协作
在转变中绘制新蓝图
基于上下文定界的Fork/Join并行性的并发程序可达性分析*
浅谈手机游戏业务发展策略
Linux线程实现技术研究
VBA在宗地图绘制中的应用