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

正文內(nèi)容

基于j2me的java游戲坦克大戰(zhàn)的開發(fā)畢業(yè)設(shè)計論文-wenkub

2023-07-03 14:39:13 本頁面
 

【正文】 明背景的圖象,這對繪制游戲畫面和被操縱主角極有幫助。它具有24位深度色彩的繪制能力,以三原色分別各占一個字節(jié)表示其顏色。鍵盤事件由鍵代碼指定,但這樣控制游戲會導(dǎo)致缺乏通用性,并不是每個設(shè)備的鍵盤布局都適合游戲的操作。載入過程中將對所得分?jǐn)?shù)與以往歷史比較,放置到合適的位置中,形成排序。圖13 與主程序相關(guān)的類的UML視圖圖13是程序中類之間的UML分析圖。載入程序后首先啟動的是程序介紹的信息畫面。如:用戶坦克的生命是否已完全用盡,敵方坦克數(shù)是否已經(jīng)為零,屏幕上的坦克數(shù)量是否少于仍剩下的坦克數(shù)量等。敵方坦克將在游戲開始時逐漸新增線程,每增加一個敵方對象就新增加一條線程,一旦線程數(shù)滿到最大值(本程序暫設(shè)置為6),就不允許敵人再繼續(xù)出現(xiàn)。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖所示:本程序采用面向?qū)ο蟮脑O(shè)計模式,對游戲中的所有物體賦予對象的概念和屬性。 程序流程MIDlet suite是MIDP應(yīng)用程序的最小單位,JAM負(fù)責(zé)將手機(jī)內(nèi)的MIDlet suite以圖形化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的MIDlet suite,一旦選取了某個MIDlet suite,操作系統(tǒng)就會激活KVM執(zhí)行里面的MIDlet。其數(shù)據(jù)庫結(jié)構(gòu)較為簡單,被稱之為RMS系統(tǒng)。8. 用戶運(yùn)行游戲時需要有分?jǐn)?shù)記錄的可能。良好的用戶界面更是吸引用戶的硬指標(biāo),相關(guān)的美術(shù)構(gòu)圖也需要有一定的考慮。如此過多的線程同時在本來效率就不高的KVM虛擬機(jī)上運(yùn)行,也許會導(dǎo)致程序的緩慢。4. 對于雙方坦克發(fā)出的子彈的控制也需要對其跟蹤控制,子彈也需要處在獨(dú)立的線程中。2. 游戲中為了美觀,適用性強(qiáng),可能需要采用外部文件引入的圖片貼圖,有關(guān)貼圖,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。本文可算是對新技術(shù)的一些嘗試,代表對無線平臺應(yīng)用程序推廣的一些努力。本論文著眼于J2ME技術(shù)的應(yīng)用,開發(fā)一款可商用的手機(jī)游戲程序——坦克大戰(zhàn)。 西南交通大學(xué)本科畢業(yè)設(shè)計(論文) 第II頁西 南 交 通 大 學(xué)Java游戲編程技術(shù)課程設(shè)計報告坦克大戰(zhàn)游戲編程課程設(shè)計報告年 級: 2008級 學(xué) 號: 20082961 姓 名: 陳錦添 專 業(yè): 信息管理與信息系統(tǒng) 分?jǐn)?shù):教師簽名:二零一零年六月西南交通大學(xué)課程設(shè)計報告摘 要Java良好的跨平臺特性在移動平臺的開發(fā)中顯示出了巨大的威力。本程序的界面和運(yùn)作方式繼承于日本任天堂公司在20世紀(jì)80年代開發(fā)的Battle City游戲,將老少皆宜的經(jīng)典作品移植到手機(jī)上來,為更流行的硬件平臺提供應(yīng)用軟件。目 錄摘 要 I Abstract I 第一章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) 3 本程序需解決的有關(guān)技術(shù)問題 3 程序流程 4 6 提供低級繪制的Canvas類 6 Graphics類 6 PNG格式 6 Game包中的新功能 7 第二章 游戲的設(shè)計思路 8 坦克的控制和敵方的智能運(yùn)行 8 子彈的運(yùn)行和控制 9 RMS數(shù)據(jù)庫系統(tǒng) 10 內(nèi)存使用的最佳化 11 混淆器(Obfuscator)的使用 12 第三章 程序分析和具體實現(xiàn) 12 游戲進(jìn)入前的選擇 12 主游戲邏輯及其涉及到的若干類 13 坦克的共同行為 15 玩家坦克的功能屬性 16 敵人坦克的功能屬性 16 子彈的運(yùn)行和控制 18 記分系統(tǒng) 19 本章小結(jié): 21 第四章 總 結(jié) 21 本程序的總結(jié)和展望 21 經(jīng)驗和感想 22 參考文獻(xiàn) 23 第一章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) 本程序需解決的有關(guān)技術(shù)問題1. 游戲程序是一項精度要求很高的程序系統(tǒng),因為其代碼利用率很高。3. 己方坦克的運(yùn)行可以通過鍵盤響應(yīng)事件控制,但敵方則因為是自動運(yùn)行,就需要有一定其一定的智能性;同時,出現(xiàn)在屏幕上的敵方可能會有較多的數(shù)量,這需要為每個敵方開辟一個線程以便能讓其獨(dú)立運(yùn)行。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。5. 雙方的坦克在前進(jìn)時也需要考慮到是否碰撞到相關(guān)物體或?qū)Ψ教箍?,以免重疊運(yùn)行,造成許多物理上不可能的情況,缺乏真實感。7. 游戲的地圖不可能通過繪圖來解決。如何采用合理的記分標(biāo)準(zhǔn),需要進(jìn)行適當(dāng)?shù)脑O(shè)計。9. Java是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較C++等完全編譯后的程序會低很多,程序如果不進(jìn)行精簡和優(yōu)化,將可能導(dǎo)致運(yùn)行的不流暢。MIDlet及相關(guān)的支持類組成了MIDP應(yīng)用程序的實際內(nèi)容。運(yùn)行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先從外部文件載入地圖文件,對背景的所有物體進(jìn)行繪圖。用戶坦克自誕生之時起將擁有一發(fā)子彈,子彈雖然開在單獨(dú)的線程中,但運(yùn)行結(jié)束后(比如撞到相關(guān)物體或敵方坦克時)并不結(jié)束子彈對象,只是將其線程終止。以便程序進(jìn)入相關(guān)的分支執(zhí)行相關(guān)的反應(yīng)代碼,結(jié)束游戲或統(tǒng)計分?jǐn)?shù)等。閃過后載入StartChoice類,為用戶提供可選擇的選項。敵方坦克與用戶坦克的相關(guān)功能和具體行為分別定義在EnemySprite和UserSprite類中,它們都繼承自TankSprite公共類,以簡化程序的代碼、理清結(jié)構(gòu)。 提供低級繪制的Canvas類為了能有程序開發(fā)人員控制接口的外觀和行為,需要使用大量的初級用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是Canvas抽象類進(jìn)行繪圖。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。程序只能在paint()函數(shù)中使用Graphics繪制,GameCanvas可調(diào)用getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時間請求傳輸?shù)角芭_。坦克之間或與障礙物碰撞時就不會因為背景有特定的顏色,顯示出的效果像貼上的圖片而缺乏真實感,物體之間輕微重疊時最上層圖片也不會覆蓋超過其有效象素外的部分。在Game包中的TiledLayer和Sprite類都整合了這樣的功能。 LayerManager(以下簡稱LM)提供控制整體畫面層的控制。層號總是連續(xù)的,即使有中間的層被移除,其他層的序號會作相應(yīng)的調(diào)整以保持整體的完整性。唯有界面右側(cè)的計分欄由Graphics類繪制。Sprite也可以從整合的圖象中讀圖,讀圖時將把大圖分解為若干等寬等高的小圖。由此,引入?yún)⒖键c(diǎn)的概念。子彈的參考點(diǎn)設(shè)置在子彈底部的中心,因為子彈一出炮筒的時候緊挨著坦克的象素就是其底部中心。一塊整圖可被分割成等大小的圖象格,每塊格有其對應(yīng)的序號,按照行列遞增。地圖背景分為20*22個圖象格,每個格使用一個字節(jié)表示其中的障礙物,圖象文件存儲在外部文件中,以16進(jìn)制的整數(shù)串表示,因此每個地圖的大小為固定的440字節(jié)。Canvas類中采取響應(yīng)鍵盤事件的方法,每次執(zhí)行周期時會讀取keyPressed函數(shù)中需執(zhí)行的代碼。對此,針對游戲的開發(fā),Game包提供的鍵盤狀態(tài)功能將顯得十分有效。這保證了快速的按鍵和釋放也會被循環(huán)所捕捉。然而不能僅僅將用戶坦克作為其Sprite參數(shù)傳遞給敵人的類進(jìn)行判斷。這樣,就可以提前一步判斷。需要指出的是,當(dāng)發(fā)生阻礙不能在不變方向的情況下繼續(xù)行走時,并不一定立即需要采取轉(zhuǎn)向的對策。坦克之間由以上道理也不會發(fā)生重疊,但當(dāng)某坦克正從上方生成而正巧有另一輛阻礙在其生成點(diǎn)處,這將導(dǎo)致不可避免的重合。子彈所需要完成的任務(wù)有:它是一個繼承了Runnable虛類的可運(yùn)行單獨(dú)線程的對象。如果來自玩家,則每一步需掃描所有的敵方坦克,檢查是否發(fā)生碰撞,這可能會花費(fèi)不少的CPU時間。這樣較多的運(yùn)算也將不可避免的耗費(fèi)大量CPU時間。很顯然,手機(jī)上的數(shù)據(jù)庫系統(tǒng)不可能有PC上的強(qiáng)大功能。在一個MIDlet suite包里的所有MIDlet都允許創(chuàng)建多個記錄集,只要它們賦有不同的名稱。訪問模式允許私有使用或訪問。開發(fā)者可以利用InputStream的派生類DataInputStream、DataOutputStream以及ByteArrayInputStream、ByteArrayOutputStream將不同種類的數(shù)據(jù)類型打包,以字節(jié)流的形式發(fā)送和接收。然而讀取或?qū)懭氲淖止?jié)數(shù)組都只能代表一個字段的信息,如果需要讀取或?qū)懭攵鄠€字段就必須要將數(shù)據(jù)轉(zhuǎn)換成字節(jié)信息,并且提供適當(dāng)?shù)臋C(jī)制來分隔這些信息。2.利用輸入/輸出流這一種方法較上一種復(fù)雜,但是較為實用。 本程序中主要存放在永久區(qū)的內(nèi)容為用戶得到的最高分?jǐn)?shù)的記錄。返回的getString可以將名字輸送給字節(jié)流。在這樣的情況下需要在不影響原有功能的情況下適當(dāng)?shù)目s減JAR文件的大小,除了可以克服內(nèi)存空間的限制外,也能大幅度縮短下載的時間(費(fèi)用也降低了),勢必會有更多的人愿意下載所開發(fā)的程序。第二是減少復(fù)雜的程序結(jié)構(gòu),為一些共同的行為建立一個抽象類(Abstract Class) 來表示繼承的子類的共通性。它包括了所有的信息。由此引入混淆器的概念?;煜?,體積大約能減少25%,這對當(dāng)前費(fèi)用較貴的無線網(wǎng)絡(luò)傳輸是有一定意義的。它控制著整個程序的運(yùn)行,并且可以通過相應(yīng)函數(shù)從程序描述文件中獲取相關(guān)的信息。運(yùn)行畫面如圖31所示。Alert對象用于顯示提示、警告等告之用戶信息的臨時閃現(xiàn)的屏幕,它可作為setCurrent的參數(shù),提前顯示在最終需要顯示的屏幕前。效果如圖32所示。在設(shè)置好mandlistener后,需要調(diào)用setCommandListener()以將按鈕事件激活。其中,當(dāng)選擇第一項時將載入正式游戲畫面BattleCanvas類,第二項將顯示幫助信息(效果如圖33),第三項則是重新顯示與作品和作者相關(guān)的logo畫面。本程序設(shè)置為20毫秒。這兩個類均在BattleCanvas中建立了對象,以便進(jìn)行統(tǒng)一調(diào)度。還需保存的變量有,游戲開始時間、結(jié)束時間(用于統(tǒng)計分?jǐn)?shù))、敵人的總數(shù)、屏幕上敵人的數(shù)量、下一個敵人需要出現(xiàn)的位置(總共允許在三個不同的位置出現(xiàn),分別位于屏幕的左、中、右方)、游戲是否已成功結(jié)束或是否已死亡。外部文件分別命名為le
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1