freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

手機游戲開發(fā)技術(shù)實驗報告(編輯修改稿)

2024-08-30 12:43 本頁面
 

【文章內(nèi)容簡介】 if( y + h ) h = y。 repaint( iLeft + x*iCellSize, iTop + y*iCellSize, w*iCellSize, h*iCellSize )。 }}3. 游戲的主角類實現(xiàn)(1) package 。import .*。//游戲中的主角類public class Player { private Board oBoard。 private BoardView oBoardView。 private Enemy oEnemy。 private Bomb oBomb。 private Random random。 private int iX, iY。 //游戲主角的構(gòu)造函數(shù) public Player( Board board, BoardView boardview ) { oBoard = board。 oBoardView = boardview。 random = new Random()。 //調(diào)用游戲主角的初始化方法 init()。 } //游戲主角的初始化方法 public void init() { while( true ) { //獲取游戲主角初始化的隨機位置 iX = ( () ) % 。 iY = ( () ) % 。 //如果隨機位置上不為空,則跳出當(dāng)前本次循環(huán),再重新獲取隨機位置 if( [iX][iY] != 39。N39。 ) continue。 //如果隨機位置在敵人的攻擊范圍內(nèi),則跳出當(dāng)前本次循環(huán),再重新獲取隨機位置 if( ( 39。E39。, iX, iY ) ) continue。 //如果隨機位置不能夠向任何方向移動2步,則跳出當(dāng)前本次循環(huán),再重新獲取隨機位置 if( !( 39。N39。, iX, iY ) ) continue。 //如果獲得一個合適的隨機位置,則跳出死循環(huán),繼續(xù)向下執(zhí)行 break。 } //在棋盤中根據(jù)獲取的隨機位置設(shè)置對應(yīng)的棋盤格中的元素為游戲主角 [iX][iY] = 39。P39。 } public void setEnemy( Enemy enemy ) { oEnemy = enemy。 } //清除炸彈對象的方法 public void clearBomb() { oBomb = null。 ( delete Bomb )。 } //判斷游戲主角能否移動到給定的棋盤格上 private boolean canGo( int x, int y ) { //如果要移動到的棋盤格中沒有元素,則返回true if( ( 39。N39。, x, y ) ) return true。 //如果要移動到的棋盤格中是敵人,則游戲主角死掉 if( ( 39。E39。, x, y ) ) die()。 //如果上述條件都不成立,則不能移動到給定的單元格中,返回false return false。 } //定義放置炸彈的方法 public void fire() { //構(gòu)造一個炸彈對象 oBomb = new Bomb( oBoard, oBoardView, this, oEnemy, iX, iY )。 //啟動炸彈對象中的線程方法體 ()。 ( new Bomb: x= + iX + , y= + iY )。 } //定義游戲主角向左移動的方法 public void left() { //如果不能向左移動,則返回 if( !canGo( iX1, iY ) ) return。 //如果移動之前的棋盤格中的元素是游戲主角放置炸彈,則移動之前的棋盤格中放置炸彈元素 if( [iX][iY] == 39。U39。 ) [iX][iY] = 39。B39。 else //否則的話,移動之前的棋盤格中設(shè)置為空 [iX][iY] = 39。N39。 //游戲主角的列數(shù)減1 iX。 //設(shè)置移動后的棋盤格中的元素為游戲主角 [iX][iY] = 39。P39。 //在畫布屏幕上重繪指定的區(qū)域 ( iX, iY, 2, 1 )。 } //定義游戲主角向右移動的方法 public void right() { //如果不能向右移動,則返回 if( !canGo( iX+1, iY ) ) return。 //如果移動之前的棋盤格中的元素是游戲主角放置炸彈,則移動之前的棋盤格中放置炸彈元素 if( [iX][iY] == 39。U39。 ) [iX][iY] = 39。B39。 else //否則的話,移動之前的棋盤格中設(shè)置為空 [iX][iY] = 39。N39。 //游戲主角的列數(shù)加1 iX++。 //設(shè)置移動后的棋盤格中的元素為游戲主角 [iX][iY] = 39。P39。 //在畫布屏幕上重繪指定的區(qū)域 ( iX1, iY, 2, 1 )。 } //定義游戲主角向上移動的方法 public void up() { //如果不能向上移動,則返回 if( !canGo( iX, iY1 ) ) return。 //如果移動之前的棋盤格中的元素是游戲主角放置炸彈,則移動之前的棋盤格中放置炸彈元素 if( [iX][iY] == 39。U39。 ) [iX][iY] = 39。B39。 else //否則的話,移動之前的棋盤格中設(shè)置為空 [iX][iY] = 39。N39。 //游戲主角的行數(shù)減1 iY。 //設(shè)置移動后的棋盤格中的元素為游戲主角 [iX][iY] = 39。P39。 //在畫布屏幕上重繪指定的區(qū)域 ( iX, iY, 1, 2 )。 } //定義游戲主角向下移動的方法 public void down() { //如果不能向上移動,則返回 if( !canGo( iX, iY+1 ) ) return。 //如果移動之前的棋盤格中的元素是游戲主角放置炸彈,則移動之前的棋盤格中放置炸彈元素 if( [iX][iY] == 39。U39。 ) [iX][iY] = 39。B39。 else //否則的話,移動之前的棋盤格中設(shè)置為空 [iX][iY] = 39。N39。 //游戲主角的行數(shù)加1 iY++。 //設(shè)置移動后的棋盤格中的元素為游戲主角 [iX][iY] = 39。P39。 //在畫布屏幕上重繪指定的區(qū)域 ( iX, iY1, 1, 2 )。 } //定義游戲主角死掉的方法 public void die() { ( Player die: x= + iX + , y= + iY )。 //殺死游戲中搜有的敵人 ()。 //設(shè)置游戲結(jié)束的標(biāo)識為true = true。 //重新繪制畫布屏幕 ()。}}4. 游戲的敵人類實現(xiàn)(1) package 。import .*。//游戲中的敵人類public class Enemy extends Thread { private Board oBoard。 private BoardView oBoardView。 public Player oPlayer。 //設(shè)置敵人每次移動的間隔時間 private final int iMoveTime = 500。 private Random random。 //聲明游戲中敵人的數(shù)量 private int iNumbers。 //聲明所有敵人所在位置的二維數(shù)組 private int[][] arrPositions。 private volatile boolean stopThread = false。 //初始化敵人對象的構(gòu)造函數(shù) public Enemy( Board board, BoardView boardview, Player player, int numbers ) { oBoard = board。 oBoardView = boardview。 oPlayer = player。 iNumbers = numbers。 arrPositions = new int[iNumbers][2]。 random = new Random()。 //調(diào)用敵人對象的初始化方法 init()。 } //敵人對象的初始化方法 public void init() { int x, y。 //隨機將游戲中的敵人放置在棋盤中 for( int i=0。 iiNumbers。 ) { //隨機得到每個敵人在棋盤格中的位置 x = ( () ) % 。 y = ( () ) % 。 //如果得到的隨機位置上已經(jīng)有其他元素了,則跳出本次循環(huán) if( [x][y] != 39。N39。 ) continue。 //如果得到的隨機位置上為空,則將敵人元素放置在該單元格中 [x][y] = 39。E39。 //將敵人對象所處的單元格位置保存在數(shù)組中 arrPositions[i][0] = x。 arrPositions[i][1] = y。 //繼續(xù)本次循環(huán) i++。 } } public void stopThread() { stopThread = true。 } //定義線程的方法體,在該方法中將定義敵人如何進行移動 public void run() { while (!stopThread) { try { //敵人對象靜止一段時間 sleep(iMoveTime)。 //依次循環(huán)設(shè)置每個敵人對象是如何在期盼中進行移動的 for( int i=0。 iiNumbers。 i++ ) //如果該敵人對象沒有被消滅,則調(diào)用move()方法進行移動 if( arrPositions[i][0] != 1 ) move( i )。 } catch (InterruptedException ie) { } } } //定義敵人的移動方法 private void move( int i ) { int x, y。 //隨機獲得敵人移動的方向 switch( () % 4 ) { case 0://向左移動 //當(dāng)前的棋盤格行不變,列減1 x = arrPositions[i][0] 1。 y = arrPositions[i][1]。 //判斷能否移動到給定的棋盤格位置 if( canGo( x, y ) ) { ( Enemy + i + Left: x= + x + , y= + y )。 //設(shè)置移動前的位置沒有任何元素,移動后的位置為敵人元素 [x+1][y] = 39。N39。 [x][y] = 39。E39。 //修改二維數(shù)組中表示該敵人對象的位置的值 arrPositions[i][0] = x。 //在畫布屏幕上重繪指定的區(qū)域 ( x, y, 2, 1)。 } break。 case 1://向右移動 //當(dāng)前的棋盤格行不變,列加1 x = arrPositions[i][0] + 1。 y = arrPositions[i][1]。 //判斷能否移動到給定的棋盤格位置 if( canGo( x, y ) ) { ( Enemy +
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1