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

正文內(nèi)容

畢業(yè)論文-基于android平臺的坦克大戰(zhàn)游戲設計-在線瀏覽

2024-08-02 10:39本頁面
  

【正文】 .......................................................... 15 最高分數(shù)類存儲算法 ........................................................................................... 16 坦克炮筒角度的計算算法 .................................................................................... 17 總結與展望 ................................................................................................................................ 19 致 謝 ........................................................................................................................................... 21 參考文獻 .................................................................................................................................... 23 畢業(yè)設計(論文) 1 第 1 章 緒 論 系統(tǒng)開發(fā)背景 游戲軟件業(yè)是一個新興行業(yè),存在著巨大的生存和發(fā)展空間,同 時它也是一個存在社會爭議的行業(yè)。 游戲產(chǎn)業(yè)準確地講應該叫做電子娛樂業(yè),是指基于電子技術、計算機技術、軟件技術、網(wǎng)絡技術和無線技術的新型娛樂產(chǎn)業(yè),分為單機游戲、網(wǎng)絡游戲和無線游戲等幾個部分。 游戲軟件業(yè)從誕生到現(xiàn)在,歷經(jīng)幾代的發(fā)展,已進入了一個非常成熟的時期。 坦克大戰(zhàn)游戲是一款風靡全球的電視游戲機和掌上游戲機游戲,它曾經(jīng)造成的轟動與造成的經(jīng)濟價值可以說是游戲史上的一件大事。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個 坦克大戰(zhàn)時代。這次練習的是在 Visual studio C++ 2021 上生成坦克大戰(zhàn)游戲?,F(xiàn)在使用得比較多的是 版 和 .NET 版,隨著版本的提高, Microsoft 給我們提供的函數(shù)數(shù)據(jù)庫也越來越方便 ,越來越豐富了。使用 Microsoft Visual studio C++ 幾乎可以做出一切東西來,從即時戰(zhàn)略到三維 RPG 游戲。如果要開發(fā)出更復雜的游戲,就還需要學習更多的東西,為了提高顯示速度,需要使用 DirectX,為了制作3D 圖像,又要使用 Direct3D。 “千里之行,始于足下 ”,尤其是在邁出了坦克大戰(zhàn)的第一步之后,實際上,已經(jīng)走進了軟件開發(fā),尤其是游戲開發(fā)的大門,前面的世界是美麗多彩而又充滿挑戰(zhàn)的。其本身只是一個框架平臺,但是眾多插件的支持使得 Eclipse 擁有其他功能相對固定的 IDE 軟件很難具有的靈活性。 ADT 這是 Eclipse 插件,作用是關聯(lián) Android SDK,使 Eclipse 能夠新建 Android 工程。包含在 Android 平臺上開發(fā)移動應用程序的各種工具集,主要是由以下 5 個部分組成: Andriod 模擬器 (AVD ):運行在計算機上的虛擬移動模擬器,可以使用模擬器來在一個實際的 Android 運行環(huán)境下設計, 調試和測試應用程序??梢杂盟鼇砣コM程,選擇一個特定程序來調試,生成跟蹤數(shù)據(jù),查看堆和線程數(shù)據(jù),對模擬器或設備進行屏幕快照等。也可以用于將標準的調試器連接到運行在 android 模擬器或手機設備上的應用代碼。 創(chuàng)建 SD 卡工具 ():主要用于模擬手機 SD 卡。 Android、 C 語言、 C++三種主流編程技術比較 Android( Java) 語言是一種跨平臺,適合于分布式計算環(huán)境的面向對象編程語言。 C 語言是一種面向過程編 程,這就使得 Java 具有重用的特性 ,在開發(fā)速度上比 C 語言更快 ,但是在運行速度上卻是 C 更快,因為 C 屬于底層語言,它比 JAVA 更加親近機器,所以在許多系統(tǒng)開發(fā)上一般是用 C 語言,比如我們常用的 XP 系統(tǒng)、 LINUX 系統(tǒng),都是 C 語言開發(fā)的。 C++多用于游戲引擎、反病毒、硬件驅動以及一些對運行效率要求比較高的應用程序,比如數(shù)據(jù)庫管理系統(tǒng)。 C++為了照顧大量的 C 語言使用者 ,而兼容了 C,使得自身僅僅成為了帶類的 C 語言,多多少少影響了其面向對象的徹底性。 整體上說,本游戲分為敵我雙方,主戰(zhàn)坦克由玩家控制,敵方坦克能夠智能化的隨機出現(xiàn)在屏幕上,并且移動但是不會發(fā)射子彈。游戲過程中,玩家不可以暫停游戲,然后再開始游戲。 敵方坦克的智能運行:敵方坦克由于需要具有一定的智能性,隨機的出現(xiàn)在屏幕上,并且消失在屏幕以外,撞到主角坦克時,也不會發(fā)生爆炸。敵人可以自動行走,但是應當在以下適當?shù)那闆r下轉向:首先是是否超出界面的邊界,其次是是否與地圖障礙物發(fā)生了碰撞,再次是是否與用戶坦克發(fā)生了碰撞。 音樂音效的設置:玩家可以根據(jù)自己的喜好來通過開關按鈕,控制音樂音效。主角擊中一個敵方坦克分數(shù)就會增加一,直到 60 秒結束,所得的分數(shù),就是該次游戲的最終得分,所得的分數(shù)要和數(shù)據(jù)庫里面的分數(shù)進行比較的,看看是否能夠顯示在積分榜上面。一個實時運行的最終作品,每秒都會運行成千上萬行 程序、繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應。因此,其邏輯設計應當相當嚴謹,需將所有可能發(fā)生的事件及意外情況考慮在設計中。這里應當減少手工畫圖 ,從而是程序能更高效的運行。還需要在坦克死亡的時候終止線程。敵人坦克的運行算法也需要進行適當?shù)脑O置以免游戲過于簡單、單調或者過于繁雜。這里就需要一個單獨的線程來控制子彈或者是由子彈所屬的 畢業(yè)設計(論文) 4 坦克來控制子彈。另外子彈在運行過程中也需要實時掃描是否碰撞敵方坦克或屏幕邊界。 碰撞檢測是坦克大戰(zhàn)的最重要的環(huán)節(jié)之一。每一次刷新頁面、每一次的移動都要考慮整體以及個體與個體的變化。良好的用戶界面更是吸引用戶的硬指標 相關的美術構圖也需要有一定的考慮。 用戶運行游戲時需要有分數(shù)記錄的可能。記錄分數(shù)的存儲方式也需要有較好的解決方案。 Android 是基于虛擬機的半解釋型編譯系統(tǒng),其執(zhí)行效率較 C++等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導致運行的不流暢。 畢業(yè)設計(論文) 5 第 3 章 概要設計 系統(tǒng)功能設 計 主角 在人機對戰(zhàn)時,主角的主要功能是點擊左右虛擬按鈕,坦克會向左向右移動,但是通過按住按鈕的時間,來控制坦克的移動速度,按住時間長,坦克的速度就會加快,按住的時間短,坦克就會移動的比較慢。當子彈打中目標時,子彈和目標都會爆炸,當子彈沒有打中目標時,子彈走出屏幕,子彈消失。 如圖 所示, 圖 主角功能圖 背景音樂和音效 當游戲進入到游戲按鈕主頁面時,可以對游戲進行音樂音效的設置,音樂是當游戲開始時,加的背景音樂;而音效設置是指擋子彈發(fā)射或者子彈擊中目標時,所加的音效。音效分為開,關;音樂也分為開和關。如表 左右移動 子彈發(fā)射 時間控制 分數(shù) 虛擬按鈕 炮筒位置 主角 畢業(yè)設計(論文) 6 表 音樂音效用例圖 用例名稱 背景音樂音效 功能簡述 控制游戲背景音 樂的開關;發(fā)射子彈時的音效; 子彈打中目標時,爆炸音效 前置條件 游戲開啟,音樂音效打開 后置條件 游戲沒有結束,子彈打中目標或者有子彈發(fā)射 基本流 在主按鈕界面中,設置音效音樂 設置音樂的開關 設置音效的開關 設置成功,返回主按鈕界面 敵方坦克 敵方坦克在游戲開始以后才開始出現(xiàn),并且沒有什么太大的規(guī)律,都是從屏幕的最右面出現(xiàn),然后消失在屏幕以外或者被子彈擊中消失。如表 所示, 表 敵方坦克用例圖 用例名稱 敵方坦克 功能簡述 坦克隨機出現(xiàn),被擊中或者離開屏幕 前置條件 游戲開始,并且在 60 秒之內(nèi) 后置條件 游戲沒有結束 基本流 在主按鈕界面中點擊開始游戲 敵方坦克就會在屏幕上隨機的出現(xiàn) 如果被子彈打中就會爆炸如果沒有,則會消失在屏幕以外 系統(tǒng)功能設計流程 我把整個游戲分為了兩部分游戲開始歡迎界面,游戲功能選擇。游戲首次運行時,會有動畫界面的 播放,動畫界面分為兩個畫面,動畫畫面 動畫畫面 2。音樂開關設置分為游戲背景音樂的設置和游戲音效的設置。時間設置為一分鐘,在一分鐘內(nèi)打的坦克數(shù)量就是玩家該次游戲的得分,得分與數(shù)據(jù)庫中的分數(shù)進行比較,如果是最高的則為破紀錄,則顯示恭喜你打破記錄,如果沒有破紀錄則顯示為加油,再接再厲,同時還要和其他的分數(shù)進行比較,是否在最高分的五個分數(shù)之中 ,如果在這五個當中就會刪除原來五個分數(shù)中最低的那個,并且獲取 畢業(yè)設計(論文) 7 當時玩家游戲的時間,顯示在積分榜中。例如子彈類,子 彈類主要就是發(fā)射子彈和子彈的碰撞爆炸效果。但是整個程序的運行要所有的類之間互相配合才能完成。如圖 所示。其中坦克的 Daoao 類還有 Target 類是主角坦克和敵方坦克出現(xiàn)的類,主角發(fā)射子彈通過調用 Bullet 類還有explosion 類來實現(xiàn)的。如圖 所示 畢業(yè)設計(論文) 10 第 4 章 詳細設計 坦克大戰(zhàn)主要類基本功能分析 主類 GameActivity類, 把游戲分為八個界面,在不同的狀態(tài)下進入到不同的界面來完成不同的功能和動作,這八個界面主要是歡迎界面( WelleSurfaceView),主菜單界面( MainMenuSurfaceView ), 游 戲 界 面 ( GameView ), 音 效 控 制 界 面( SoundControlsSurfaceView ), 積 分 榜 界 面 ( HighScoreSurfaceView ), 勝 利 界 面( WinSurfaceView),失敗界面( FailSurfaceView),游戲結束界面,高分記錄界面。當游戲處于不同的狀態(tài)或者動作時就會轉到相應的界面,來完成相應的動作或者功能。當 Handler 接收到發(fā)送來的不同的信息,并采用 Case 來進行判斷是哪一個界面并且轉到該界面,來實現(xiàn)和完成相應的功能。一樣也是使用了 switch…case 語句來實現(xiàn)的。 全屏的設置,設置全屏的操作主要就兩點:隱去狀態(tài)欄部分,包括電池等圖表;把應用的名字也隱去不顯示。 隱 去 狀態(tài) :().setFlags(,WindowM)代碼來實現(xiàn)的。這兩個畫面播放完畢之后,就進入到了 MainMenuButton界面。首先是圖片的引用 ,定義了一個 logo圖片數(shù)組,并且獲得屏幕的寬和屏幕的高,目的是讓圖片容易實現(xiàn)占滿整個屏(好設置)。在引用過程中要對圖片做一些處理,為了讓圖片美觀的顯示,設置抗鋸齒: ( true ); 還 有 圖 片 資 源 的 加 載 使 用((),),其中 n為數(shù)字, name為圖片的名字。然后向這個矩形貼圖,也就是用圖片覆蓋整個屏幕。最后使用 run()函數(shù)來實現(xiàn)圖片的動畫顯示。這樣做的目的是讓圖片進行居中顯示,美觀。還有判斷是判斷圖片是不是原來的圖片,如果不是原來的圖片,而是重新放里面的新圖片,則圖片動畫需要多等一會。 動畫播放完畢后,主動轉到主菜單界面,再進行其他的操作。主要由背景界面和一些界面上的按鈕。當點擊按鈕時,就會轉到相應的頁面。 主頁面背景的設置。在函數(shù) onDraw( Canvas canvas )中對背景圖片進行繪制,通過 () 和(bgBitmap,0,0,paint)來實現(xiàn)的。在這 個函數(shù)中焦點的設置也是非常重要的,設置焦點,并且設置為可觸控焦點。焦點主要就是告訴系統(tǒng),現(xiàn)在這個試圖需要與用戶交互,讓系統(tǒng)來監(jiān)聽此視 圖。其他一些按鈕也是通過這種方法實現(xiàn)的,但是觸屏監(jiān)聽的實現(xiàn)是通過 onTouchEvent()函數(shù)實現(xiàn)的。其次是判斷該點的坐標是屬于哪一個動作范圍,并轉移到相應的函數(shù)中去實現(xiàn)該動作。但按下的動作抬起時, (),() 和 函數(shù)關閉所有的按鈕,也就是停止了所有的操作。 用到的相關的線程的函數(shù)有 craetAllThreads(),startAllThreads()和 stopAllthreads(). SurfaceHolder 類的實例,此類提供控制 SurfaceView 的大小,格式等,并且主要用于監(jiān)聽SurfaceView 的狀態(tài)。 lockCanvas()函數(shù)不僅是獲取 Canvas,同時還對獲取的 Canvas 畫布進行加鎖,這里對畫布進行同步加鎖的機制主要是為了防止 Sur
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1