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

正文內(nèi)容

基于j2me的小球快跑游戲畢業(yè)論文-全文預(yù)覽

  

【正文】 uble mapX=gVector[0]。 //返回4,方向?yàn)橄蛳? } } else{ if(mapY==0){ //如果mapY等于0 if(mapX0){ //如果mapX大于0 return 2。mapY0){ //如果向量位于第一象限 return 1。 //返回3,方向右下 } else if(mapX0amp。 //返回5,方向左下 }}七.設(shè)計(jì)總結(jié) 在這次畢業(yè)設(shè)計(jì)中,自己做了很多工作??傊@次設(shè)計(jì)讓我受益很多,在此謝謝我的同學(xué)和我的老師?。?! 參 考 文 獻(xiàn)[1] :清華大學(xué)出版社,2008. [2] :清華大學(xué)出版社,2008.[3] :人民郵電出版社,2010.[4] 孫更新 孫海倫 Java ME手機(jī)應(yīng)用開發(fā)大全 北京 北京科海電子出版社[5] CJJ.手機(jī)游戲趨勢(shì)和相關(guān)J2ME APIS[6] 李鵬 陳煒 J2ME編程 北京:清華大學(xué)出版社[7] 陳立偉 張克非 精通Java手機(jī)游戲與應(yīng)用程序設(shè)計(jì) 北京:中國(guó)青年出版社 31。對(duì)其中的很多方法和很多庫(kù)的應(yīng)用有了更深的了解和掌握。mapY0){ //如果向量位于第二象限 return 7。amp。 //返回6,方向向左 } } else{ if(mapX0amp。 //mapY為重力向量在X、Y軸平面上的投影的Y坐標(biāo) if(mapX==0){ //如果mapX等于0 if(mapY0){ //mapY大于0 return 0。 //pitch軸恢復(fù) gVector=(xAngle,gVector)。//獲取z軸旋轉(zhuǎn)角度弧度 double xAngle=(values[1])。 //重新計(jì)時(shí) } } public void analysisData(float[] values) { //對(duì)讀取的姿態(tài)數(shù)據(jù)進(jìn)行分析,調(diào)用RoateUtil的靜態(tài)方法解析出方向 double[] valuesTemp=new double[]{values[0],values[1],values[2]}。 startTime = ()。 */public class BallListener implements SensorListener{ DriftBall father。 }6. 傳感器計(jì)算模塊的開發(fā)(1) BallListener類的開發(fā)代碼如下:package 。 //小球的生命數(shù)減1 if( =0){ =STATUS_OVER。 //小球的生命數(shù)加1 break。 } catch(Exception e){} } = col*size。 //暫停GameThread的執(zhí)行 if( == MAX_LEVEL){ //檢查是否是最后一關(guān) = STATUS_PASS。amp。 } //檢查下邊界 if( + size *size){ return true。 map[row][col] == 0){ return true。 row=0amp。 //求出左下角在地圖中所占的行數(shù) if(col=0 amp。amp。amp。//求出右下角在地圖中所占的列數(shù) row = (+size1)/size。row amp。 colmap[0].length amp。 } //檢查右上角 col = ( + size1)/size。amp。amp。 int col=0。 //若發(fā)生碰撞就撤銷移動(dòng) } break。 case 7: //方向左上 = 。 //若發(fā)生碰撞就撤銷移動(dòng) } break。 case 5: //方向左下 = 。 //若發(fā)生碰撞就撤銷移動(dòng) } break。 case 3: //方向右下 += 。 //若發(fā)生碰撞就撤銷移動(dòng) } break。 case 1: //方向右上 = 。 } catch(Exception e){ ()。 } } } catch(Exception e){ } //移動(dòng)小球 checkAndMoveBall()。 } //陷阱動(dòng)畫 trapCounter++。 } meteoCounter = 0。 } } //隕石的運(yùn)動(dòng) meteoCounter++。 if(nebulaCounter == 40/sleepSpan){ +=1。 if(backCounter == 50/sleepSpan){ //星空是500ms移動(dòng)一下 =1。 //外層循環(huán) boolean isGameOn = false。 //星云幀控制計(jì)數(shù)器 int eatCounter。 //引入DriftBall類的靜態(tài)常量public class GameThread extends Thread{ GameView father。 //游戲通關(guān)圖片 圖3 游戲運(yùn)行界面五.游戲后臺(tái)邏輯的開發(fā)(1)小球的運(yùn)動(dòng)控制代碼如下package 。 //數(shù)字圖片 Bitmap [] bmpMenuItem。 //大炮圖片 Bitmap bmpMissile。 //隕石圖片 Bitmap [] bmpEat。 //星空?qǐng)D片 Bitmap bmpNebula。 //游戲菜單線程 Meteorolite [] meteoArray。 //DriftBall引用 DrawThread dt。 //吃人動(dòng)畫幀索引 int status。 //小球的縱坐標(biāo) int tileSize = 20。 //x坐標(biāo)總是為零 int nebulaX。 //引入相關(guān)類/* * 該類繼承自SurfaceView,主要功能是繪制游戲屏幕,對(duì)后臺(tái)的繪制或其他線程 * 進(jìn)行控制。 //引入相關(guān)類import 。 //引入相關(guān)類import 。 //隨機(jī)產(chǎn)生Y坐標(biāo) up = (()?true:false)。 //為true則在地圖圖層上,為false則在地圖圖層下 int index。 }}(2)其他圖層的開發(fā)與實(shí)現(xiàn)代碼如下:package 。 } } }} 五.游戲中各個(gè)圖層的開發(fā)(1) 地圖圖層的開發(fā)代碼如下: package 。 //改移動(dòng)前一個(gè)菜單項(xiàng) if(outIndex 0){ //判斷是否所有的菜單項(xiàng)都移出屏幕 if( == ){ //如果當(dāng)前View是GameView ()。 //向屏幕內(nèi)移動(dòng)菜單項(xiàng) if([i][0] == 150){ //判斷菜單項(xiàng)是否已到位 inIndex=i+1。 //淡入的索引順序 int outIndex = 4。 = 。 //是否是淡入菜單 boolean isOut。 }(3) GameMenuThraed類的開發(fā) 代碼如下: package 。 //隕石幀控制計(jì)數(shù)器 boolean flag = false。 //背景幀控制計(jì)數(shù)器 int nebulaCounter。移動(dòng)小球的同時(shí)還會(huì)相應(yīng)地進(jìn)行碰撞檢測(cè) */import static .*。 //游戲結(jié)束圖片 Bitmap bmpGamePass。 //乘號(hào)圖片,用以顯示命數(shù) Bitmap [] bmpNumber。 //陷阱圖片 Bitmap bmpCannon。 //地圖圖元,即路的圖片 Bitmap [] bmpMeteo。 //存放大炮集合 Bitmap bmpStar。 //大炮線程 GameMenuThread gmt。 //是否顯示菜單 DriftBall father。 //小球運(yùn)動(dòng)速度 int eatIndex。 //小球的橫坐標(biāo) int ballY。 //屏幕高度 int backY。 //引入相關(guān)類import static .*。 //引入相關(guān)類import 。 //聲明包語(yǔ)句import 。 //暫停監(jiān)聽器 ()。 //開始下一關(guān)的游戲 } } else if( == STATUS_PASS || == STATUS_OVER){ //當(dāng)前狀態(tài)為通全關(guān)或死完了 if((x, y)){ //判斷點(diǎn)擊的位置 wv = new WeleView(this)。 //暫停Sensor ()。 //淡出菜單 wv = new WeleView(this)。 //暫停游戲 hv = new HelpView(this)。 //暫停聲音 } catch (Exception e) {} } } else if(wantSound){ if(!()){ try { ()。 //設(shè)置狀態(tài)為1,有按鈕按下 = 1。 //設(shè)置被選中的按鈕為開始按鈕 } else if((x, y)){ //點(diǎn)下切換聲音的圓球 wantSound = !wantSound。 } }(4) 菜單界面的用戶交互事件處理代碼如下: //重寫的方法,用于接收和處理用戶點(diǎn)擊屏幕事件 Override public boolean onTouchEvent(MotionEvent event) { if(() == ){ int x=(int)()。 //WeleView引用 int sleepSpan = 100。 //設(shè)置當(dāng)前View currView = gv。 //幫助視圖 //1======對(duì)源代碼進(jìn)行如下修改以連接SensorSimulator// SensorManager mySensorManager。 //記錄當(dāng)前顯示的View GameView gv。 //通過(guò)了一關(guān)的音樂 MediaPlayer mpGameLose。 //屏幕中間提示消息的矩形框 MediaPlayer mpGameMusic。 //繼續(xù)游戲菜單項(xiàng)的矩形框 Rect rectSoundAlter。 //初始狀態(tài)生命數(shù)最大 Rect rectStart。 //通全關(guān) public static final int MAX_LIFE = 5。 //游戲暫停 public static final int STATUS_WIN = 2。 //引入相關(guān)類import 。 //引入相關(guān)類import 。 //引入相關(guān)類import 。 //聲明包語(yǔ)句import 。 //初始化圖片 = father。 wt = new WeleThread(this)。 //被選中的命令,只能是開始或退出 int backIndex。 //后臺(tái)背景的動(dòng)畫幀 Bitmap [] bmpStartOrQuit。 //引入相關(guān)類/* * 該類繼承自View,負(fù)責(zé)歡迎界面的繪制 */public class WeleView extends SurfaceView implements { DriftBall father。 //引入相關(guān)類import 。 //引入相關(guān)類import 。RotateUtil類主要負(fù)責(zé)接收手機(jī)姿態(tài)的變化數(shù)據(jù),并根據(jù)一系列算法計(jì)算出在這種姿態(tài)下的小球的運(yùn)動(dòng)方向。GameMenuThread負(fù)責(zé)實(shí)現(xiàn)游戲中菜單的逐行的效果。(2)設(shè)計(jì)背景 游戲中,首先必須要有個(gè)主應(yīng)用程序類,其次,為了把程序的畫面呈現(xiàn)出來(lái),就是要有畫布;為了比較容易管理地圖、增加或修改地圖比較方便,應(yīng)該把地圖和畫布分開。(1) 游戲策劃本游戲從類型上看屬于動(dòng)作類通關(guān)游戲,因此在游戲開發(fā)前進(jìn)行的策劃中需要考慮到諸如劇情規(guī)劃、關(guān)卡設(shè)計(jì)等內(nèi)容劇情規(guī)劃:由于本游戲主要是以玩法取勝,而不是
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1