4.1游戏的的思路、构想
4.1.1游戏想法的产生
相信大家一定都在8位机机上玩过《冒险岛》这款游戏,非常有趣味性。

游戏中玩家通过不断的闯关,来解救公主。在每个关都很很多的怪物阻挡着你,所以需要运用各种机关或者秘籍来杀死它们。杀死他们的同时还可以获得各种奖励,加生命,加血等,增加了游戏的趣味性。

如图2所示:

java写手机游戏 java开发手机游戏_java写手机游戏


这款《冒险岛》游戏的实现相对于其他RPG或者网络版手机游戏稍简单一些,适合初学者作为练习,所以我决定编写一款类似的手机游戏。

由于之前对手机游戏的编程知识以及游戏的设计只有初步的了解,因此,我们在游戏的构架和思路上经历了几个阶段。

这款《冒险岛》游戏的实现相对于其他RPG或者网络版手机游戏稍简单一些,适合初学者作为练习,所以我决定编写一款类似的手机游戏。

由于之前对手机游戏的编程知识以及游戏的设计只有初步的了解,因此,我们在游戏的构架和思路上经历了几个阶段。

4.1.2对游戏设计的初步认识
刚开始我们只对J2ME有初步的了解。这时我们只是模仿之前在PC上看到的游戏,用语言把游戏的实现感性的描述为几大部分:

游戏界面系统:包括游戏开始界面;游戏开局界面;游戏运行界面;游戏结束界面。

游戏元素:菜单类;画布类;人物类;排行榜类。

4.1.3模块成型阶段
在进一步熟悉了J2ME知识后,对框架做出了一些修改,逐步把游戏的基本功能确定。游戏依次进入加载界面;主菜单;游戏运行界面;游戏结束界面。

具体实现的功能为:

1.主菜单,有如下选项:

(1)开始游戏——进入游戏界面。

(2)声音——设置声音的有无选项。

(3)帮助——介绍游戏的玩法。

(4)排行榜——玩家所得分数的排行榜。

(5)关于——用来显示说明信息以及背景图片。

2.游戏运行界面,包括:

游戏界面;目前游戏得分;游戏关数;生命次数;

3.游戏结束界面:游戏结束后,显示一行说明信息,然后退回到菜单。

游戏的主要模块为:

1.游戏主MIDlet(GameMIDlet)——对游戏生命周期的判断;对画布类的调用;管理游戏程序中各个屏幕之间的转换。

2.游戏画布(MyGame)——对游戏所用变量,常量的设定;游戏的初始化;游戏中精灵运动轨迹的控制;精灵与砖块的碰撞检测以及砖块状态的控制;游戏中各关卡的基本设定;游戏中对按键状态的处理。

3.菜单类——游戏中菜单事件的处理。

4.GameOgre类——游戏中怪物的类。

5.GamePlayer类——玩家控制的精灵类。

6.GameRMS类——用于实现分数排行榜。

7.PlayMusic类——用于实现音乐的播放。

8.MySet类——声音大小的设置。

4.2 程序的类结构

程序一共有8个主要类,其中菜单类负责各个屏幕的切换。程序的类结构如图3所示:

java写手机游戏 java开发手机游戏_开发语言_02


4.3 游戏的流程图

进入游戏菜单。初始情况下,游戏菜单有5个选项,它们分别是开始游戏、游戏说明和排行榜、设置、关于。选择开始新游戏则进入游戏,在游戏中如果按下非游戏键则中断游戏返回菜单,此时菜单中增加了一个继续游戏的选项,可以返回游戏也可以重新开始新的游戏。在菜单中选择游戏说明或者高分记录,则进入相应的屏幕,他们都能用“后退”软键返回菜单。菜单中的退出选项用于退出程序。游戏的流程如图4所示:

java写手机游戏 java开发手机游戏_开发语言_03


4.4.1主类GameMIDlet的实现

MIDlet是最核心的类。MIDlet程序有三种状态:

1.暂停状态

2.运行状态

3.销毁状态

J2ME程序都是从MIDlet类开始执行,系统在执行MIDlet程序时,首先构造一个MIDlet类型的对象,然后使程序进入到暂停状态,按照生命周期的规定,系统会自动调用MIDlet对象的startApp方法使程序进入到运行状态,开始程序的执行。

下图是运行时显示的画布对象:

java写手机游戏 java开发手机游戏_java写手机游戏_04


首先,先要创建MIDlet类型的对象,下面我们来看对象的构造方法:

//主程序构造方法
 public GameMIDlet()
 {
 rs = null;
 RecordName = “GameRMS”;
 GameMenu.display = Display.getDisplay(this) ;
 GameMenu.midlet = this;
 }