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

正文內(nèi)容

基于j2me的益智游戲設(shè)計(jì)畢業(yè)論文設(shè)計(jì)-閱讀頁

2025-07-07 01:06本頁面
  

【正文】 幾何知識(shí),若E在內(nèi)部則E點(diǎn)的縱坐標(biāo)y1一定滿足,子彈的X軸方向系數(shù)x_d 改變?yōu)?。若子彈既不在內(nèi)部也不在內(nèi)部則進(jìn)行下一步判斷若則子彈在P點(diǎn)出現(xiàn),子彈的Y軸方向系數(shù)y_d變?yōu)?,反之子彈在Q點(diǎn)出現(xiàn),Y軸方向系數(shù)y_d變?yōu)?。算法結(jié)束。其它情況類似,這里不再敘述。根據(jù)需求分析,物理模擬模塊的活動(dòng)圖如圖57所示:圖57 物理模擬模塊的活動(dòng)圖 資源管理資源管理實(shí)現(xiàn)資源的加載和釋放。資源加載必須保證游戲的流暢性,所以,在資源被使用前就必須被加載到內(nèi)存中。為了實(shí)現(xiàn)以上目的、資源的加載分步驟進(jìn)行:(1) 加載首頁中的圖片、音樂資源。(3)若游戲退出則釋放游戲中用到的資源如背景圖片、聲音文件、地圖中所用到的圖片等資源。游戲狀態(tài)的判斷條件有:(1) 主角死亡。(3) 馬匪被全部被消滅。在程序中這三個(gè)整型變量分別用Game_Continue,Game_Over、Game_Success表示。當(dāng)玩家勝利時(shí),顯示勝利畫面即由Simulation畫布轉(zhuǎn)向EndCanvas畫布并顯示勝利的對(duì)話框。當(dāng)玩家闖關(guān)失敗時(shí),顯示EndCanvas畫布并顯示失敗的對(duì)話框。 動(dòng)畫管理動(dòng)畫管理模塊負(fù)責(zé)將游戲中的場(chǎng)景、精靈、道具繪制到畫布中。所以,本系統(tǒng)采用關(guān)鍵幀方法實(shí)現(xiàn)動(dòng)畫管理。然后按照游戲需要繪制某一幀或某幾幀的圖片。馬匪或者主角對(duì)象有是否或者的屬性,這個(gè)屬性確定圖片是否翻轉(zhuǎn)。繪制圖片的時(shí)候要首先判斷馬匪的狀態(tài),若馬匪的isAlive屬性為true則馬匪是活著的然后就繪制第一幀,若馬匪死亡,就根據(jù)馬匪是如何死亡的繪制第二幀圖片。最終要實(shí)現(xiàn)的效果如圖59所示: 圖59 繪制靜止和死亡的精靈效果(2) 繪制場(chǎng)景綜合考慮關(guān)鍵幀繪制法和手機(jī)內(nèi)存和游戲資源的大小的限制。圖片合并的方式是將同一個(gè)對(duì)象要用到的圖片,整合到一張圖片上,這樣就可以縮小圖片的總大小。建筑層主要由墻壁和邊界這兩種對(duì)象組成。主要的道具有鐵球、小木箱、大木箱等。這建筑層效果如圖510所示:圖510 建筑層的效果精靈層如圖511所示:圖511 精靈層的效果道具層的效果如圖512所示:圖512 道具層的效果游戲主畫布會(huì)將這三層按照,建筑層、精靈層、道具層的順序進(jìn)行繪制。然后再依次繪制精靈層和道具層。這樣就滿足了根據(jù)游戲狀態(tài)繪制特定的圖片需求。比如:現(xiàn)在游戲進(jìn)行到第幾關(guān)、玩家還有幾發(fā)子彈。綜上,繪制完成的地圖效果如圖513所示:圖513 第2關(guān)地圖效果 聲音管理在支持混音的手機(jī)上根據(jù)玩家的輸入播放相應(yīng)的聲音。由于,MMAPI各個(gè)產(chǎn)商實(shí)現(xiàn)的方式不同而且同一個(gè)產(chǎn)商如諾基亞,實(shí)現(xiàn)MMAPI的方式就不完全一樣。本游戲的聲音管理模塊針對(duì)的是支持混音格式的手機(jī)。Player把整個(gè)聲音的播放過程看作是幾個(gè)狀態(tài)之間的變化[11]如圖514所示:圖514 Player狀態(tài)模型當(dāng)一個(gè)Player接口被創(chuàng)建時(shí),處于UNREALIZED狀態(tài),狀態(tài)之間可以通過消息改變。所以,Player接口的具體實(shí)現(xiàn)是需要針對(duì)機(jī)型進(jìn)行開發(fā)的。播放前景音樂的活動(dòng)圖如圖515所示:圖515 播放前景音樂的活動(dòng)圖播放背景音樂的活動(dòng)圖如圖516所示:圖516 播放背景音樂的活動(dòng)圖 游戲的實(shí)現(xiàn) 游戲框架的組織(1) 加載資源在游戲各個(gè)模塊實(shí)現(xiàn)的基礎(chǔ)上,就需要編寫MIDlet類的子類Main實(shí)現(xiàn)程序入口的功能和搭建游戲框架,在Main的startApp()中調(diào)用各個(gè)模塊的函數(shù)實(shí)現(xiàn)具體的功能。然后,游戲的數(shù)據(jù)訪問層的LoadResouce類要加載聲音和圖片資源,Main要初始化對(duì)象,這都需要一段時(shí)間。進(jìn)度條隨著程序加載的進(jìn)度調(diào)整進(jìn)度條的數(shù)值[12]。在資源加載完畢以后,就可以初始化對(duì)象了。視圖層要播放音樂所以,視圖層要將聲音播放對(duì)象的引用注冊(cè)到各個(gè)視圖層類的類變量中的核心代碼:(backplay, foreplay)。(backplay, foreplay)。同時(shí),每一個(gè)畫布對(duì)象都必須維護(hù)一個(gè)Display類的對(duì)象display的引用,若要顯示某一個(gè)畫布或者其它的組件,只需要display調(diào)用SetCurrent(Displayable nextDisplayable)方法即可。視圖層初始化工作完畢以后,Main就會(huì)顯示開始游戲按鈕,用戶點(diǎn)擊按鈕CommandAction()方法就會(huì)處理用戶請(qǐng)求。(3) 開始游戲在IndexCanvas中的run()方法中調(diào)用游戲控制層方法handle(),根據(jù)玩家不同的選擇,游戲控制層會(huì)給出不同的響應(yīng)。游戲開始以后主要由視圖層接受玩家輸入、游戲控制層調(diào)用業(yè)務(wù)層處理輸入。. 游戲數(shù)據(jù)訪問層實(shí)現(xiàn)數(shù)據(jù)層的實(shí)現(xiàn)主要實(shí)現(xiàn)玩家數(shù)據(jù)的保存、資源文件的加載。資源文件的加載主要調(diào)用資源管理模塊。繼承是一般化類與特殊類之間耦合的一種形式。因此,它們彼此之間應(yīng)該結(jié)合的越緊密越好[13]。所以,編寫所有DAO(Database Access Object,數(shù)據(jù)訪問對(duì)象)的父類BaseDao,BaseDao完成對(duì)字節(jié)數(shù)據(jù)的插入、刪除、更新和查詢方法。最后,使用GuanBean、UserBean、SaveGameBean這三個(gè)類封裝各自的數(shù)據(jù)。query(int id)在父類中的功能是查詢指定Record id的數(shù)據(jù),返回值為字節(jié)數(shù)組。(1) 調(diào)用父類的方法, (guanID)。(3) 使用臨時(shí)變量temp[]初始化字符串str。(5) 返回UserBean對(duì)象,本文中對(duì)象數(shù)據(jù)和字節(jié)數(shù)據(jù)的相互轉(zhuǎn)換被多次調(diào)用,尤其在保存游戲狀態(tài)信息時(shí)被多次使用,所以特在此說明。所以,本文以DataInputStream和DataOutputStream作為對(duì)象和字節(jié)數(shù)組相互轉(zhuǎn)化的媒介[15]。(2) 連結(jié)流 DataOutputStream dos = new DataOutputStream(baos)。例如如下程序段:(“字符串類型”)。(10)。(5) 關(guān)閉流 ()。讀入對(duì)象數(shù)據(jù)的方法:(1) 初始化ByteInputStream bis = new ByteArrayInputStream(data)。(2) 連接數(shù)據(jù)流DataInputStream dis = new DataInputStream(bis)。()等。()。UserBean的屬性:guanID、costBulletNum、maxBulletNum。SaveGameBean的屬性:guanID、maxBulletNum、leftBulletNum、map(字節(jié)數(shù)組)。資源管理的功能分為游戲資源的加載和游戲資源的釋放。所以,一旦該資源不再使用就應(yīng)該釋放,避免內(nèi)存溢出。比如:本游戲中的首頁背景圖片和背景音樂較大,所以要提前加載并且一旦玩家停止背景音樂的播放就釋放背景音樂所占用的資源,而其它資源就可以按如下步驟執(zhí)行:若系統(tǒng)要顯示首頁IndexCanvas,那么就在加載首頁之前,系統(tǒng)會(huì)自動(dòng)調(diào)用IndexCanvas的showNotify()方法。當(dāng)首頁畫布不再顯示時(shí)的時(shí)候,必須在首頁畫布的hideNotify()(),即釋放圖片所占用的資源,雖然虛擬機(jī)可以執(zhí)行資源的回收,但是將相應(yīng)資源的應(yīng)用設(shè)置為null可以加快資源的釋放,提高內(nèi)存的使用效率[16]。Input對(duì)象調(diào)用createWorld(int guanID)方法創(chuàng)建特定的GraphicWorld對(duì)象gameWorld,并將gameWorld作為返回值。(2) 首先調(diào)用readBody()方法讀取建筑層信息并根據(jù)信息創(chuàng)建建筑層對(duì)象,然后將建筑層的所有對(duì)象存入Vector作為返回值返回。調(diào)用readProp()方法讀取道具層信息并根據(jù)信息創(chuàng)建道具,然后將道具層對(duì)象存入Vector并作為返回值返回。(4) 設(shè)置world的屬性:設(shè)置空氣阻力為0、旋轉(zhuǎn)阻力為0和模擬世界的起始x軸坐標(biāo)為0到320。通過shapeSet可以調(diào)用RegisterImage()方法注冊(cè)所有圖片到世界。tick()周期方法的實(shí)現(xiàn)簡介:(1) 從子彈向量bullets里取出一個(gè)子彈對(duì)象所用到的方法是bullet= (Bullet)(i)。若為真,則從bullets里刪除該bullet對(duì)象,并且從world中也要?jiǎng)h除該bullet對(duì)象。(3) 調(diào)用檢查子彈是否越界的函數(shù)checkPos()。(4) 判斷子彈是否發(fā)生了碰撞,若發(fā)生了碰撞執(zhí)行第五步。(5) 判斷子彈的碰撞類型屬于哪一種情況即圖5圖5圖54所示的哪一類情況。 * =1。然后調(diào)用changeV()改變速度方向。(7) 調(diào)用父類的tick()方法。在父類的tick()方法中,物理引擎就會(huì)根據(jù)Body對(duì)象的isAffectedByGravity方法的返回值判斷對(duì)象是否受到重力影響,如果是true則對(duì)這個(gè)對(duì)象應(yīng)用重力,否則就不應(yīng)用重力。最后,速度的合成。其次,物理模擬模塊和游戲框架的整合必須根據(jù)游戲框架的總體類圖。InputMap類的對(duì)象會(huì)根據(jù)地圖文件中的信息創(chuàng)建一個(gè)GraphicWord類的對(duì)象world。最后再將創(chuàng)建的世界world交給SimulationCanvas進(jìn)行模擬。最后,完成音樂播放模塊。播放實(shí)現(xiàn)類ForeMusicPlay和BackMusicPlay必須繼承Thread[17],根據(jù)詳細(xì)設(shè)計(jì)中的活動(dòng)圖重寫run()方法。前景音效沒有notifyStop()函數(shù)。Audio類為播放實(shí)現(xiàn)類提供播放器。protected static final String TYPE_MP3 = audio/mpeg。public static final short BULLET_ON = 1//子彈上膛。public static final short SHOT = 3//發(fā)射子彈。創(chuàng)建播放器的方法是createSound(int index),方法簡介:(1) 根據(jù)index 設(shè)置res和type 的值。(3) 創(chuàng)建播放器m_sounds[snd] = (isInputMusic, type)。(5) 設(shè)置循環(huán)次數(shù)為1 即不停播放背景音樂。然后,獲取聲音控制器,設(shè)置背景音樂的聲音大小為40。資源類型為MP3格式和wav格式的數(shù)據(jù)都可以創(chuàng)建播放器。. 游戲視圖層的實(shí)現(xiàn)游戲視圖層主要是作用是第一,視圖層和玩家產(chǎn)生交互,玩家在視圖層通過以下三種方式輸入;第二,繪制游戲中的場(chǎng)景和特效。(2) 初始化按鈕并且為按鈕注冊(cè)監(jiān)聽器 (this)。(4) 實(shí)現(xiàn)mandAction()實(shí)現(xiàn)玩家按鈕事件的響應(yīng)。下面介紹實(shí)現(xiàn)游戲按鍵事件的響應(yīng)的方法。兩顆子彈所指的選項(xiàng)就是玩家選擇要進(jìn)行的操作,玩家通過按下按鍵選擇相應(yīng)的操作。由于機(jī)型的不同按鍵的值是不同的,所以要從實(shí)際出發(fā)確定按鍵值。當(dāng)玩家按下按鍵即方向鍵四個(gè)和中間的選擇鍵一個(gè)后畫布就要調(diào)用repaint()方法進(jìn)行重繪,前景音樂播放一次,以便提示玩家一個(gè)按鍵按下,選項(xiàng)發(fā)生變化。在游戲開始以后,玩家點(diǎn)擊觸摸屏就會(huì)在SimulationCanvas的pointerPressed()方法中判斷當(dāng)前子彈數(shù)是否小于本關(guān)的最大子彈數(shù)且游戲主角沒有死亡,則發(fā)射一發(fā)子彈,同時(shí)播放子彈發(fā)射的聲音。同時(shí)判斷游戲的狀態(tài)如何改變。繪制場(chǎng)景的作用主要調(diào)用動(dòng)畫管理模塊,繪制操作主要在Canvas類的paint()方法中完成。該方法有五個(gè)參數(shù):Graphics g, int ImageNum, Image image, int dis_x, int dis_y, int offset這五個(gè)參數(shù)分別為畫筆、幀的總數(shù)、圖片資源、繪制的目標(biāo)坐標(biāo)、要繪制的幀的序號(hào)[19]。drawRegion()有一個(gè)旋轉(zhuǎn)參數(shù),該參數(shù)指定選定的圖片旋轉(zhuǎn)角度,旋轉(zhuǎn)的角度有90度、180度、270度和不旋轉(zhuǎn)。該方法的思路如圖521。 src_y = h * (offset1) 。StartCanvas 主要完成關(guān)卡選擇的繪制,關(guān)卡選項(xiàng)中要顯示玩家通過本關(guān)時(shí)所用的最多子彈數(shù)和所花費(fèi)的子彈數(shù),見圖523。AboutAndHelpCanvas主要繪制關(guān)于和幫助見圖525和526。523 StartCanvas的效果SimulationCanvas的效果如圖524。525 關(guān)于畫布的效果圖幫助頁面主要是提供游戲目標(biāo)、游戲的操作方法、游戲的開始方法的簡介。幫助頁面的效果如圖圖525。EndCanvas的效果如圖526。第二種方式,程序控制游戲的進(jìn)程。程序中首先定義游戲狀態(tài)信息:private static final int Game_Over = 2。private static final int Game_Success = 1。處理游戲狀態(tài)的函數(shù)handle(int EventType)根據(jù)EventType來管理游戲的狀態(tài)。Endcanvas顯示游戲失敗頁。否則就繼續(xù)游戲。詳細(xì)設(shè)計(jì)主要是講了游戲模塊中的關(guān)鍵算法,模塊的實(shí)現(xiàn)方法,關(guān)鍵技術(shù)是如何使用的。6 測(cè)試 系統(tǒng)測(cè)試計(jì)劃 測(cè)試目的本系統(tǒng)的測(cè)試目的就是保證游戲的可用性即保證各個(gè)功能模塊的實(shí)現(xiàn),達(dá)到了需求分析的要求,最大限度的發(fā)現(xiàn)系統(tǒng)存在的問題。 測(cè)試環(huán)境本系統(tǒng)的測(cè)試環(huán)境使用模擬器模擬真機(jī)進(jìn)行測(cè)試。本小節(jié)以物理模擬模塊中的反正切值計(jì)算算法、子彈碰撞測(cè)試和數(shù)據(jù)管理模塊中的RMS管理為例說明系統(tǒng)的功能測(cè)試計(jì)劃。子彈穿過馬匪。子彈按照光線發(fā)射原理改變方向。子彈按照光線發(fā)射原理改變方向。子彈按照光線發(fā)射原理改變方向。子彈穿過主角。完成標(biāo)準(zhǔn):子彈按照需求適當(dāng)?shù)母淖兯俣确较颉1?63 反正切算法測(cè)試表測(cè)試目標(biāo)反正切算法得到的角度值的準(zhǔn)確性測(cè)試范圍:單元測(cè)試技術(shù):使用J2ME計(jì)算本系統(tǒng)所使用的所有可能的反正切值與使用J2SE計(jì)算的值進(jìn)行比較得出最大誤差。完成標(biāo)準(zhǔn):橫坐標(biāo)與縱坐標(biāo)的全部組合值已經(jīng)計(jì)算完畢。完成標(biāo)準(zhǔn):橫坐標(biāo)與縱坐標(biāo)的全部組合值已經(jīng)計(jì)算完畢。因此,該函數(shù)必須經(jīng)過
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1