ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:202.20KB ,
资源ID:852545      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/852545.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(手机游戏开发技术实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、手机游戏开发技术实验报告J2ME手机游戏开发技术实验报告实验名称:益智类游戏炸弹人一实验目的 利用J2ME有关知识,设计一款益智类(PUZ)炸弹人(Bombman)游戏程序,是我们能够掌握JavaME游戏开发的基本技巧。二实验环境 Windows 7操作系统,Eclipse,WTK2.5.1,JDK1.6三实验内容 利用自己所学的J2ME知识,进行游戏开发,该游戏的创意是游戏主角在一个随机生存的地图中放置炸弹,以消灭地图中所有的敌人为目的。游戏地图被设计成一个多行多列的棋盘,游戏中的主角和敌人每次都只能按照棋盘中相邻的棋盘格进行移动,而且在地图中还存在不同的障碍物,用来阻挡游戏主角和敌人的移动

2、。游戏主角可以在没有障碍物的地方防止炸弹来引爆敌人或障碍物来获得去路。从中有以下是几个元素的详细功能:(1)空白区:是游戏主角和敌人可以移动的位置及放置炸弹的位置。(2)岩石:地图中的障碍物,用来阻止游戏主角和敌人的且不能被炸弹摧毁。(3)砖墙:也是用来阻止的,不过能被炸弹摧毁变成空白区。(4)敌人:是消灭游戏主角的一方,它需要游戏主角用炸弹将其炸死,其所处 的地方也会变为空白区,敌人在空白区来去自如,一旦碰到游戏主 角,游戏主角会被杀死。(5)游戏主角:游戏中由玩家控制的一方,在空白区移动,可以放置炸弹。四实验步骤(代码分析) 该游戏是一个11*11的棋盘,用一个char型的二维数组来表示该

3、棋盘,二维数组中的每一个数组元素就代表了游戏棋盘中的一个棋盘格。该游戏采用面向对象的程序设计方法,主要的功能都封装到不同的类中,定义了以下几个类:1.Board类:该类作为程序的模型定义类,在其中定义了游戏中所使用的数 据结构以及对这些数据结构中的数据进行设置和获取的方法。2.BoardView类:该类作为程序的视图定义类,也是游戏的画布屏幕类,在 该类中定义了如何根据用户的游戏动作绘制对应的游戏运 行画面的方法。3. Bomb类:该类表示游戏中的炸弹,定义了如何显示炸弹的爆炸效果以及炸 弹爆炸后对其他相关元素的影响的方法。4.Enemy类:该类表示游戏中的敌人,具体定义了敌人如何移动以及判断

4、敌 人是否死亡的方法。5.Player类:该类表示游戏中的主角,定义了游戏主角如何移动、如何防止 炸弹以及判断游戏是否死亡的方法。6.Img类:该类定义了游戏中各种图像的构造方法。7.jBombMan类:该类是程序的MIDlet类。(1)jBombMan.java private Display oDisplay; /屏幕对象 private BoardView oBoardView; /棋盘视图对象 private Board oBoard; /棋盘对象 private Player oPlayer; /主角对象 private Enemy oEnemy; /敌人对象(2) Board.ja

5、va /定义棋盘的二维数组 public char chBoard; /* N - None 表示什么也没有 W - Wall 表示砖墙 L - Pillar 表示岩石 P - Player 表示游戏主角 E - Enemy 表示敌人 B - Bomb 表示炸弹 U - Bomb under player 表示主角正在放置炸弹 X - Exploding 表示炸弹爆炸 */ /声明一个随机数对象 private Random random; /声明棋盘的行和列数 public int iCols, iRows; /声明判断游戏是否结束的标识 public volatile boolean is

6、GameOver; /声明判断是否玩家胜利的标识 public volatile boolean isWin; /构造函数,初始化棋盘的行数和列数,并构造随机数对象 public Board( int cols, int rows ) /定义棋盘的初始化方法 public void init() /判断某个棋盘格中是否是给定的元素 public boolean isElement( char ch, int x, int y ) /获取指定的某个棋盘格中的元素 public char getElement( int x, int y ) /设置指定的某个棋盘格中的元素 public void

7、setElement( char ch, int x, int y ) /判断给定的位置是否在敌人的攻击范围内 public boolean near( char ch, int x, int y ) /判断给定的位置是否可以向某个方向移动2步 public boolean near2( char ch, int x, int y ) (3)BoardView.javaprivate Board oBoard;private Player oPlayer;private Enemy oEnemy;/定义背景色private final int BackgroundColor = 0xfffff

8、f;/定义每个棋盘格的大小private final int iCellSize = 20;/声明内部边框距离坐标原点的横坐标距离private final int iLeft = 10;/声明内部边框距离坐标原点的纵坐标距离private final int iTop = 10; public BoardView( Board board )public void setPlayer( Player player )public void setEnemy( Enemy enemy )/绘制游戏屏幕public void paint( Graphics g )/定义绘制游戏结束的方法priv

9、ate void paintGameOver( Graphics g )/定义绘制游戏玩家获胜的方法private void paintWin( Graphics g )/绘制游戏棋盘边框的方法private void paintFrame( Graphics g )/定义绘制棋盘的方法private void paintBoard( Graphics g )/定义响应按键按下的事件处理方法public void keyPressed( int code )/定义游戏结束或者玩家胜利时的事件处理方法private void keyForInit( int action )/定义游戏过程中的事件

10、处理方法private void keyForPlay( int action )/定义重新绘制棋盘格的方法public void repaintCells( int x, int y, int w, int h ) (4)Player.javaprivate Board oBoard;private BoardView oBoardView;private Enemy oEnemy;private Bomb oBomb;private Random random; private int iX, iY;/游戏主角的构造函数public Player( Board board, BoardVi

11、ew boardview )/游戏主角的初始化方法public void init()public void setEnemy( Enemy enemy )/清除炸弹对象的方法public void clearBomb()/判断游戏主角能否移动到给定的棋盘格上private boolean canGo( int x, int y )/定义放置炸弹的方法public void fire()/定义游戏主角向左移动的方法public void left()/定义游戏主角向右移动的方法public void right()/定义游戏主角向上移动的方法public void up()/定义游戏主角向下移

12、动的方法public void down()/定义游戏主角死掉的方法public void die() (5)Enemy.java private Board oBoard; private BoardView oBoardView; public Player oPlayer; /设置敌人每次移动的间隔时间 private final int iMoveTime = 500; private Random random; /声明游戏中敌人的数量 private int iNumbers; /声明所有敌人所在位置的二维数组 private int arrPositions; private v

13、olatile boolean stopThread = false; /初始化敌人对象的构造函数 public Enemy( Board board, BoardView boardview, Player player, int numbers ) /敌人对象的初始化方法 public void init()public void stopThread()/定义线程的方法体,在该方法中将定义敌人如何进行移动public void run()/定义敌人的移动方法private void move( int i )/判断能否移动到指定棋盘格位置上的方法private boolean canGo

14、( int x, int y )/定义给定位置上的敌人死亡的方法public void die( int x, int y )/定义游戏中的所有敌人对象全部死亡的方法public void dieAll() (6) Bomb.java private Board oBoard; private BoardView oBoardView; private Player oPlayer; private Enemy oEnemy; /定义炸弹爆炸前等待的时间 private final int iExplodingTime = 4000; /定义爆炸效果显示的时间 private final in

15、t iDisapearTime = 1000; private int iX, iY; private volatile boolean stopThread = false; /炸弹类的构造方法 public Bomb( Board board, BoardView boardview, Player player, Enemy enemy, int x, int y )public void stopThread()/根据给定的单元格判断炸弹爆炸后的结果的方法private void explode( int x, int y )/清空给定的单元格中的元素private void clear( int x, int y )/定义线程的方法体,在该方法中将定义炸弹爆炸的效果public void run() (7) i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1