学年第一学期
《J2ME 程序设计》
游戏设计报告
题 目
J2ME 手机游戏——贪吃蛇
学生姓名
学 号
所在专业
所在班级
所在学院
信息学院
指导教师
分 数
第一章、开发平台与技术概述
1.1 开发环境
操作系统:
程序语言:
开发包: ! "#$"
%$&:&'(
1.2WTK、ECLIPSE 与 JAM 的介绍
()) *的全称是 &++ 的无线开发工具包。这一工
具包的设计目的是为了帮助开发人员简化 ,- 的开发过程。使用其中的工具可以开发与
./0.%0%12)!规范兼容的设备上运行的 ,-应
用程序。该工具箱包含了完整的生成工具、实用程序以及设备仿真器。到本文写作时为止
可以获取有四个版本,分别是 ) 31 1 ) 和 。每个版本都包括英语,日语,简体中文,
繁体中文 3 个语种包。
* 是 提供的一个开发工具包。目前各大手机厂商往往把 * 经过自身的简化
与改装,推出适合自身产品,如 0&,4$'5 等,都属于此种类型
而通过 61&' 等 %$&,& 开发包工具可以被绑定在这些集成开发环境中,进
一步提高开发效率。
() Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,
它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是, Eclipse 附
带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一
个全功能的、具有商业品质的工业平台。它主要由 Eclipse 项目、Eclipse 工具项目和
Eclipse 技 术 项 目 三 个 项 目 组 成 , 具 体 包 括 四 个 部 分 组 成 — — Eclipse
Platform、JDT、CDT 和 PDE.JDT 支持 Java 开发、CDT 支持 C 开发、PDE 用来支持
插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
1.3JAVA 语言介绍
())面向对象
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。
对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象
都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话
面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:
程序7算法8数据;面向对象编程语言为:程序7对象8消息。
()平台无关性
是平台无关的语言是指用 写的应用程序不用修改就可在不同的软硬件平台上
运行。平台无关有两种:源代码级和目标代码级。" 和 "88具有一定程度的源代码级平台
无关,表明用 " 或 "88写的应用程序不用修改只需重新编译就可以在不同平台上运行。
(()分布式
分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,
操作分布是指把一个计算分散在不同主机上处理。
(3)可靠性和安全性
最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。 虽然源于
"88,但它消除了许多 "88不可靠因素,可以防止许多编程错误。首先, 是强类型的
语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠
其次, 不支持指针,这杜绝了内存的非法访问;第三, 的自动单元收集防止了内
存丢失等动态内存分配导致的问题;第四, 解释器运行时实施检查,可以发现数组和
字符串访问的越界,最后, 提供了异常处理机制,程序员可以把一组错误代码放在一
个地方,这样可以简化错误处理任务便于恢复。
(!)多线程
线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执
行的单位。
第二章 J2ME 及其体系结构概述
2.1 J2ME 简介
999现在 :;::;:- 大致可分为 &、&&、& 三类。& 为 :;::;:
-的标准版,通常在 " 上使用的 :;:。&& 是在 & 的 :% 上,扩展了给企业
使用 &6 与 等主要使用在服务器上的功能。而 & 则是面向家电和通信工具等微
小设备。
& 的目标是微小设备,这类设备有许多种类,在这些设备的 & 当中,定义了
"$"("$"/)1"#$""#-$"/这两
个 "/。
"$" 是以能用在个人网关、下一代移动电话、$:(个人数字助理)、家电设备、< 终
端、车辆导航系统等上运行为前提设计出来的。 "#$",是以能使用在移动电话、$:
(个人数字助理)、家电设备、< 终端等上面为前提设计出来的。
2.2 J2ME体系结构
配置和简表:配置定义了一个设计在一系列类似硬件上运行的 平台的能力。- 的目
标是家电与嵌入式设备,这类设备有很多种类,对应这些设备的 - 当中,定义了
"$"(连接设备配置)和 "#$"(受限接设备配置)两个配置,配置所提供的类函数只有
/1 1 包等 & 等核心类的子集。"#$" 是与手机相关的,它实际是定
义一个设备制造商用来实现 运行环境的标准,第三方开发者只需要遵循这个标准 。
"#$" 主要影响 开发和软件发布的以下方面:
))目标设备的特性;
)安全模型:安全模型有两个部分,虚拟机和应用程序安全。虚拟机安全层的目的是保护
下面的设备不受任何执行代码可能引起的损害。
2.3 移动信息设备简表概述
( )%$ 的目标硬件环境
))显示:=>!3 象素,) 位颜色,大约 ):) 比例;
)输入:单手键盘或者小键盘;
?双手的 @&2; 键盘;
触摸屏。
)内存 非易失性内存,供 组件使用;
的非易失性内存,供应用程序生成的永久数据使用;
的易失性内存,供 堆使用。
)网络双响无线网络,可间歇性连接;
通常是很有限的带宽。
应用程序
在 上运行的 程序被称为 。 是服从一些关于它运行环境和程序打
包的一些规则。其运行环境是启动 ,这是设备内置应用管理器的任务。应用程序能
访问到下面的一些资源:()震动文件中的所有文件。() 描叙文件的内容
()。
和 库中的类
打包: 应用一般采用震动文件的形式。这个文件应该包含运行应用程序需要的类和
所有的资源文件,它也应该包含一个叫 ! 的清单文件。保存在震动文件中的清
单文件是一个简单的文本文件,包含属性值。
应用程序描叙(!)在移动电话网络上传送大量的数据,需要有一个描叙文件让用户在
没有下载整个包之前来查看一下 震动的细节。
第三章 手机游戏开发过程
3.1 贪吃蛇游戏的规则简介
贪吃蛇游戏的规则简介
在贪吃蛇游戏中,玩家操作由小方块连接而成的蛇,去吃随机散落在画面内的小方块,每
吃一块就增加一小方块长度,要是撞壁以及撞自己的尾,就属于失败,如无失败则直到通
关为止。
屏幕的长度的行向为 )) 单位,纵向为 ) 单位。在这个范围内,玩家通过操作方向键来控
制蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机1$: 的屏幕大小如何,
该游戏总是能获得最佳的显示效果。
3.2 详细设计
本游戏的操作流程:用户在启动 后,即进入游戏主画面,屏幕开始显示为欢迎画
面。用户按下"启动#按钮后,就可以开始玩游戏。当用户想暂停时,再次按一下"启动#按
钮开始,游戏就暂停了,在暂停的情况下再按"开始#按钮,游戏继续运行。任何时候按
"$%&#按钮退出,游戏 都会终止。
图:游戏流程转换过程
3.2.1 代码设计
()游戏地图代码设计
游戏地图是蛇的活动范围和食物随机散落的范围,游戏的容器为行向为 单位,纵向
为 单位,如下代码:
'()%*+,--地图的开始坐标
'().*+,--
'()/0&1*2,--图标的宽度
'()!*+,--地图的列数
'()345!*+,--地图的行数
'()460*/0&17!,--地图的宽
采用二维绘图工具:二维绘图工具 8(5 采用 个参数——直线起点的 6、9 坐标值
和直线终点 6、9 的坐标值,例如:
:(';!8(5(<+,+,++,+);
这行代码会从位置(<+,+)到(++,+)绘制一条直线。
绘制一个矩形是一个类似的过程,不同的只是需要用起点加上宽度和高度的方式来指定这
个对象。可以绘制透明的或者填充的矩形,甚至可以绘制圆角的矩形。 个绘制矩形的方
法是:8(53、8(534=883、)3 和 )34=883。
()贪吃蛇和食物的代码设计
屏幕的长度为行向为 + 单位,纵向为 + 单位;在这个范围内,玩家操作方向键控制
蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机> 的屏幕大小如何,
该游戏总是能获得最佳的显示效果。
贪吃蛇最初由 + 个小正方形组成,小正方形是蛇的身体和游戏容器的组成部分。食物也
由一块小正方形组成,并且随机散落在游戏框图的区域内,每次只出现唯一的一个,待玩
家操作游戏完成一个任务后面,再出现下个食物,小蛇每吃一个食物就增加一个长度。实
现代码如下: