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

正文內(nèi)容

基于j2me的小球快跑游戲畢業(yè)論文-資料下載頁

2025-08-19 19:16本頁面

【導(dǎo)讀】隨著JAVA技術(shù)的不斷更新。提高,J2ME技術(shù)的出現(xiàn),使得手機游戲越來越成為我們關(guān)注的焦點。J2ME技術(shù)目前最流行?;睢⑤p便、快捷的作用。J2ME平臺被是最杰出的手機游戲手機游戲平臺,它一些非常重要的。特征對開發(fā)者都有很大益處。因為J2ME應(yīng)用在不同設(shè)備上都是便攜式的,他們常??梢栽诰W(wǎng)。絡(luò)上下載和執(zhí)行。WeleThread類的開發(fā)………菜單界面的用戶交互事件處理…………本設(shè)計針對小球快跑實現(xiàn)了新游戲、選關(guān)、恭喜過關(guān),繼續(xù)或沖完等過程。環(huán)漸進和關(guān)卡之間的互異性以及關(guān)卡的可玩性是需要重視的問題。WeleView類繼承自SurfaceView類,其主要負責(zé)播放歡迎動畫和顯示游戲主菜單。GameView類繼承自SurfaceView,其主要負責(zé)游戲主畫面的渲染。對外提供了方法用于獲得指定關(guān)卡的地圖信息。用戶單擊屏幕事件。BaiiListener類繼承自SensorListener類,氣質(zhì)要負責(zé)監(jiān)聽手機姿態(tài)的變化并將捕獲到的數(shù)。據(jù)傳遞給RotateUtil進行分析計算。的小球的運動方向。

  

【正文】 checkCollision()){ //檢測是否發(fā)生碰撞 = 。 //若發(fā)生碰撞就撤銷移動 } 25 break。 case 5: //方向左下 = 。 //X方向上的移動 if(checkCollision()){ //檢測是否發(fā)生碰撞 += 。 //若發(fā)生碰撞就撤銷移動 } += 。 //Y方向上的移動 if(checkCollision()){ //若發(fā)生碰撞就撤銷移動 = 。 //若發(fā)生碰撞就撤銷移動 } break。 case 6: //方向向左 = 。 //X方向上的移動 if(checkCollision()){ //若發(fā)生碰撞就撤銷移動 += 。 //若發(fā)生碰撞就撤銷移動 } break。 case 7: //方向左上 = 。 //X方向上的移動 if(checkCollision()){ //若發(fā)生碰撞就撤銷移動 += 。 //若發(fā)生碰撞就撤銷移動 } = 。 //Y方向上的移動 if(checkCollision()){ //若發(fā)生碰撞就撤銷移動 += 。 //若發(fā)生碰撞就撤銷移動 } break。 } } ( 2) 小球的碰撞檢測 代碼如下: public boolean checkCollision() { int size = 。 //獲取地圖圖元大小 byte [][] map = 。 //獲取地圖矩陣 int row=0。 int col=0。 //檢查左上角 col = 。 //求出左上角在地圖中所占的列數(shù) row = 。 //求出左上角在地圖中所占的行數(shù) if(col=0 amp。amp。 colmap[0].length amp。amp。 row=0amp。amp。row amp。amp。 map[row][col] == 0){ return true。 } //檢查右上角 26 col = ( + size1)/size。//求出右上角在地圖中所占的列數(shù) row = 。 //求出右上角在地圖中所占的行數(shù) if(col=0 amp。amp。 colmap[0].length amp。amp。 row=0amp。amp。row amp。amp。 map[row][col] == 0){ return true。 } //檢查右下角 col = (+size1)/size。//求出右下角在地圖中所占的列數(shù) row = (+size1)/size。//求出右下角在地圖中所占的行數(shù) if(col=0 amp。amp。 colmap[0].length amp。amp。 row=0amp。amp。row amp。amp。 map[row][col] == 0){ return true。 } //檢查左下角 col = 。 //求出左下角在地圖中所占的列數(shù) row = (+size1)/size。 //求出左下角在地圖中所占的行數(shù) if(col=0 amp。amp。 colmap[0].length amp。amp。 row=0amp。amp。row amp。amp。 map[row][col] == 0){ return true。 } //檢查左邊界 if( 0){ return true。 } //檢查上邊界 if( 0){ return true。 } //檢查右 邊界 if( + size [0].length * size){ // 前面 的size指的是小球的尺寸,后面的是指圖元尺寸 return true。 } //檢查下邊界 if( + size *size){ return true。 } //檢查是否遇到其他情況 col = 。 row = 。 if(col == ( + size1)/size amp。amp。 row==(+size1)/size){ //判斷小球是否正好在某個格子里 switch([row][col]){ case 2: //到家了 = STATUS_WIN。 //設(shè)置游戲狀態(tài)為 STATUS_WIN if(){ //如有需要 播放聲音 try { ()。 } catch (Exception e) {} 27 } isGameOn = false。 //暫停 GameThread的執(zhí)行 if( == MAX_LEVEL){ //檢查是否是最后一關(guān) = STATUS_PASS。 //設(shè)置游戲狀態(tài)為 STATUS_PASS } else{ += 1。 //如果不是最后一關(guān),就將關(guān)卡加 1 } break。 case 3: //吃到加命的 if(){ //如有需要播放聲音 try{ ()。 } catch(Exception e){} } = col*size。 //修正小球的 X坐標 = row*size。 //修正小球的 Y坐標 [row][col] = 1。 //將地圖矩陣中該位置改為道路 += 1。 //小球的生命數(shù)加 1 break。 case 4: //被吃了 = STATUS_LOSE。 //設(shè)置游戲狀態(tài)為 STATUS_LOSE if(){ //如有需要播放聲音 try { ()。 } catch (Exception e) {} } =1。 //小球的生命數(shù)減 1 if( =0){ =STATUS_OVER。 //如果小球生命耗盡,設(shè)置狀態(tài)位為STATUS_OVER } else{ = 0。 //復(fù)位小球坐標 = 0。 } break。 } 六. 傳感器計算模塊的開發(fā) ( 1) BallListener 類的開發(fā) 代碼如下: package 。 //聲明包語句 28 import 。//引入相關(guān)類 import 。//引入相關(guān)類 /* * 該類繼承自 SensorListener,主要功能是感應(yīng)傳感器的姿態(tài)數(shù)據(jù) * 通過 onSensorChanged方法讀取數(shù)據(jù) ,并調(diào)用 RoatatUtil中的靜態(tài) * 方法來確定小球應(yīng)該移動的方向。 */ public class BallListener implements SensorListener{ DriftBall father。 //DriftBall引用 int timeSpan = 500。 //500MS檢查一次 long startTime。 //記錄開始的時 間 public BallListener(DriftBall father){ //構(gòu)造器,初始化成員變量 = father。 startTime = ()。 //記錄系統(tǒng)時間作為當(dāng)前時間 } @Override public void onAccuracyChanged(int sensor, int accuracy) {//重寫 onAccuracyChanged方法 } @Override public void onSensorChanged(int sensor, float[] values) {//重寫 onSensorChanged方法 long now = ()。 //獲取系統(tǒng)當(dāng)前時間 if(now startTime = timeSpan){ //判斷是否走過指定的時間間隔 if(sensor == ){ analysisData(values)。 //調(diào)用 analysisData方法對數(shù)據(jù)進行分析 } startTime = now。 //重新計時 } } public void analysisData(float[] values) { //對讀取的姿態(tài)數(shù)據(jù)進行分析,調(diào)用RoateUtil的靜態(tài)方法解析出方向 double[] valuesTemp=new double[]{values[0],values[1],values[2]}。 //對 y軸進行修正 = (valuesTemp)。 // 調(diào)用RotateUtil的靜態(tài)方法計算出小球方向 } } ( 2) RotateUtil 類的開發(fā) 代碼如下: package 。 //聲明包語句 /* * 該類為靜態(tài)工具類,提供靜態(tài)方法來計算 * 小球應(yīng)該的運動方向 29 */ public class RotateUtil{ //方法:計算小球的方向 public static int getDirectionCase(double[] values){ double zAngle=(values[0])。//獲取 z軸旋轉(zhuǎn)角度弧度 double xAngle=(values[1])。//獲取 x軸旋轉(zhuǎn)角度弧度 double yAngle=(values[2])。//獲取 y軸旋轉(zhuǎn)角度弧度 /* * 算法思想為手機在一個姿態(tài)后首先虛擬出一個重力向量, * 然后三次選裝把手機恢復(fù)到原始姿態(tài),期間重力向量伴隨 * 變化,最 后重力向量往手機平面上一投影,根據(jù)投影點的 * 位置即可得到位置編號 07 * 0 * 7 | 1 * \ | / * \ | / * 6|2 * / | \ * / | \ * 5 | 3 * 4 */ //虛擬一個重力向量 double[] gVector={0,0,100,1}。 /* * 在這里需要注意沿三個空間方向 x,y,z軸所旋轉(zhuǎn)的角度的恢復(fù)順序,由于 Yaw軸始終指向豎直向上(重力加速度反向),和 * 標準的空間坐標系的 z軸一樣,所以 可以通過負向旋轉(zhuǎn)直接進行角度恢復(fù);沿 yaw軸將轉(zhuǎn)過的角度恢復(fù)后,此時的 pitch軸 * 就變成了空間坐標系中的 x軸,沿 pitch( x)軸將 轉(zhuǎn)過 的角度恢復(fù),此時的 roll軸就修正為了空間坐標系中的 y軸,最后 * 按照 y軸將轉(zhuǎn)過的角度恢復(fù),則此時手機平面所在的平面變成了空間坐標 系中 xy平面,而附著于手機平面上的重力加速度 * 的則是一個與手機平面相交的向量,將該向量投影到手機平面,通過投影點就可以計算出小球要滾動的方向 * 如果不按照上述順序進行角度恢復(fù),則空間坐標的計算轉(zhuǎn)換將會非常復(fù)雜,而上述方法中每一步的角度恢復(fù)都是基于標準 * 的坐標系軸,而對標準坐標軸的轉(zhuǎn)換在計算機圖形 * 學(xué)中很容易實現(xiàn) */ //yaw軸恢復(fù) gVector=(zAngle,gVector)。 //pitch軸恢復(fù) 30 gVector=(xAngle,gVector)。 //roll軸恢復(fù) gVector=(yAngle,gVector)。 double mapX=gVector[0]。 //mapX為重力向量在 X、 Y軸平面上的投影的 X坐標 double mapY=gVector[1]。 //mapY為重力向量在 X、 Y軸平面上的投影的 Y坐標 if(mapX==0){ //如果 mapX等于 0 if(mapY0){ //mapY大于 0 return 0。 //返回方向為 0,向上 } else{ //mapY小于 0 return
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1