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

正文內容

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

2025-06-23 21:40本頁面
  

【正文】 boolean checkCollision() { int size = 。 //獲取地圖圖元大小 byte [][] map = 。 //獲取地圖矩陣 int row=0。 int col=0。 //檢查左上角 col = 。 //求出左上角在地圖中所占的列數 row = 。 //求出左上角在地圖中所占的行數 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。//求出右上角在地圖中所占的列數 row = 。 //求出右上角在地圖中所占的行數 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。//求出右下角在地圖中所占的列數 row = (+size1)/size。//求出右下角在地圖中所占的行數 if(col=0 amp。amp。 colmap[0].length amp。amp。 row=0amp。amp。row amp。amp。 map[row][col] == 0){ return true。 } //檢查左下角 col = 。 //求出左下角在地圖中所占的列數 row = (+size1)/size。 //求出左下角在地圖中所占的行數 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。 //設置游戲狀態(tài)為STATUS_WIN if(){ //如有需要播放聲音 try { ()。 } catch (Exception e) {} } isGameOn = false。 //暫停GameThread的執(zhí)行 if( == MAX_LEVEL){ //檢查是否是最后一關 = STATUS_PASS。 //設置游戲狀態(tài)為STATUS_PASS } else{ += 1。 //如果不是最后一關,就將關卡加1 } break。 case 3: //吃到加命的 if(){ //如有需要播放聲音 try{ ()。 } catch(Exception e){} } = col*size。 //修正小球的X坐標 = row*size。 //修正小球的Y坐標 [row][col] = 1。 //將地圖矩陣中該位置改為道路 += 1。 //小球的生命數加1 break。 case 4: //被吃了 = STATUS_LOSE。 //設置游戲狀態(tài)為STATUS_LOSE if(){ //如有需要播放聲音 try { ()。 } catch (Exception e) {} } =1。 //小球的生命數減1 if( =0){ =STATUS_OVER。 //如果小球生命耗盡,設置狀態(tài)位為STATUS_OVER } else{ = 0。 //復位小球坐標 = 0。 } break。 }6. 傳感器計算模塊的開發(fā)(1) BallListener類的開發(fā)代碼如下:package 。 //聲明包語句 import 。//引入相關類import 。//引入相關類/* * 該類繼承自SensorListener,主要功能是感應傳感器的姿態(tài)數據 * 通過onSensorChanged方法讀取數據,并調用RoatatUtil中的靜態(tài) * 方法來確定小球應該移動的方向。 */public class BallListener implements SensorListener{ DriftBall father。 //DriftBall引用 int timeSpan = 500。 //500MS檢查一次 long startTime。 //記錄開始的時間 public BallListener(DriftBall father){ //構造器,初始化成員變量 = father。 startTime = ()。 //記錄系統(tǒng)時間作為當前時間 } @Override public void onAccuracyChanged(int sensor, int accuracy) {//重寫onAccuracyChanged方法 } @Override public void onSensorChanged(int sensor, float[] values) {//重寫onSensorChanged方法 long now = ()。 //獲取系統(tǒng)當前時間 if(now startTime = timeSpan){ //判斷是否走過指定的時間間隔 if(sensor == ){ analysisData(values)。 //調用analysisData方法對數據進行分析 } startTime = now。 //重新計時 } } public void analysisData(float[] values) { //對讀取的姿態(tài)數據進行分析,調用RoateUtil的靜態(tài)方法解析出方向 double[] valuesTemp=new double[]{values[0],values[1],values[2]}。 //對y軸進行修正 = (valuesTemp)。 //調用RotateUtil的靜態(tài)方法計算出小球方向 } }(2) RotateUtil類的開發(fā)代碼如下:package 。 //聲明包語句/* * 該類為靜態(tài)工具類,提供靜態(tài)方法來計算 * 小球應該的運動方向 */public class RotateUtil{ //方法:計算小球的方向 public static int getDirectionCase(double[] values){ double zAngle=(values[0])。//獲取z軸旋轉角度弧度 double xAngle=(values[1])。//獲取x軸旋轉角度弧度 double yAngle=(values[2])。//獲取y軸旋轉角度弧度 /* * 算法思想為手機在一個姿態(tài)后首先虛擬出一個重力向量, * 然后三次選裝把手機恢復到原始姿態(tài),期間重力向量伴隨 * 變化,最后重力向量往手機平面上一投影,根據投影點的 * 位置即可得到位置編號07 * 0 * 7 | 1 * \ | / * \ | / * 6|2 * / | \ * / | \ * 5 | 3 * 4 */ //虛擬一個重力向量 double[] gVector={0,0,100,1}。 /* * 在這里需要注意沿三個空間方向x,y,z軸所旋轉的角度的恢復順序,由于Yaw軸始終指向豎直向上(重力加速度反向),和 * 標準的空間坐標系的z軸一樣,所以 可以通過負向旋轉直接進行角度恢復;沿yaw軸將轉過的角度恢復后,此時的pitch軸 * 就變成了空間坐標系中的x軸,沿pitch(x)軸將 轉過 的角度恢復,此時的roll軸就修正為了空間坐標系中的y軸,最后 * 按照y軸將轉過的角度恢復,則此時手機平面所在的平面變成了空間坐標 系中xy平面,而附著于手機平面上的重力加速度 * 的則是一個與手機平面相交的向量,將該向量投影到手機平面,通過投影點就可以計算出小球要滾動的方向 * 如果不按照上述順序進行角度恢復,則空間坐標的計算轉換將會非常復雜,而上述方法中每一步的角度恢復都是基于標準 * 的坐標系軸,而對標準坐標軸的轉換在計算機圖形 * 學中很容易實現 */ //yaw軸恢復 gVector=(zAngle,gVector)。 //pitch軸恢復 gVector=(xAngle,gVector)。 //roll軸恢復 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 4。 //返回4,方向為向下 } } else{ if(mapY==0){ //如果mapY等于0 if(mapX0){ //如果mapX大于0 return 2。 //返回2,方向向右 } else{ //如果mapX小于0 return 6。 //返回6,方向向左 } } else{ if(mapX0amp。amp。mapY0){ //如果向量位于第一象限 return 1。 //返回1,方向右上 } else if(mapX0amp。amp。mapY0){ //如果向量位于第四象限 return 3。 //返回3,方向右下 } else if(mapX0amp。amp。mapY0){ //如果向量位于第二象限 return 7。 //返回7,方向左上 } else{ //向量位于第三象限 return 5。 //返回5,方向左下 }}七.設計總結 在這次畢業(yè)設計中,自己做了很多工作。通過這次設計,對J2ME有了更深層的認識和理解。對其中的很多方法和很多庫的應用有了更深的了解和掌握。經過同學的幫助和查詢一些書籍和材料能夠順利完成??傊@次設計讓我受益很多,在此謝謝我的同學和我的老師?。。? 參 考 文 獻[1] :清華大學出版社,2008. [2] :清華大學出版社,2008.[3] :人民郵電出版社,2010.[4] 孫更新 孫海倫 Java ME手機應用開發(fā)大全 北京 北京科海電子出版社[5] CJJ.手機游戲趨勢和相關J2ME APIS[6] 李鵬 陳煒 J2ME編程 北京:清華大學出版社[7] 陳立偉 張克非 精通Java手機游戲與應用程序設計 北京:中國青年出版社 31
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1