手机游戏开发技术实验报告.docxVIP

  • 0
  • 0
  • 约4.24万字
  • 约 45页
  • 2026-02-10 发布于山东
  • 举报

?J2ME游戏开发技术?实验报告

实验名称:益智类游戏——炸弹人

实验目的

利用J2ME有关知识,设计一款益智类(PUZ)炸弹人(Bombman)游戏程序,是我们能够掌握JavaME游戏开发的全然技巧。

实验环境

Windows7操作系统,Eclipse,,JDK1.6

实验内容

利用自己所学的J2ME知识,进行游戏开发,该游戏的创意是游戏主角在一个随机生存的地图中放置炸弹,以消灭地图中所有的敌人为目的。游戏地图被设计成一个多行多列的棋盘,游戏中的主角和敌人每次都只能按照棋盘中相邻的棋盘格进行移动,而且在地图中还存在不同的障碍物,用来阻挡游戏主角和敌人的移动。游戏主角能够在没有障碍物的地点防止炸弹来引爆敌人或障碍物来获得往路。从中有以下是几个元素的具体功能:

空白区:是游戏主角和敌人能够移动的位置及放置炸弹的位置。

岩石:地图中的障碍物,用来阻止游戏主角和敌人的且不能被炸弹摧毁。

砖墙:也是用来阻止的,只是能被炸弹摧毁变成空白区。

敌人:是消灭游戏主角的一方,它需要游戏主角用炸弹将其炸死,其所处的地点也会变为空白区,敌人在空白区来往自如,一旦碰到游戏主角,游戏主角会被杀死。

游戏主角:游戏中由玩家操纵的一方,在空白区移动,能够放置炸弹。

实验步骤〔代码分析〕

该游戏是一个11*11的棋盘,用一个char型的二维数组来表示该棋盘,二维数组中的每一个数组元素就代表了游戏棋盘中的一个棋盘格。该游戏采纳面向对象的程序设计方法,要紧的功能都封装到不同的类中,定义了以下几个类:

1.Board类:该类作为程序的模型定义类,在其中定义了游戏中所使用的数据结构以及对这些数据结构中的数据进行设置和猎取的方法。

2.BoardView类:该类作为程序的视图定义类,也是游戏的画布屏幕类,在该类中定义了如何依据用户的游戏动作绘制对应的游戏运行画面的方法。

3.Bomb类:该类表示游戏中的炸弹,定义了如何显示炸弹的爆炸效果以及炸弹爆炸后对其他相关元素的碍事的方法。

4.Enemy类:该类表示游戏中的敌人,具体定义了敌人如何移动以及判定敌人是否死亡的方法。

5.Player类:该类表示游戏中的主角,定义了游戏主角如何移动、如何防止炸弹以及判定游戏是否死亡的方法。

6.Img类:该类定义了游戏中各种图像的构造方法。

7.jBombMan类:该类是程序的MIDlet类。

privateDisplayoDisplay;//屏幕对象

privateBoardViewoBoardView;//棋盘视图对象

privateBoardoBoard;//棋盘对象

privatePlayeroPlayer;//主角对象

privateEnemyoEnemy;//敌人对象

〔2〕

//定义棋盘的二维数组

publicchar[][]chBoard;

/*

N-None表示什么也没有

W-Wall表示砖墙

L-Pillar表示岩石

P-Player表示游戏主角

E-Enemy表示敌人

B-Bomb表示炸弹

U-Bombunderplayer表示主角正在放置炸弹

X-Exploding表示炸弹爆炸

*/

//声明一个随机数对象

private Randomrandom;

//声明棋盘的行和列数

publicintiCols,iRows;

//声明判定游戏是否结束的标识

publicvolatilebooleanisGameOver;

//声明判定是否玩家胜利的标识

publicvolatilebooleanisWin;

//构造函数,初始化棋盘的行数和列数,并构造随机数对象

publicBoard(intcols,introws)

//定义棋盘的初始化方法

publicvoidinit()

//判定某个棋盘格中是否是给定的元素

publicbooleanisElement(charch,intx,inty)

//猎取指定的某个棋盘格中的元素

publicchargetElement(intx,inty)

//设置指定的某个棋盘格中的元素

publicvoidsetElement(charch,intx,inty)

//判定给定的位置是否在敌人的攻击范围内

publicbooleannear(charch,intx,inty)

//判定给定的位置是否能够向某个方向移动2步

publicbooleannear2(charch,intx,inty)

privateBoardoBoard;

privatePlayeroPlayer;

privateEnemyoEnemy;

//定义背景色

privatefinalintBackgroundColor=0xffffff;

//定义每个棋盘格的大小

privatefina

文档评论(0)

1亿VIP精品文档

相关文档