手機(jī)游戲開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告_第1頁(yè)
手機(jī)游戲開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告_第2頁(yè)
手機(jī)游戲開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告_第3頁(yè)
手機(jī)游戲開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告_第4頁(yè)
手機(jī)游戲開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《J2ME手機(jī)游戲開發(fā)技術(shù)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:益智類游戲一一炸彈人一.實(shí)驗(yàn)?zāi)康睦肑2ME有關(guān)知識(shí),設(shè)計(jì)一款益智類(PUZ)炸彈人(Bombman)游戲程序,是我們能夠掌握J(rèn)avaME游戲開發(fā)的基本技巧。二.實(shí)驗(yàn)環(huán)境Windows7操作系統(tǒng),Eclipse,WTK2.5.1,JDK1.6三.實(shí)驗(yàn)內(nèi)容利用自己所學(xué)的J2ME知識(shí),進(jìn)行游戲開發(fā),該游戲的創(chuàng)意是游戲主角在一個(gè)隨機(jī)生存的地圖中放置炸彈,以消滅地圖中所有的敵人為目的。游戲地圖被設(shè)計(jì)成一個(gè)多行多列的棋盤,游戲中的主角和敵人每次都只能按照棋盤中相鄰的棋盤格進(jìn)行移動(dòng),而且在地圖中還存在不同的障礙物,用來(lái)阻擋游戲主角和敵人的移動(dòng)。游戲主角可以在沒有障礙物的地方防止炸彈來(lái)引爆敵人或障礙物來(lái)獲得去路。從中有以下是幾個(gè)元素的詳細(xì)功能:(1)空白區(qū):是游戲主角和敵人可以移動(dòng)的位置及放置炸彈的位置。(2)巖石:地圖中的障礙物,用來(lái)阻止游戲主角和敵人的且不能被炸彈摧毀。(3)磚墻:也是用來(lái)阻止的,不過(guò)能被炸彈摧毀變成空白區(qū)。(4)敵人:是消滅游戲主角的一方,它需要游戲主角用炸彈將其炸死,其所處的地方也會(huì)變?yōu)榭瞻讌^(qū),敵人在空白區(qū)來(lái)去自如,一旦碰到游戲主角,游戲主角會(huì)被殺死。(5)游戲主角:游戲中由玩家控制的一方,在空白區(qū)移動(dòng),可以放置炸彈。四.實(shí)驗(yàn)步驟(代碼分析)該游戲是一個(gè)11*11的棋盤,用一個(gè)char型的二維數(shù)組來(lái)表示該棋盤,二維數(shù)組中的每一個(gè)數(shù)組元素就代表了游戲棋盤中的一個(gè)棋盤格。該游戲采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,主要的功能都封裝到不同的類中,定義了以下幾個(gè)類:1.Board類:該類作為程序的模型定義類,在其中定義了游戲中所使用的數(shù)據(jù)結(jié)構(gòu)以及對(duì)這些數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行設(shè)置和獲取的方法。2.BoardView類:該類作為程序的視圖定義類,也是游戲的畫布屏幕類,在該類中定義了如何根據(jù)用戶的游戲動(dòng)作繪制對(duì)應(yīng)的游戲運(yùn)行畫面的方法。.Bomb類:該類表示游戲中的炸彈,定義了如何顯示炸彈的爆炸效果以及炸彈爆炸后對(duì)其他相關(guān)元素的影響的方法。.Enemy類:該類表示游戲中的敵人,具體定義了敵人如何移動(dòng)以及判斷敵人是否死亡的方法。.Player類:該類表示游戲中的主角,定義了游戲主角如何移動(dòng)、如何防止炸彈以及判斷游戲是否死亡的方法。6.Img類:該類定義了游戲中各種圖像的構(gòu)造方法。7.jBombMan類:該類是程序的MIDlet類。jBombManjavaprivateDisplayoDisplay。 〃屏幕對(duì)象privateBoardViewoBoardView。 〃棋盤視圖對(duì)象privateBoardoBoard。 〃棋盤對(duì)象privatePlayeroPlayer。 〃主角對(duì)象privateEnemyoEnemy。 〃敵人對(duì)象Board.java〃定義棋盤的二維數(shù)組publicchar口□chBoard。/*N-None表示什么也沒有W-Wall表示磚墻L-Pillar表示巖石P-Player表示游戲主角E-Enemy表示敵人B-Bomb表示炸彈U-Bombunderplayer表示主角正在放置炸彈X-Exploding表示炸彈爆炸*/〃聲明一個(gè)隨機(jī)數(shù)對(duì)象privateRandomrandom。〃聲明棋盤的行和列數(shù)publicintiCols,iRows?!暶髋袛嘤螒蚴欠窠Y(jié)束的標(biāo)識(shí)publicvolatilebooleanisGameOver?!暶髋袛嗍欠裢婕覄倮臉?biāo)識(shí)publicvolatilebooleanisWin?!?gòu)造函數(shù),初始化棋盤的行數(shù)和列數(shù),并構(gòu)造隨機(jī)數(shù)對(duì)象publicBoard(intcols,introws)〃定義棋盤的初始化方法publicvoidinit()〃判斷某個(gè)棋盤格中是否是給定的元素publicbooleanisElement(charch,intx,inty)〃獲取指定的某個(gè)棋盤格中的元素publicchargetElement(intx,inty)〃設(shè)置指定的某個(gè)棋盤格中的元素publicvoidsetElement(charch,intx,inty)〃判斷給定的位置是否在敵人的攻擊范圍內(nèi)publicbooleannear(charch,intx,inty)〃判斷給定的位置是否可以向某個(gè)方向移動(dòng)2步publicbooleannear2(charch,intx,inty)(3)BoardView.javaprivateBoardoBoard。privatePlayeroPlayer。privateEnemyoEnemy。〃定義背景色privatefinalintBackgroundColor=0xffffff?!ǘx每個(gè)棋盤格的大小privatefinalintiCellSize=20。〃聲明內(nèi)部邊框距離坐標(biāo)原點(diǎn)的橫坐標(biāo)距離privatefinalintiLeft=10。〃聲明內(nèi)部邊框距離坐標(biāo)原點(diǎn)的縱坐標(biāo)距離privatefinalintiTop=10。publicBoardView(Boardboard)publicvoidsetPlayer(Playerplayer)publicvoidsetEnemy(Enemyenemy)〃繪制游戲屏幕publicvoidpaint(Graphicsg)〃定義繪制游戲結(jié)束的方法privatevoidpaintGameOver(Graphicsg)〃定義繪制游戲玩家獲勝的方法privatevoidpaintWin(Graphicsg)〃繪制游戲棋盤邊框的方法privatevoidpaintFrame(Graphicsg)〃定義繪制棋盤的方法privatevoidpaintBoard(Graphicsg)〃定義響應(yīng)按鍵按下的事件處理方法publicvoidkeyPressed(intcode)〃定義游戲結(jié)束或者玩家勝利時(shí)的事件處理方法privatevoidkeyForInit(intaction)〃定義游戲過(guò)程中的事件處理方法privatevoidkeyForPlay(intaction)〃定義重新繪制棋盤格的方法publicvoidrepaintCells(intx,inty,intw,inth)(4)Player.javaprivateBoardoBoard。privateBoardViewoBoardView。privateEnemyoEnemy。privateBomboBomb。privateRandomrandomoprivateintiX,iY?!ㄓ螒蛑鹘堑臉?gòu)造函數(shù)publicPlayer(Boardboard,BoardViewboardview)〃游戲主角的初始化方法publicvoidinit()publicvoidsetEnemy(Enemyenemy)〃清除炸彈對(duì)象的方法publicvoidclearBomb()〃判斷游戲主角能否移動(dòng)到給定的棋盤格上privatebooleancanGo(intx,inty)〃定義放置炸彈的方法publicvoidfire()〃定義游戲主角向左移動(dòng)的方法publicvoidleft()〃定義游戲主角向右移動(dòng)的方法publicvoidright()〃定義游戲主角向上移動(dòng)的方法publicvoidup()〃定義游戲主角向下移動(dòng)的方法publicvoiddown()〃定義游戲主角死掉的方法publicvoiddie()Enemy.javaprivateBoardoBoard。privateBoardViewoBoardView。publicPlayeroPlayer?!ㄔO(shè)置敵人每次移動(dòng)的間隔時(shí)間privatefinalintiMoveTime=500。privateRandomrandom?!暶饔螒蛑袛橙说臄?shù)量privateintiNumbers?!暶魉袛橙怂谖恢玫亩S數(shù)組privateint口口arrPositions。privatevolatilebooleanstopThread=false。〃初始化敵人對(duì)象的構(gòu)造函數(shù)publicEnemy(Boardboard,BoardViewboardview,Playerplayer,intnumbers)〃敵人對(duì)象的初始化方法publicvoidinit()publicvoidstopThread()〃定義線程的方法體,在該方法中將定義敵人如何進(jìn)行移動(dòng)publicvoidrun()〃定義敵人的移動(dòng)方法privatevoidmove(inti)〃判斷能否移動(dòng)到指定棋盤格位置上的方法privatebooleancanGo(intx,inty)〃定義給定位置上的敵人死亡的方法publicvoiddie(intx,inty)〃定義游戲中的所有敵人對(duì)象全部死亡的方法publicvoiddieAll()Bomb.javaprivateBoardoBoard。privateBoardViewoBoardView。privatePlayeroPlayer。privateEnemyoEnemy?!ǘx炸彈爆炸前等待的時(shí)間privatefinalintiExplodingTime=4000?!ǘx爆炸效果顯示的時(shí)間privatefinalintiDisapearTime=1000。privateintiX,iY。privatevolatilebooleanstopThread=false?!ㄕ◤楊惖臉?gòu)造方法publicBomb(Boardboard,BoardViewboardview,Playerplayer,Enemyenemy,intx,inty)publicvoidstopThread()〃根據(jù)給定的單元格判斷炸彈爆炸后的結(jié)果的方法privatevoidexplode(intx,inty)〃清空給定的單元格中的元素privatevoidclear(intx,inty)〃定義線程的方法體,在該方法中將定義炸彈爆炸的效果publicvoidrun()img.java〃創(chuàng)建游戲中炸彈圖像的方法,其余圖像方法一樣publicstaticImageimgBomb=Image.createImage(newbyte[]{{…},(int)0,(int)163})。五.實(shí)驗(yàn)結(jié)果與分析(包括代碼和實(shí)驗(yàn)歸納總結(jié))程序代碼:1.游戲的模型類實(shí)現(xiàn)⑴Board.javapackagecom.mot.j2me.midlets.jbombman。importjava.util.*。//定義游戲的模型的類,可以將其看做一個(gè)棋盤publicclassBoard{//定義棋盤的二維數(shù)組publicchar[][]chBoard/*N-None表示什么也沒有W-Wall表示磚墻L-Pillar表示巖石P-Player表示游戲主角E-Enemy表示敵人B-Bomb表示炸彈U-Bombunderplayer表示主角正在放置炸彈X-Exploding表示炸彈爆炸*///聲明一個(gè)隨機(jī)數(shù)對(duì)象privateRandomrandom//聲明棋盤的行和列數(shù)publicintiCols,iRows。//聲明判斷游戲是否結(jié)束的標(biāo)識(shí)publicvolatilebooleanisGameOver//聲明判斷是否玩家勝利的標(biāo)識(shí)publicvolatilebooleanisWin//構(gòu)造函數(shù),初始化棋盤的行數(shù)和列數(shù),并構(gòu)造隨機(jī)數(shù)對(duì)象publicBoard(intcols,introws){//構(gòu)造隨機(jī)數(shù)對(duì)象random=newRandom()。iCols=cols。iRows=rows。//構(gòu)造表示棋盤的二維數(shù)組chBoard=newchar[iCols][iRows]。//調(diào)用棋盤的初始化方法init()。}//定義棋盤的初始化方法publicvoidinit(){//表示游戲結(jié)束的標(biāo)識(shí)設(shè)置為falseisGameOver=false//表示玩家獲勝的標(biāo)識(shí)設(shè)置為falseisWin=false//遍歷二維數(shù)組,為數(shù)組的每個(gè)元素設(shè)置值為'N',表示游戲中每個(gè)棋盤格上都為空f(shuō)or(inti=0。i<iCols。i++)for(intj=0。j<iRows。j++)chBoard[i][j]='N'//遍歷二維數(shù)組,每相隔一個(gè)元素設(shè)置值為'L',表示游戲中每相隔的棋盤格上放置一個(gè)巖石for(inti=1。i<iCols。i+=2)for(intj=1。j<iRows。j+=2)chBoard[i][j]='L'//遍歷二維數(shù)組,在棋盤上非巖石的位置隨機(jī)放置磚墻for(inti=0。i<iCols。i++)for(intj=0。j<iRows。j++)//判斷當(dāng)前遍歷到的棋盤格是否為空if(chBoard[i][j]=='N')//如果當(dāng)前棋盤格位置為空,則根據(jù)隨機(jī)數(shù)的判斷條件是否成立來(lái)判斷是否放置磚墻if(Math.abs(random.nextInt())%2==0)chBoard[i][j]='W'}//判斷某個(gè)棋盤格中是否是給定的元素publicbooleanisElement(charch,intx,inty){if(x<0)returnfalseif(x>=iCols)returnfalseif(y<0)returnfalseif(y>=iRows)returnfalsereturn(chBoard[x][y]==ch)。}//獲取指定的某個(gè)棋盤格中的元素publicchargetElement(intx,inty){if(x<0)return'?'if(x>=iCols)return'?'if(y<0)return'?'if(y>=iRows)return'?'returnchBoard[x][y]。}//設(shè)置指定的某個(gè)棋盤格中的元素publicvoidsetElement(charch,intx,inty){if(ch=='?')returnif(x<0)returnif(x>=iCols)returnif(y<0)returnif(y>=iRows)returnchBoard[x][y]=ch。}//判斷給定的位置是否在敵人的攻擊范圍內(nèi)publicbooleannear(charch,intx,inty){returnisElement(ch,x-1,y)||isElement(ch,x,y-1)||isElement(ch,x+1,y)||isElement(ch,x,y+1)。}//判斷給定的位置是否可以向某個(gè)方向移動(dòng)2步publicbooleannear2(charch,intx,inty){TOC\o"1-5"\h\zreturn(isElement(ch,x-1,y )&&isElement(ch,x-2,y ))||( isElement( ch, x,y-1)&&isElement( ch, x,y-2 ))||( isElement( ch, x+1,y)&&isElement( ch, x+2,y ))||( isElement( ch, x,y+1)&&isElement( ch, x,y+2 ))。}}.游戲的視圖類實(shí)現(xiàn)⑴BoardView.javapackagecom.mot.j2me.midlets.jbombman。importjavax.microedition.lcdui.*。//游戲的畫布屏幕類publicclassBoardViewextendsCanvas{privateBoardoBoardprivatePlayeroPlayerprivateEnemyoEnemy//定義背景色privatefinalintBackgroundColor=Oxffffff。//定義每個(gè)棋盤格的大小privatefinalintiCellSize=20。//聲明內(nèi)部邊框距離坐標(biāo)原點(diǎn)的橫坐標(biāo)距離privatefinalintiLeft=10。//聲明內(nèi)部邊框距離坐標(biāo)原點(diǎn)的縱坐標(biāo)距離privatefinalintiTop=10。publicBoardView(Boardboard){oBoard=board。}publicvoidsetPlayer(Playerplayer){oPlayer=player。}publicvoidsetEnemy(Enemyenemy){oEnemy=enemy。}//繪制游戲屏幕publicvoidpaint(Graphicsg){//聲明同步塊,對(duì)Graphics對(duì)象g進(jìn)行同步synchronized(g){//如果游戲結(jié)束,則繪制游戲結(jié)束的界面if(oBoard.isGameOver)paintGameOver(g)。//如果玩家獲勝,則繪制玩家獲勝的界面elseif(oBoard.isWin)paintWin(g)。//否則繪制當(dāng)前游戲運(yùn)行的界面elsepaintBoard(g)。}}//定義繪制游戲結(jié)束的方法privatevoidpaintGameOver(Graphicsg){g.drawImage( Img.imgGameOver, 60, 100,Graphics.LEFT〔Graphics.TOP)。}//定義繪制游戲玩家獲勝的方法privatevoidpaintWin(Graphicsg){g.drawImage( Img.imgCongratulation, 60, 100,Graphics.LEFT〔Graphics.TOP)。}//繪制游戲棋盤邊框的方法privatevoidpaintFrame(Graphicsg){g.drawRect(0,0,239,239)。g.drawRect(1,1,237,237)。g.drawRect(2,2,235,235)。g.drawRect(3,3,233,233)。g.drawRect(7,7,225,225)。g.drawRect(8,8,223,223)。}//定義繪制棋盤的方法privatevoidpaintBoard(Graphicsg){//判斷畫布屏幕的工作區(qū)的原點(diǎn)是否在坐標(biāo)軸的原點(diǎn)上,如果是則直接繪制游戲棋盤的邊框if(g.getClipX()==0)paintFrame(g)。//設(shè)置畫布屏幕的工作區(qū)的左上角坐標(biāo)以及高度和寬度intx=(g.getClipX()-iLeft)/iCellSizeinty=(g.getClipY()-iTop)/iCellSizeintw=g.getClipWidth()/iCellSizeinth=g.getClipHeight()/iCellSizeSystem.out.println("paint:x="+x+",y="+y+",w="+w+",h="+h)。//如果畫布屏幕的工作區(qū)的高度超過(guò)了棋盤的高,則將工作區(qū)的高度設(shè)置為棋盤的高度if(h>oBoard.iRows)h=oBoard.iRows//根據(jù)工作區(qū)的位置,開始繪制棋盤中的元素for(inti=x。i<x+w。i++)for(intj=y。j<y+h。j++)//根據(jù)遍歷得到的數(shù)組中的元素類型進(jìn)行繪制switch(oBoard.chBoard[i][j]){case,N'://當(dāng)前數(shù)組元素中的類型表示空白區(qū)域,則繪制空白區(qū)域的圖像g.setColor(BackgroundColor)。g.fillRect(iLeft+i*iCellSize,iTop+j*iCellSize,iCellSize,iCellSize)。breakcase'W'://當(dāng)前數(shù)組元素中的類型表示磚墻,則繪制磚墻的圖像g.drawImage(Img.imgWall,iLeft+i*iCellSize,iTop+j*iCellSize,Graphics.LEFT〔Graphics.TOP)。breakcase'L'://當(dāng)前數(shù)組元素中的類型表示巖石,則繪制巖石的圖像g.drawImage(Img.imgPillar,iLeft+i*iCellSize,iTop+j*iCellSize,Graphics.LEFT〔Graphics.TOP)。breakcase'P'://當(dāng)前數(shù)組元素中的類型表示游戲主角,則繪制游戲主角的圖像case'U'://當(dāng)前數(shù)組元素中的類型表示主角正在放置炸彈,則繪制游戲主角的圖像g.drawImage(Img.imgPlayer,iLeft+i*iCellSize,iTop+j*iCellSize,Graphics.LEFT〔Graphics.TOP)。breakcase'E'://當(dāng)前數(shù)組元素中的類型表示敵人,則繪制敵人的圖像g.drawImage(Img.imgEnemy,iLeft+i*iCellSize,iTop+j*iCellSize,Graphics.LEFT〔Graphics.TOP)。breakcase'B'://當(dāng)前數(shù)組元素中的類型表示炸彈,則繪制炸彈的圖像g.drawImage(Img.imgBomb,iLeft+i*iCellSize,iTop+j*iCellSize,Graphics.LEFT〔Graphics.TOP)。breakcase'X'://當(dāng)前數(shù)組元素中的類型表示炸彈爆炸,則繪制炸彈爆炸的圖像g.drawImage(Img.imgExploding,iLeft+i*iCellSize,iTop+j*iCellSize,Graphics.LEFT〔Graphics.TOP)。break}}//定義響應(yīng)按鍵按下的事件處理方法publicvoidkeyPressed(intcode){//如果游戲結(jié)束或者玩家勝利,則調(diào)用keyForInit()方法響應(yīng)按鍵事件if(oBoard.isGameOver〔〔oBoard.isWin)keyForInit(getGameAction(code))。//否則調(diào)用keyForPlay()方法響應(yīng)按鍵事件elsekeyForPlay(getGameAction(code))。}//定義游戲結(jié)束或者玩家勝利時(shí)的事件處理方法privatevoidkeyForInit(intaction){//如果用戶按下了手機(jī)中的Select按鍵,則游戲進(jìn)行初始化if(action!=FIRE)return//棋盤初始化oBoard.init()。//敵人初始化oEnemy.init()。//游戲主角初始化oPlayer.init()。//初始化完成后重新繪制屏幕repaint()。}//定義游戲過(guò)程中的事件處理方法privatevoidkeyForPlay(intaction){switch(action){caseFIRE:oPlayer.fire()。breakcaseLEFT:oPlayer.left()。breakcaseRIGHT:oPlayer.right()。breakcaseUP:oPlayer.up()。breakcaseDOWN:oPlayer.down()。break}}//定義重新繪制棋盤格的方法publicvoidrepaintCells(intx,inty,intw,inth){if(x<0)x=0。if(x>=oBoard.iCols)x=oBoard.iCols-1。if(x+w>oBoard.iCols)w=oBoard.iCols-x。if(y<0)y=0。if(y>=oBoard.iRows)y=oBoard.iRows-1。if(y+h>oBoard.iRows)h=oBoard.iRows-y。repaint(iLeft+x*iCellSize,iTop+y*iCellSize,w*iCellSize,h*iCellSize)。}}.游戲的主角類實(shí)現(xiàn)(1)Player.javapackagecom.mot.j2me.midlets.jbombman。importjava.util.*。//游戲中的主角類publicclassPlayer{privateBoardoBoard。privateBoardViewoBoardViewprivateEnemyoEnemyprivateBomboBombprivateRandomrandomprivateintiX,iY//游戲主角的構(gòu)造函數(shù)publicPlayer(Boardboard,BoardViewboardview){oBoard=board。oBoardView=boardview。random=newRandom()。//調(diào)用游戲主角的初始化方法init()。}//游戲主角的初始化方法publicvoidinit(){while(true){//獲取游戲主角初始化的隨機(jī)位置iX=Math.abs(random.nextInt())%oBoard.iColsiY=Math.abs(random.nextInt())%oBoard.iRows//如果隨機(jī)位置上不為空,則跳出當(dāng)前本次循環(huán),再重新獲取隨機(jī)位置if(oBoard.chBoard[iX][iY]!='N')continue//如果隨機(jī)位置在敵人的攻擊范圍內(nèi),則跳出當(dāng)前本次循環(huán),再重新獲取隨機(jī)位置if(oBoard.near('E',iX,iY))continue//如果隨機(jī)位置不能夠向任何方向移動(dòng)2步,則跳出當(dāng)前本次循環(huán),再重新獲取隨機(jī)位置if(!oBoard.near2('N',iX,iY))continue//如果獲得一個(gè)合適的隨機(jī)位置,則跳出死循環(huán),繼續(xù)向下執(zhí)行break}//在棋盤中根據(jù)獲取的隨機(jī)位置設(shè)置對(duì)應(yīng)的棋盤格中的元素為游戲主角oBoard.chBoard[iX][iY]='P'}publicvoidsetEnemy(Enemyenemy){oEnemy=enemy。}//清除炸彈對(duì)象的方法publicvoidclearBomb(){oBomb=nullSystem.out.println("deleteBomb")。}//判斷游戲主角能否移動(dòng)到給定的棋盤格上privatebooleancanGo(intx,inty){//如果要移動(dòng)到的棋盤格中沒有元素,則返回trueif(oBoard.isElement('N',x,y))returntrue//如果要移動(dòng)到的棋盤格中是敵人,則游戲主角死掉if(oBoard.isElement('E',x,y))die()。//如果上述條件都不成立,則不能移動(dòng)到給定的單元格中,返回falsereturnfalse}//定義放置炸彈的方法publicvoidfire(){//構(gòu)造一個(gè)炸彈對(duì)象oBomb=newBomb(oBoard,oBoardView,this,oEnemy,iX,iY)。//啟動(dòng)炸彈對(duì)象中的線程方法體oBomb.start()。System.out.println("newBomb:x="+iX+",y="+iY)。}//定義游戲主角向左移動(dòng)的方法publicvoidleft(){//如果不能向左移動(dòng),則返回if(!canGo(iX-1,iY))return//如果移動(dòng)之前的棋盤格中的元素是游戲主角放置炸彈,則移動(dòng)之前的棋盤格中放置炸彈元素if(oBoard.chBoard[iX][iY]=='U')oBoard.chBoard[iX][iY]='B'else//否則的話,移動(dòng)之前的棋盤格中設(shè)置為空oBoard.chBoard[iX][iY]='N'//游戲主角的列數(shù)減1iX—。//設(shè)置移動(dòng)后的棋盤格中的元素為游戲主角oBoard.chBoard[iX][iY]='P'//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(iX,iY,2,1)。}//定義游戲主角向右移動(dòng)的方法publicvoidright(){//如果不能向右移動(dòng),則返回if(!canGo(iX+1,iY))return//如果移動(dòng)之前的棋盤格中的元素是游戲主角放置炸彈,則移動(dòng)之前的棋盤格中放置炸彈元素if(oBoard.chBoard[iX][iY]=='U')oBoard.chBoard[iX][iY]='B'else//否則的話,移動(dòng)之前的棋盤格中設(shè)置為空oBoard.chBoard[iX][iY]='N'//游戲主角的列數(shù)加1iX++。//設(shè)置移動(dòng)后的棋盤格中的元素為游戲主角oBoard.chBoard[iX][iY]='P'//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(iX-1,iY,2,1)。}//定義游戲主角向上移動(dòng)的方法publicvoidup(){//如果不能向上移動(dòng),則返回if(!canGo(iX,iY-1))return//如果移動(dòng)之前的棋盤格中的元素是游戲主角放置炸彈,則移動(dòng)之前的棋盤格中放置炸彈元素if(oBoard.chBoard[iX][iY]=='U')oBoard.chBoard[iX][iY]='B'else//否則的話,移動(dòng)之前的棋盤格中設(shè)置為空oBoard.chBoard[iX][iY]='N'//游戲主角的行數(shù)減1iY—。//設(shè)置移動(dòng)后的棋盤格中的元素為游戲主角oBoard.chBoard[iX][iY]='P'//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(iX,iY,1,2)。}//定義游戲主角向下移動(dòng)的方法publicvoiddown(){//如果不能向上移動(dòng),則返回if(!canGo(iX,iY+1))return//如果移動(dòng)之前的棋盤格中的元素是游戲主角放置炸彈,則移動(dòng)之前的棋盤格中放置炸彈元素if(oBoard.chBoard[iX][iY]=='U')oBoard.chBoard[iX][iY]='B'else//否則的話,移動(dòng)之前的棋盤格中設(shè)置為空oBoard.chBoard[iX][iY]='N'//游戲主角的行數(shù)加1iY++。//設(shè)置移動(dòng)后的棋盤格中的元素為游戲主角oBoard.chBoard[iX][iY]='P'//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(iX,iY-1,1,2)。}//定義游戲主角死掉的方法publicvoiddie(){System.out.println("Playerdie:x="+iX+",y="+iY)。//殺死游戲中搜有的敵人oEnemy.dieAll()。//設(shè)置游戲結(jié)束的標(biāo)識(shí)為trueoBoard.isGameOver=true//重新繪制畫布屏幕oBoardView.repaint()。}}4.游戲的敵人類實(shí)現(xiàn)⑴Enemy.javapackagecom.mot.j2me.midlets.jbombman。importjava.util.*。//游戲中的敵人類publicclassEnemyextendsThread{privateBoardoBoardprivateBoardViewoBoardViewpublicPlayeroPlayer//設(shè)置敵人每次移動(dòng)的間隔時(shí)間privatefinalintiMoveTime=500。privateRandomrandom//聲明游戲中敵人的數(shù)量privateintiNumbers//聲明所有敵人所在位置的二維數(shù)組privateint[][]arrPositionsprivatevolatilebooleanstopThread=false//初始化敵人對(duì)象的構(gòu)造函數(shù)publicEnemy(Boardboard,Boardviewboardview,Playerplayer,intnumbers){oBoard=board。oBoardView=boardview。oPlayer=player。iNumbers=numbers。arrPositions=newint[iNumbers][2]。random=newRandom()。//調(diào)用敵人對(duì)象的初始化方法init()。}//敵人對(duì)象的初始化方法publicvoidinit(){intx,y。//隨機(jī)將游戲中的敵人放置在棋盤中for(inti=0。i<iNumbers。 ){//隨機(jī)得到每個(gè)敵人在棋盤格中的位置x=Math.abs(random.nextInt())%oBoard.iColsy=Math.abs(random.nextInt())%oBoard.iRows//如果得到的隨機(jī)位置上已經(jīng)有其他元素了,則跳出本次循環(huán)if(oBoard.chBoard[x][y]!='N')continue//如果得到的隨機(jī)位置上為空,則將敵人元素放置在該單元格中oBoard.chBoard[x][y]='E'//將敵人對(duì)象所處的單元格位置保存在數(shù)組中arrPositions[i][0]=x。arrPositions[i][1]=y。//繼續(xù)本次循環(huán)i++。}}publicvoidstopThread(){stopThread=true}//定義線程的方法體,在該方法中將定義敵人如何進(jìn)行移動(dòng)publicvoidrun(){while(!stopThread){try{//敵人對(duì)象靜止一段時(shí)間sleep(iMoveTime)。//依次循環(huán)設(shè)置每個(gè)敵人對(duì)象是如何在期盼中進(jìn)行移動(dòng)的for(inti=0。i<iNumbers。 i++)//如果該敵人對(duì)象沒有被消滅,則調(diào)用move()方法進(jìn)行移動(dòng)if(arrPositions[i][0]!=-1)move(i)。}catch(InterruptedExceptionie){}}}//定義敵人的移動(dòng)方法privatevoidmove(inti){intx,y。//隨機(jī)獲得敵人移動(dòng)的方向switch(random.nextInt()%4){case0://向左移動(dòng)//當(dāng)前的棋盤格行不變,列減1x=arrPositions[i][0]-1。y=arrPositions[i][1]。//判斷能否移動(dòng)到給定的棋盤格位置if(canGo(x,y)){System.out.println("Enemy"+i+"Left:x="+x+",y="+y)。//設(shè)置移動(dòng)前的位置沒有任何元素,移動(dòng)后的位置為敵人元素oBoard.chBoard[x+1][y]='N'oBoard.chBoard[x][y]='E'//修改二維數(shù)組中表示該敵人對(duì)象的位置的值arrPositions[i][0]=x。//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(x,y,2,1)。}breakcase1://向右移動(dòng)//當(dāng)前的棋盤格行不變,歹U加1x=arrPositions[i][0]+1。y=arrPositions[i][1]。//判斷能否移動(dòng)到給定的棋盤格位置if(canGo(x,y)){System.out.println("Enemy"+i+"Right:x="+x+",y="+y)。//設(shè)置移動(dòng)前的位置沒有任何元素,移動(dòng)后的位置為敵人元素oBoard.chBoard[x-1][y]='N'oBoard.chBoard[x][y]='E'//修改二維數(shù)組中表示該敵人對(duì)象的位置的值arrPositions[i][0]=x。//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(x-1,y,2,1)。}breakcase2://向下移動(dòng)//當(dāng)前的棋盤格列不變,行減1x=arrPositions[i][0]。y=arrPositions[i][1]-1。//判斷能否移動(dòng)到給定的棋盤格位置if(canGo(x,y)){System.out.println("Enemy"+i+"Down:x="+x+",y="+y)。//設(shè)置移動(dòng)前的位置沒有任何元素,移動(dòng)后的位置為敵人元素oBoard.chBoard[x][y+1]='N'oBoard.chBoard[x][y]='E'//修改二維數(shù)組中表示該敵人對(duì)象的位置的值arrPositions[i][1]=y。//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(x,y,1,2)。}breakcase3://向上移動(dòng)//當(dāng)前的棋盤格列不變,行加1x=arrPositions[i][0]。y=arrPositions[i][1]+1。//判斷能否移動(dòng)到給定的棋盤格位置if(canGo(x,y)){System.out.println("Enemy"+i+"Up:x="+x+",y="+y)。//設(shè)置移動(dòng)前的位置沒有任何元素,移動(dòng)后的位置為敵人元素oBoard.chBoard[x][y-1]='N'oBoard.chBoard[x][y]='E'//修改二維數(shù)組中表示該敵人對(duì)象的位置的值arrPositions[i][1]=y。//在畫布屏幕上重繪指定的區(qū)域oBoardView.repaintCells(x,y-1,1,2)。}break}}//判斷能否移動(dòng)到指定棋盤格位置上的方法privatebooleancanGo(intx,inty){//如果要移動(dòng)到的棋盤格上沒有任何元素,則返回trueif(oBoard.isElement('N',x,y))returntrue//如果要移動(dòng)到的棋盤格上是游戲玩家,則游戲玩家死亡,并返回falseif(oBoard.isElement('P',x,y))oPlayer.die()。returnfalse}//定義給定位置上的敵人死亡的方法publicvoiddie(intx,inty){System.out.println("Bombdie:x="+x+",y="+y)。inti。//遍歷游戲中的全部敵人,判斷是否有敵人在給定的棋盤格上,如果有則設(shè)置其列值為-1,表示該敵人已經(jīng)死亡for(i=0。i<iNumbers。i++)if((arrPositions[i][0]==x)&&(arrPositions[i][1]==y)){arrPositions[i][0]=-1。break}//再次重新遍歷游戲中的全部敵人,如果碰到一個(gè)未死亡的,則結(jié)束循環(huán),如果循環(huán)的計(jì)數(shù)值等于游戲中全部敵人的數(shù)量,則表示玩家獲勝for(i=0。i<iNumbers。i++)if(arrPositions[i][0]!=-1)break//判斷循環(huán)計(jì)數(shù)值是否等于游戲中全部敵人的數(shù)量,如果是,則設(shè)置玩家獲勝的標(biāo)識(shí),并重新繪制畫布屏幕if(i==iNumbers){oBoard.isWin=trueoBoardView.repaint()。}}//定義游戲中的所有敵人對(duì)象全部死亡的方法publicvoiddieAll(){//遍歷全部游戲中的敵人,設(shè)置它們的列值為-1,表示它們?nèi)克劳鰂or(inti=0。i<iNumbers。 i++)arrPositions[i][0]=-1。}}.游戲的炸彈類實(shí)現(xiàn)⑴Bomb.javapackagecom.mot.j2me.midlets.jbombman。//游戲中的炸彈類publicclassBombextendsThread{privateBoardoBoardprivateBoardviewoBoardViewprivatePlayeroPlayerprivateEnemyoEnemy//定義炸彈爆炸前等待的時(shí)間privatefinalintiExplodingTime=4000。//定義爆炸效果顯示的時(shí)間privatefinalintiDisapearTime=1000。privateintiX,iYprivatevolatilebooleanstopThread=false//炸彈類的構(gòu)造方法publicBomb(Boardboard,BoardViewboardview,Playerplayer,Enemyenemy,intx,inty){oBoard=board。oBoardView=boardview。oPlayer=player。oEnemy=enemy。iX=x。iY=y。oBoard.chBoard[iX][iY]='U'}publicvoidstopThread(){stopThread=true}//根據(jù)給定的單元格判斷炸彈爆炸后的結(jié)果的方法privatevoidexplode(intx,inty){//如果給定的單元格中是游戲主角或者是游戲主角正在放置炸彈,則游戲主角死掉if(oBoard.isElement('P',x,y)||oBoard.isElement('U',x,y))oPlayer.die()。//如果給定的單元格中是敵人,則敵人死掉elseif(oBoard.isElement('E',x,y))oEnemy.die(x,y)。//只要給定的單元格不是巖石和炸彈爆炸的元素,則給定的單元格中設(shè)置炸彈爆炸元素if(oBoard.isElement('N',x,y)||oBoard.isElement('W',x,y)||oBoard.isElement('P',x,y)||oBoard.isElement('E',x,y)||oBoard.isElement('U',x,y)||oBoard.isElement('B',x,y))oBoard.chBoard[x][y]='X'}//清空給定的單元格中的元素privatevoidclear(intx,inty){//如果當(dāng)前給定的單元格中是炸彈爆炸元素,則為該單元格設(shè)置為空if(oBoard.isElement('X',x,y))oBoard.setElement('N',x,y)。}//定義線程的方法體,在該方法中將定義炸彈爆炸的效果publicvoidrun(){while(!stopThread){try{//放置炸彈后,顯示一段時(shí)間sleep(iExplodingTime)。System.out.println("Explode")。//設(shè)定給定單元格及其周圍四個(gè)單元格在炸彈爆炸后的結(jié)果explode(iX,iY)。explode(iX-1,iY)。explode(iX+1,iY)。explode(iX,iY-1)。explode(iX,iY+1)。//重新繪制棋盤中設(shè)定的某個(gè)區(qū)域oBoardView.repaintCells(iX-1,iY-1,3,3)。//炸彈爆炸后結(jié)果顯示一段時(shí)間sleep(iDisapearTime)。System.out.println("Clear")。//根據(jù)炸彈爆炸后給定單元格及其周圍四個(gè)單元格的元素設(shè)置情況進(jìn)行清除oBoard.chBoard[iX][iY]='N'clear(iX-1,iY)。clear(iX+1,iY)。clear(iX,iY-1)。clear(iX,iY+1)。//重新繪制棋盤中設(shè)定的某個(gè)區(qū)域oBoardView.repaintCells(iX-1,iY-1,3,3)。//線程停止stopThread=true//清除游戲主角與該炸彈的關(guān)聯(lián)oPlayer.clearBomb()。}catch(InterruptedExceptionie){}}}}

.游戲的Img類實(shí)現(xiàn)⑴Img.javapackagecom.mot.j2me.midlets.jbombman。importjavax.microedition.lcdui.*。//游戲中生成各種圖像的類publicclassImg{//創(chuàng)建游戲中炸彈圖像的方法publicstaticImageimgBomb=Image.createlmage(newbyte[]{(byte)0x89,(byte)0x50,(byte)0x4E,(byte)0x47,(byte)0x0D,(byte)0x0A,(byte)0x1A,(byte)0x0A,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x0D,(byte)0x49,(byte)0x48,(byte)0x44,(byte)0x52,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x08,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0xA8,(byte)0xE2,(byte)0x42,(byte)0xDl,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x09,(byte)0x70,(byte)0x48,(byte)0x59,(byte)0x73,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x01,(byte)0xC7,(byte)0x6F,(byte)0xA8,(byte)0x64,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x55,(byte)0x49,(byte)0x44,(byte)0x41,(byte)0x54,(byte)0x78,(byte)0x9C,(byte)0x75,(byte)0xD0,(byte)0x41,(byte)0x12,(byte)0x00,(byte)0x21,(byte)0x08,(byte)0x03,(byte)0xC1,(byte)0xF9,(byte)0xFF,(byte)0xA7,(byte)0xB3,(byte)0x07,(byte)0x08,(byte)0x02,(byte)0xBA,(byte)0x1E,(byte)0xD0,(byte)0xEA,(byte)0x52,(byte)0x40,(byte)0xD0,(byte)0x58,(byte)0xB4,(byte)0xF8,(byte)0x83,(byte)0x40,(byte)0x6C,(byte)0x0E,(byte)0x12,(byte)0x80,(byte)0x8F,(byte)0x42,(byte)0x85,(byte)0x71,(byte)0x97,(byte)0x85,(byte)0x47,(byte)0x3B,(byte)0x5A,(byte)0x13,(byte)0x9D,(byte)0x31,(byte)0x1F,(byte)0x88,(byte)0x2A,(byte)0x93,(byte)0x75,(byte)0x83,(byte)0x6D,(byte)0xD9,(byte)0x53,(byte)0xE4,(byte)0x84,(byte)0xA6,(byte)0x6C,(byte)0xCA,(byte)0x0C,(byte)0x0F,(byte)0xE4,(byte)0x81,(byte)0xA7,(byte)0x99,(byte)0xF1,(byte)0xFC,(byte)0xD6,(byte)0x9A,(byte)0xD5,(byte)0x6D,(byte)0xDA,(byte)0x7D,

(byte)0xD6,(byte)0x3C,(byte)0xB7,(byte)0xCD,(byte)0xBF,(byte)0xlB,(byte)0x3F,(byte)0x0C,(byte)0xF9,(byte)0xD1,(byte)0x2F,(byte)0x79,(byte)0xC9,(byte)0x9C,(byte)0x87,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x49,(byte)0x45,(byte)0x4E,(byte)0x44,(byte)0xAE,(byte)0x42,(byte)0x60,(byte)0x82},(int)0,(int)163)。//創(chuàng)建游戲主角圖像的方法publicstaticImageimgPlayer=Image.createlmage(newbyte[]{(byte)0x89,(byte)0x50,(byte)0x4E,(byte)0x47,(byte)0x0D,(byte)0x0A,(byte)0x1A,(byte)0x0A,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x0D,(byte)0x49,(byte)0x48,(byte)0x44,(byte)0x52,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x08,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0xA8,(byte)0xE2,(byte)0x42,(byte)0xDl,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x09,(byte)0x70,(byte)0x48,(byte)0x59,(byte)0x73,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x01,(byte)0xC7,(byte)0x6F,(byte)0xA8,(byte)0x64,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x54,(byte)0x49,(byte)0x44,(byte)0x41,(byte)0x54,(byte)0x78,(byte)0x9C,(byte)0x7D,(byte)0x90,(byte)0x51,(byte)0x0E,(byte)0xC0,(byte)0x30,(byte)0x08,(byte)0x42,(byte)0xDF,(byte)0xFD,(byte)0x2F,(byte)0xCD,(byte)0x3E,(byte)0x3A,(byte)0x94,(byte)0x3A,(byte)0x33,(byte)0x3F,(byte)0x4C,(byte)0x25,(byte)0x04,(byte)0x28,(byte)0x68,(byte)0x19,(byte)0x7E,(byte)0x41,(byte)0x10,(byte)0xC0,(byte)0x04,(byte)0xA1,(byte)0xB6,(byte)0x2E,(byte)0xEA,(byte)0xE1,(byte)0xB1,(byte)0x08,(byte)0x7D,(byte)0x40,(byte)0x58,(byte)0x99,(byte)0xDC,(byte)0xEE,(byte)0xF6,(byte)0x49,(byte)0xA5,(byte)0xDC,(byte)0xD8,(byte)0x53,(byte)0xA8,(byte)0xFD,(byte)0x13,(byte)0x54,(byte)0x83,(byte)0x04,(byte)0xE8,(byte)0x77,

(byte)0xFD,(byte)0x82,(byte)0xA0,(byte)0x03,(byte)0x64,(byte)0xA2,(byte)0x57,(byte)0xA3,(byte)OxAA,(byte)0xB0,(byte)0x66,(byte)0xB7,(byte)0x31,(byte)0x82,(byte)0x99,(byte)0x3D,(byte)0xC2,(byte)0xFB,(byte)0x1C,(byte)0xD5,(byte)0xC5,(byte)0x3C,(byte)0x56,(byte)0x6B,(byte)0x2C,(byte)0xE2,(byte)0xC2,(byte)0x69,(byte)0x5D,(byte)0x33,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x49,(byte)0x45,(byte)0x4E,(byte)0x44,(byte)0xAE,(byte)0x42,(byte)0x60,(byte)0x82},(int)0,(int)162)。//創(chuàng)建游戲中敵人圖像的方法publicstaticImageimgEnemy=Image.createlmage(newbyte[]{(byte)0x89,(byte)0x50,(byte)0x4E,(byte)0x47,(byte)0x0D,(byte)0x0A,(byte)0x1A,(byte)0x0A,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x0D,(byte)0x49,(byte)0x48,(byte)0x44,(byte)0x52,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x08,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0xA8,(byte)0xE2,(byte)0x42,(byte)0xD1,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x09,(byte)0x70,(byte)0x48,(byte)0x59,(byte)0x73,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x01,(byte)0xC7,(byte)0x6F,(byte)0xA8,(byte)0x64,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x53,(byte)0x49,(byte)0x44,(byte)0x41,(byte)0x54,(byte)0x78,(byte)0x9C,(byte)0x7D,(byte)0x91,(byte)0xC1,(byte)0x11,(byte)0x00,(byte)0x21,(byte)0x08,(byte)0x03,(byte)0xB7,(byte)0xFF,(byte)0xA6,(byte)0xE3,(byte)0x43,(byte)0x02,(byte)0x9C,(byte)0x1E,(byte)0xE6,(byte)0xC1,(byte)0xE0,(byte)0x0E,(byte)0x18,(byte)0x50,(byte)0xF4,(byte)0x23,(byte)0x24,(byte)0x84,(byte)0xF0,(byte)0x89,(byte)0x22,(byte)0x00,(byte)0xDA,(byte)0xB1,(byte)0x97,(byte)0x84,(byte)0xB2,(byte)0xBD,(byte)0xB1,(byte)0xA0,(byte)0xC8,(byte)0x6D,

(byte)0x19,(byte)0x66,(byte)0xC8,(byte)0x17,(byte)0x6E,(byte)0xF7,(byte)0x4B,(byte)0x2F,(byte)0xE8,(byte)0xCB,(byte)0x6B,(byte)0xD6,(byte)0x09,(byte)0x42,(byte)0xC0,(byte)0xCC,(byte)OxFB,(byte)0xD4,(byte)0x76,(byte)0xD7,(byte)0x61,(byte)0xE5,(byte)0x35,(byte)0x0F,(byte)0x36,(byte)0xEF,(byte)0x5E,(byte)0xC9,(byte)0xF5,(byte)0x4A,(byte)0xCA,(byte)0xC2,(byte)0xAA,(byte)0xEC,(byte)0xDF,(byte)0xB1,(byte)0x00,(byte)0x9A,(byte)0xC5,(byte)0xC7,(byte)0x39,(byte)0x49,(byte)0xA3,(byte)0xF3,(byte)0xAC,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x49,(byte)0x45,(byte)0x4E,(byte)0x44,(byte)0xAE,(byte)0x42,(byte)0x60,(byte)0x82},(int)0,(int)161)。//創(chuàng)建游戲中炸彈爆炸效果圖像的方法publicstaticImageimgExploding=Image.createlmage(newbyte[]{(byte)0x89,(byte)0x50,(byte)0x4E,(byte)0x47,(byte)0x0D,(byte)0x0A,(byte)0x1A,(byte)0x0A,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x0D,(byte)0x49,(byte)0x48,(byte)0x44,(byte)0x52,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x14,(byte)0x08,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0xA8,(byte)0xE2,(byte)0x42,(byte)0xD1,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x09,(byte)0x70,(byte)0x48,(byte)0x59,(byte)0x73,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x00,(byte)0x00,(byte)0x0E,(byte)0xC3,(byte)0x01,(byte)0xC7,(byte)0x6F,(byte)0xA8,(byte)0x64,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x53,(byte)0x49,(byte)0x44,(byte)0x41,(byte)0x54,(byte)0x78,(byte)0x9C,(byte)0x75,(byte)0x90,(byte)0x31,(byte)0x12,(byte)0x00,(byte)0x20,(byte)0x08,(byte)0xC3,(byte)0xF2,(byte)0xFF,(byte)0x4F,(byte)0xE3,(byte)0x52,(byte)0xA0,(byte)0x22,(byte)0x3A,(byte)0x70,(byte)0x47,(byte)0x8D,(byte)0x1A,(byte)0x24,(byte)0x96,(byte)0xC5,(byte)0x27,

(byte)0x64,(byte)0xEC,(byte)0xA2,(byte)0x10,(byte)0x02,(byte)0x20,(byte)0x19,(byte)0x04,(byte)0x81,(byte)0xA0,(byte)0x0C,(byte)0xAE,(byte)0xB2,(byte)0x85,(byte)0x49,(byte)0xA2,(byte)0xC3,(byte)0x14,(byte)0xC6,(byte)0xCD,(byte)0x45,(byte)0x93,(byte)0xF4,(byte)0x1B,(byte)0xEl,(byte)0x7D,(byte)0xCB,(byte)0x96,(byte)0x12,(byte)0xFl,(byte)0x86,(byte)0x25,(byte)0x6B,(byte)0xD5,(byte)0xC6,(byte)0xF2,(byte)0xE3,(byte)0x43,(byte)0xDD,(byte)0xA0,(byte)0x6C,(byte)0x4C,(byte)0x55,(byte)0x0A,(byte)0xCB,(byte)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論