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

正文內(nèi)容

基于j2me的java游戲坦克大戰(zhàn)的開(kāi)發(fā)畢業(yè)設(shè)計(jì)論文-展示頁(yè)

2025-06-27 14:39本頁(yè)面
  

【正文】 chunks就可以得到精簡(jiǎn),圖片的大小可以得到控制。坦克之間或與障礙物碰撞時(shí)就不會(huì)因?yàn)楸尘坝刑囟ǖ念伾?,顯示出的效果像貼上的圖片而缺乏真實(shí)感,物體之間輕微重疊時(shí)最上層圖片也不會(huì)覆蓋超過(guò)其有效象素外的部分。 PNG格式PNG(Portable Network Graphics)格式是MIDlet唯一支持的圖象格式,PNG具體格式由PNG Specification,Version 。程序只能在paint()函數(shù)中使用Graphics繪制,GameCanvas可調(diào)用getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時(shí)間請(qǐng)求傳輸?shù)角芭_(tái)。 Graphics類Graphics類提供了簡(jiǎn)單的2D繪圖功能。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開(kāi)發(fā)商能定義他們自己的游戲鍵布局。Canvas提供了鍵盤(pán)事件、指點(diǎn)桿事件(如果設(shè)備支持),并定義了允許將鍵盤(pán)按鍵映射為游戲控制鍵的函數(shù)。 提供低級(jí)繪制的Canvas類為了能有程序開(kāi)發(fā)人員控制接口的外觀和行為,需要使用大量的初級(jí)用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是Canvas抽象類進(jìn)行繪圖。如果已死亡或完成所有的關(guān)數(shù),程序?qū)⒂脩羲玫姆謹(jǐn)?shù)記載到RMS數(shù)據(jù)庫(kù)中,進(jìn)行永久性保存。敵方坦克與用戶坦克的相關(guān)功能和具體行為分別定義在EnemySprite和UserSprite類中,它們都繼承自TankSprite公共類,以簡(jiǎn)化程序的代碼、理清結(jié)構(gòu)。它決定了游戲何時(shí)該結(jié)束,何時(shí)分配敵人數(shù)量,GameOver字樣的閃現(xiàn)規(guī)則,地圖的繪制及整個(gè)游戲的調(diào)度。閃過(guò)后載入StartChoice類,為用戶提供可選擇的選項(xiàng)。TankMain類是繼承自MIDlet的控制主程序啟動(dòng)的首先被載入系統(tǒng)的部分。以便程序進(jìn)入相關(guān)的分支執(zhí)行相關(guān)的反應(yīng)代碼,結(jié)束游戲或統(tǒng)計(jì)分?jǐn)?shù)等。在屏幕重繪的主程序中,將在每次的循環(huán)中判斷若干事件。用戶坦克自誕生之時(shí)起將擁有一發(fā)子彈,子彈雖然開(kāi)在單獨(dú)的線程中,但運(yùn)行結(jié)束后(比如撞到相關(guān)物體或敵方坦克時(shí))并不結(jié)束子彈對(duì)象,只是將其線程終止。用戶控制的坦克運(yùn)行在主線程中,隨屏幕刷新的頻率而步進(jìn)。運(yùn)行程序后允許用戶選擇執(zhí)行選項(xiàng)菜單,在開(kāi)始游戲后將先從外部文件載入地圖文件,對(duì)背景的所有物體進(jìn)行繪圖。在MIDP規(guī)格中定義了MIDlet的生命周期,以及可以存在的三種狀態(tài),包括Paused、Active以及Destroyed,每一個(gè)MIDlet在任何時(shí)刻只可能處于其中的一個(gè)狀態(tài)。MIDlet及相關(guān)的支持類組成了MIDP應(yīng)用程序的實(shí)際內(nèi)容。以上相關(guān)技術(shù)細(xì)節(jié)和整體流程將分別在以下小節(jié)闡述。9. Java是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較C++等完全編譯后的程序會(huì)低很多,程序如果不進(jìn)行精簡(jiǎn)和優(yōu)化,將可能導(dǎo)致運(yùn)行的不流暢。手機(jī)中由于處理器和內(nèi)存空間、存儲(chǔ)空間都十分有限,其數(shù)據(jù)庫(kù)系統(tǒng)與普通PC大相徑庭。如何采用合理的記分標(biāo)準(zhǔn),需要進(jìn)行適當(dāng)?shù)脑O(shè)計(jì)。同時(shí),地圖關(guān)卡不宜保存在手機(jī)有限的內(nèi)存中,而最好采取外部文件的讀入讀出方法。7. 游戲的地圖不可能通過(guò)繪圖來(lái)解決。6. 游戲的結(jié)束、開(kāi)始、動(dòng)態(tài)信息畫(huà)面作為構(gòu)成一個(gè)完美程序都是必不可少的重要部分。5. 雙方的坦克在前進(jìn)時(shí)也需要考慮到是否碰撞到相關(guān)物體或?qū)Ψ教箍?,以免重疊運(yùn)行,造成許多物理上不可能的情況,缺乏真實(shí)感。另外,子彈在運(yùn)行過(guò)程中也需要實(shí)時(shí)掃描是否碰撞到了相關(guān)障礙物或屏幕邊界。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。敵人坦克的運(yùn)行算法也需要進(jìn)行適當(dāng)?shù)脑O(shè)置,以免游戲過(guò)于簡(jiǎn)單,單調(diào)。3. 己方坦克的運(yùn)行可以通過(guò)鍵盤(pán)響應(yīng)事件控制,但敵方則因?yàn)槭亲詣?dòng)運(yùn)行,就需要有一定其一定的智能性;同時(shí),出現(xiàn)在屏幕上的敵方可能會(huì)有較多的數(shù)量,這需要為每個(gè)敵方開(kāi)辟一個(gè)線程以便能讓其獨(dú)立運(yùn)行。因此,其邏輯設(shè)計(jì)應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計(jì)中。目 錄摘 要 I Abstract I 第一章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) 3 本程序需解決的有關(guān)技術(shù)問(wèn)題 3 程序流程 4 6 提供低級(jí)繪制的Canvas類 6 Graphics類 6 PNG格式 6 Game包中的新功能 7 第二章 游戲的設(shè)計(jì)思路 8 坦克的控制和敵方的智能運(yùn)行 8 子彈的運(yùn)行和控制 9 RMS數(shù)據(jù)庫(kù)系統(tǒng) 10 內(nèi)存使用的最佳化 11 混淆器(Obfuscator)的使用 12 第三章 程序分析和具體實(shí)現(xiàn) 12 游戲進(jìn)入前的選擇 12 主游戲邏輯及其涉及到的若干類 13 坦克的共同行為 15 玩家坦克的功能屬性 16 敵人坦克的功能屬性 16 子彈的運(yùn)行和控制 18 記分系統(tǒng) 19 本章小結(jié): 21 第四章 總 結(jié) 21 本程序的總結(jié)和展望 21 經(jīng)驗(yàn)和感想 22 參考文獻(xiàn) 23 第一章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) 本程序需解決的有關(guān)技術(shù)問(wèn)題1. 游戲程序是一項(xiàng)精度要求很高的程序系統(tǒng),因?yàn)槠浯a利用率很高。[關(guān)鍵字]:J2ME,手機(jī)游戲,Java,坦克大戰(zhàn)手機(jī)中將Java語(yǔ)言引入,作為一種通用的開(kāi)發(fā)標(biāo)準(zhǔn),并將向市場(chǎng)推廣普及僅僅短短幾年,J2ME仍是一種新型的技術(shù),中文資料除臺(tái)灣出版過(guò)相關(guān)書(shū)籍外,國(guó)內(nèi)相關(guān)介紹資源很有限,國(guó)內(nèi)J2ME開(kāi)發(fā)商也屈指可數(shù),名聲較響的DigitalRed公司也僅成立于1999年。本程序的界面和運(yùn)作方式繼承于日本任天堂公司在20世紀(jì)80年代開(kāi)發(fā)的Battle City游戲,將老少皆宜的經(jīng)典作品移植到手機(jī)上來(lái),為更流行的硬件平臺(tái)提供應(yīng)用軟件。隨著手機(jī)的日益普及、Java功能在移動(dòng)設(shè)備上的實(shí)現(xiàn),Java應(yīng)用程序產(chǎn)生的手機(jī)增值服務(wù)逐漸體現(xiàn)出其影響力,對(duì)豐富人們的生活內(nèi)容、提供快捷的資訊起著不可忽視的作用。 西南交通大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 第II頁(yè)西 南 交 通 大 學(xué)Java游戲編程技術(shù)課程設(shè)計(jì)報(bào)告坦克大戰(zhàn)游戲編程課程設(shè)計(jì)報(bào)告年 級(jí): 2008級(jí) 學(xué) 號(hào): 20082961 姓 名: 陳錦添 專 業(yè): 信息管理與信息系統(tǒng) 分?jǐn)?shù):教師簽名:二零一零年六月西南交通大學(xué)課程設(shè)計(jì)報(bào)告摘 要Java良好的跨平臺(tái)特性在移動(dòng)平臺(tái)的開(kāi)發(fā)中顯示出了巨大的威力。Java語(yǔ)言面向?qū)ο蟮膬?yōu)勢(shì)也使得開(kāi)發(fā)游戲變得非常容易。本論文著眼于J2ME技術(shù)的應(yīng)用,開(kāi)發(fā)一款可商用的手機(jī)游戲程序——坦克大戰(zhàn)。本論文介紹了任天堂紅白機(jī)的軟硬件特性、J2ME的相關(guān)技術(shù)及本程序的結(jié)構(gòu)分析和具體功能的實(shí)現(xiàn)。本文可算是對(duì)新技術(shù)的一些嘗試,代表對(duì)無(wú)線平臺(tái)應(yīng)用程序推廣的一些努力。一個(gè)實(shí)時(shí)運(yùn)行的最終作品,每秒都會(huì)運(yùn)行成千上萬(wàn)行程序,繪圖事件、鍵盤(pán)事件都會(huì)以極高的頻率在后臺(tái)等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯(cuò)誤,甚至死循環(huán)。2. 游戲中為了美觀,適用性強(qiáng),可能需要采用外部文件引入的圖片貼圖,有關(guān)貼圖,使得解決靜態(tài)或動(dòng)態(tài)、畫(huà)面背景、屏幕刷新的雙緩沖等都有較好的解決方案。Java的多線程能力為實(shí)現(xiàn)這樣的游戲提供了可能。4. 對(duì)于雙方坦克發(fā)出的子彈的控制也需要對(duì)其跟蹤控制,子彈也需要處在獨(dú)立的線程中。這需要對(duì)所有的對(duì)象有較好的控制。如此過(guò)多的線程同時(shí)在本來(lái)效率就不高的KVM虛擬機(jī)上運(yùn)行,也許會(huì)導(dǎo)致程序的緩慢。每一次刷新頁(yè)面、每前進(jìn)一步都需要將所有的周圍環(huán)境都進(jìn)行掃描。良好的用戶界面更是吸引用戶的硬指標(biāo),相關(guān)的美術(shù)構(gòu)圖也需要有一定的考慮。否則,不僅難于控制和處理過(guò)多的元素,也會(huì)因過(guò)多的大型圖片而不能限制程序的大小,失去手機(jī)上程序的原則和Java的優(yōu)勢(shì)。8. 用戶運(yùn)行游戲時(shí)需要有分?jǐn)?shù)記錄的可能。記錄分?jǐn)?shù)的存儲(chǔ)方式也需要有較好的解決方案。其數(shù)據(jù)庫(kù)結(jié)構(gòu)較為簡(jiǎn)單,被稱之為RMS系統(tǒng)。除開(kāi)發(fā)過(guò)程中對(duì)結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器(Obfuscator)進(jìn)行程序打包后的優(yōu)化。 程序流程MIDlet suite是MIDP應(yīng)用程序的最小單位,JAM負(fù)責(zé)將手機(jī)內(nèi)的MIDlet suite以圖形化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的MIDlet suite,一旦選取了某個(gè)MIDlet suite,操作系統(tǒng)就會(huì)激活KVM執(zhí)行里面的MIDlet。消減狀態(tài)(Destroyed)停止?fàn)顟B(tài)(Paused)運(yùn)行狀態(tài)(Active)StartApp()DestroyApp()呼叫MIDlet的構(gòu)造函數(shù)DestroyApp()PauseApp()圖11 MIDlet的流程。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖所示:本程序采用面向?qū)ο蟮脑O(shè)計(jì)模式,對(duì)游戲中的所有物體賦予對(duì)象的概念和屬性。在主程序運(yùn)行的線程中,畫(huà)面刷新將以一定的頻率采用雙緩沖技術(shù)對(duì)屏幕重繪,實(shí)時(shí)反映整個(gè)游戲的進(jìn)行狀態(tài)。敵方坦克將在游戲開(kāi)始時(shí)逐漸新增線程,每增加一個(gè)敵方對(duì)象就新增加一條線程,一旦線程數(shù)滿到最大值(本程序暫設(shè)置為6),就不允許敵人再繼續(xù)出現(xiàn)。用戶再次發(fā)射子彈時(shí)只是將終止的線程再次激活。如:用戶坦克的生命是否已完全用盡,敵方坦克數(shù)是否已經(jīng)為零,屏幕上的坦克數(shù)量是否少于仍剩下的坦克數(shù)量等。主程序流程如圖32所示:Logo 畫(huà)面選項(xiàng)畫(huà)面主程序屏幕繪圖本關(guān)記分統(tǒng)計(jì)顯示GameOver顯示歷史記分表About開(kāi)始敵方需要出坦克時(shí),生成坦克初始化參數(shù)死亡時(shí)符合結(jié)束條件時(shí)圖12 本程序的主流程圖程序?yàn)樾枰瓿瑟?dú)立功能的需顯示的模塊設(shè)置了單獨(dú)的類。載入程序后首先啟動(dòng)的是程序介紹的信息畫(huà)面。在選擇開(kāi)始后,將運(yùn)行BattleCanvas類中的總流程控制。圖13 與主程序相關(guān)的類的UML視圖圖13是程序中類之間的UML分析圖。在每關(guān)的結(jié)束或死亡后都將載入ScoreScreen類,統(tǒng)計(jì)當(dāng)前的分?jǐn)?shù)。載入過(guò)程中將對(duì)所得分?jǐn)?shù)與以往歷史比較,放置到合適的位置中,形成排序。從程序開(kāi)發(fā)的觀點(diǎn)看,Canvas類可與高級(jí)Screen類交互,程
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1