欢迎来到天天文库
浏览记录
ID:15716271
大小:693.39 KB
页数:40页
时间:2018-08-05
《j2me手机开发游戏报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《J2ME手机游戏开发技术》实验报告实验名称:益智类游戏——炸弹人一.实验目的利用J2ME有关知识,设计一款益智类(PUZ)炸弹人(Bombman)游戏程序,是我们能够掌握JavaME游戏开发的基本技巧。二.实验环境Windows7操作系统,Eclipse,WTK2.5.1,JDK1.6三.实验内容利用自己所学的J2ME知识,进行游戏开发,该游戏的创意是游戏主角在一个随机生存的地图中放置炸弹,以消灭地图中所有的敌人为目的。游戏地图被设计成一个多行多列的棋盘,游戏中的主角和敌人每次都只能按照棋盘中相邻的棋
2、盘格进行移动,而且在地图中还存在不同的障碍物,用来阻挡游戏主角和敌人的移动。游戏主角可以在没有障碍物的地方防止炸弹来引爆敌人或障碍物来获得去路。从中有以下是几个元素的详细功能:(1)空白区:是游戏主角和敌人可以移动的位置及放置炸弹的位置。(2)岩石:地图中的障碍物,用来阻止游戏主角和敌人的且不能被炸弹摧毁。(3)砖墙:也是用来阻止的,不过能被炸弹摧毁变成空白区。(4)敌人:是消灭游戏主角的一方,它需要游戏主角用炸弹将其炸死,其所处的地方也会变为空白区,敌人在空白区来去自如,一旦碰到游戏主角,游戏主角会被
3、杀死。(5)游戏主角:游戏中由玩家控制的一方,在空白区移动,可以放置炸弹。四.实验步骤(代码分析)该游戏是一个11*11的棋盘,用一个char型的二维数组来表示该棋盘,二维数组中的每一个数组元素就代表了游戏棋盘中的一个棋盘格。该游戏采用面向对象的程序设计方法,主要的功能都封装到不同的类中,定义了以下几个类:1.Board类:该类作为程序的模型定义类,在其中定义了游戏中所使用的数据结构以及对这些数据结构中的数据进行设置和获取的方法。2.BoardView类:该类作为程序的视图定义类,也是游戏的画布屏幕类,
4、在该类中定义了如何根据用户的游戏动作绘制对应的游戏运行画面的方法。3.Bomb类:该类表示游戏中的炸弹,定义了如何显示炸弹的爆炸效果以及炸弹爆炸后对其他相关元素的影响的方法。4.Enemy类:该类表示游戏中的敌人,具体定义了敌人如何移动以及判断敌人是否死亡的方法。5.Player类:该类表示游戏中的主角,定义了游戏主角如何移动、如何防止炸弹以及判断游戏是否死亡的方法。6.Img类:该类定义了游戏中各种图像的构造方法。7.jBombMan类:该类是程序的MIDlet类。(1)jBombMan.javapr
5、ivateDisplayoDisplay;//屏幕对象privateBoardViewoBoardView;//棋盘视图对象privateBoardoBoard;//棋盘对象privatePlayeroPlayer;//主角对象privateEnemyoEnemy;//敌人对象(2)Board.java//定义棋盘的二维数组publicchar[][]chBoard;/*N-None表示什么也没有W-Wall表示砖墙L-Pillar表示岩石P-Player表示游戏主角E-Enemy表示敌人B-Bomb表
6、示炸弹U-Bombunderplayer表示主角正在放置炸弹X-Exploding表示炸弹爆炸*///声明一个随机数对象privateRandomrandom;//声明棋盘的行和列数publicintiCols,iRows;//声明判断游戏是否结束的标识publicvolatilebooleanisGameOver;//声明判断是否玩家胜利的标识publicvolatilebooleanisWin;//构造函数,初始化棋盘的行数和列数,并构造随机数对象publicBoard(intcols,introw
7、s)//定义棋盘的初始化方法publicvoidinit()//判断某个棋盘格中是否是给定的元素publicbooleanisElement(charch,intx,inty)//获取指定的某个棋盘格中的元素publicchargetElement(intx,inty)//设置指定的某个棋盘格中的元素publicvoidsetElement(charch,intx,inty)//判断给定的位置是否在敌人的攻击范围内publicbooleannear(charch,intx,inty)//判断给定的位置是
8、否可以向某个方向移动2步publicbooleannear2(charch,intx,inty)(3)BoardView.javaprivateBoardoBoard;privatePlayeroPlayer;privateEnemyoEnemy;//定义背景色privatefinalintBackgroundColor=0xffffff;//定义每个棋盘格的大小privatefinalintiCellSize=20;//声明内部边框距离坐
此文档下载收益归作者所有