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

正文內(nèi)容

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

2025-06-23 21:40本頁(yè)面
  

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