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

正文內(nèi)容

基于j2me手機坦克大戰(zhàn)游戲設(shè)計與開發(fā)畢業(yè)論文-預覽頁

2025-07-13 12:33 上一頁面

下一頁面
 

【正文】 主要從游戲開發(fā)中的技術(shù)要素角度入手研究手機游戲開發(fā)技術(shù),基于目前主流的J2ME移動開發(fā)平臺,研究如何在系統(tǒng)資源和處理速度相當有限的移動設(shè)備上開發(fā)出高效的游戲應(yīng)用軟件,進而比較高效的實現(xiàn)手機游戲開發(fā)中較為常用的關(guān)鍵技術(shù),在目前手機游戲市場飛速發(fā)展的趨勢下,是有著相當?shù)默F(xiàn)實意義和價值的研究課題。日韓還涌現(xiàn)了眾多實力強勁的手機游戲內(nèi)容提供商,如日本CYBIRD和韓國Com2Us,而傳統(tǒng)的游戲廠商如世嘉和索尼在一開始就加入了手機游戲內(nèi)容提供商的行列。中國聯(lián)通也推出了基于Java和BREW平臺的手機游戲業(yè)務(wù),手機游戲業(yè)務(wù)發(fā)展步伐不斷加快。截止目前,我國手機的使用量已突破10億。使得手機游戲的開發(fā)前景無限光明[3]。主機所采用得處理器為CMOS 6502,一款已經(jīng)淘汰的70年代中期產(chǎn)品。圖1 80年代中期的FC機器圖2 Battle City的界面論文以在校期間學習的J2ME平臺手機軟件開發(fā)為背景,結(jié)合自身比較感興趣的游戲開發(fā)方向,圍繞目前應(yīng)用廣泛的J2ME的移動平臺下的游戲開發(fā)關(guān)鍵技術(shù)為主題,在對J2ME平臺下的手機游戲開發(fā)技術(shù)進行了全面研究的基礎(chǔ)上,重點深入分析研究了手機游戲通用框架,以及開發(fā)運行一款簡單的手機游戲,在J2ME平臺上完成設(shè)計實現(xiàn),并獲得了比較滿意的運行效果。重點介紹了連接受限設(shè)備配置(CLDC)和移動信息設(shè)備簡表規(guī)范(MIDP), 最后介紹的是J2ME應(yīng)用程序的開發(fā)流程。主要包括程序所需要解決的問題,以及在坦克大戰(zhàn)的具體實現(xiàn)過程中我們所用到的繪圖技術(shù)和程序所需要的應(yīng)用技術(shù)比如:內(nèi)存使用的最佳化和混淆器的使用。 本章小結(jié)本章是對坦克大戰(zhàn)手機游戲的設(shè)計現(xiàn)做的一份調(diào)查和計劃表,這樣對程序制作有了更加深入的了解,在此基礎(chǔ)上使程序的制作流程更加緊密和流暢。J2ME不是一個單獨的技術(shù)規(guī)范,而是一系列技術(shù)規(guī)范的總稱,J2ME適用于這些設(shè)備的同時也保留了JAVA的傳統(tǒng)特性,即在任何時間,任何地點的任何代碼具有可移植性,部署靈活性,安全的網(wǎng)絡(luò)傳輸性,以及代碼穩(wěn)定性,所以開發(fā)人員才可以編寫程序運行在其他廠商設(shè)備上,它主要以消費類產(chǎn)品和嵌入式設(shè)備為目標,包括各種電子產(chǎn)品,如移動電話、PDA、電視機頂盒和其他小型設(shè)備等。為移動互聯(lián)引入了一種新的模式,允許移動智能設(shè)備可以從互聯(lián)網(wǎng)上下載各種應(yīng)用程序,并在本地設(shè)備上創(chuàng)建各自的環(huán)境來運行這些應(yīng)用程序。Java虛擬機(JVM):針對設(shè)備本地操作系統(tǒng)定制的Java虛擬機的實現(xiàn),支持特定的J2ME配置。CLDC由兩部分組成:為應(yīng)用程序提供的最小Java語言類庫和適合在資源受限設(shè)備上運行的Java虛擬機(KVM)。本文應(yīng)用開發(fā)就是基于J2ME平臺上的CLDC配置和MIDP簡表的[8]。(2)混淆(可選):利用混淆工具,將方法名、類名改成沒有實際意義的特定的字符及代號,增加閱讀的難度。(3)預校驗:在完成編譯后,必須要對*.class文件進行預校驗,這和傳統(tǒng)的Java程序(Applet、Servlet)是不同的。(4)打包并編寫描述文件:*.class文件進行打包,打包后將獲得MIDP認可的可執(zhí)行jar文件。對于如何將其部署到到手機上,根據(jù)手機的功能不同,通??梢赃x擇如下方法:使用數(shù)據(jù)線、使用紅外線、使用藍牙或者使用OTA技術(shù)下載安裝。(3) 概要設(shè)計:策劃具體的游戲方案。MIDlet及相關(guān)的支持類組成了MIDP應(yīng)用程序的實際內(nèi)容。運行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先從外部文件載入地圖文件,對背景的所有物體進行繪圖。用戶坦克自誕生之時起將擁有一發(fā)子彈,子彈雖然開在單獨的線程中,但運行結(jié)束后(比如撞到相關(guān)物體或敵方坦克時)并不結(jié)束子彈對象,只是將其線程終止。程序為需要完成獨立功能的需顯示的模塊設(shè)置了單獨的類。在選擇開始后,將運行該類中的總流程控制。在本程序的編寫中使用到了三種碰撞檢測,第一種是敵方坦克與用戶坦克的碰撞檢測,第二種是敵方坦克與地圖的碰撞檢測,第三種是敵方坦克和子彈的碰撞檢測。如果一定發(fā)生轉(zhuǎn)向,試想,當敵方碰到玩家時,如果它立即轉(zhuǎn)向,將不會對玩家發(fā)射射向他的子彈,就不構(gòu)成任何威脅,當然,也不能永遠不轉(zhuǎn)向。本程序中并未使用過多復雜的人工智能算法,如有時間,將可能再此方面加以完善。在其出現(xiàn)在屏幕上的運行周期中,每一步都需要循環(huán)檢測以下條件[12]是否與某坦克發(fā)生了碰撞,即擊中了這輛坦克。其次,子彈之間需要檢測是否碰撞。子彈對不同障礙物將有不同的反映。一個實時運行的最終作品,每秒都會運行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應(yīng),若有絲毫的差別都將很容易導致程序在運行不久后可能出現(xiàn)嚴重錯誤,甚至死循環(huán)。涉及到藝術(shù),文學,邏輯學,社會學,歷史等等一系列的元素。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。,以免重疊運行,造成許多物理上不可能的情況,缺乏真實感。記錄分數(shù)的存儲方式也需要有較好的解決方案。,根據(jù)FC版的坦克大戰(zhàn)去設(shè)計各種初始參數(shù),例如:坦克數(shù)量,坦克類型設(shè)置,游戲圖形匹配,游戲速度。制作友好的用戶界面可以更加吸引玩家,這也需要參考大量的同類型游戲。 與高級API相比控制更加靈活,但這是以其復雜性、高成本為代價的,并犧牲了一定的可移植性。Canvas提供了鍵盤事件、指點桿事件(如果設(shè)備支持), 并定義了允許將鍵盤按鍵映射為游戲控制鍵的函數(shù)。 Graphics類Graphics類中提供了一套各不相同的關(guān)于圖形繪制的方法,一般來說,圖形繪制首先要調(diào)用相關(guān)的方法進行顏色設(shè)置、坐標變換和剪裁。PNG(Portable Network Graphics)格式是MIDlet唯一支持的圖象格式。Game包中的TiledLayer和Sprite類都整合了這樣的功能。這樣的技術(shù)在繪制動畫時特別有用。高層事件用來處理應(yīng)用中的相關(guān)事件,如:命令事件、組件狀態(tài)變化事件。 Key Pressed方法方法key Pressed是用來處理鍵被按下的事件,這個方法沒有與其對應(yīng)的顯示的聽眾對象(Listener),這些聽眾對象有系統(tǒng)根據(jù)實際對象缺省提供,例如后面提到的Canvas對象就是默認的key事件聽眾對象,它缺省地實現(xiàn)了Key Listener接口[14]。 Key Released方法可以說方法key Released與上面提到的keyPressed方法是對應(yīng)的。 內(nèi)存使用的最佳化通常在MIDP應(yīng)用程序的手機執(zhí)行環(huán)境中,所牽涉的內(nèi)存有下列三種:一、應(yīng)用程序存儲內(nèi)存 二、RecordStore存儲內(nèi)存 三、執(zhí)行時期內(nèi)存(Java Heap)。在應(yīng)用程序內(nèi),對于所建立的類、接口、方法及變量名而言,都需要賦予一個識別的名稱,所命名的名稱每多一個字符就會在類文件內(nèi)多產(chǎn)生一個字節(jié),對于一個較復雜的應(yīng)用程序而言就會增加為數(shù)不小的數(shù)據(jù)量。將PNG格式的小分辨率圖象合并在一張大的高分辨率圖象中,由于減少了chunks,將比合并前的總大小減少許多。從而不能保護作者的知識成果。混淆器將代碼中的所有變量、函數(shù)、類的名稱變?yōu)楹喍痰挠⑽淖帜复枺绻狈ο鄳?yīng)的函數(shù)名指示和程序注釋,即使被反編譯,也將難以閱讀。為了能與各種IDE集成,就像Java2 SDK一樣,混淆器采用命令行參數(shù)的形式,以便可被其調(diào)用。地圖元素有:空白區(qū)域、鐵墻、磚墻、草地和飛鷹標志,飛鷹標志是玩家守護的對象。該類中擁有可以管理程序的創(chuàng)建、開始、暫停(手機中很可能有正在運行程序卻突然來電的情況,這時應(yīng)進入暫停狀態(tài)。同時這個類還繼承了mandListener,這樣就可以使用高級界面的Command按鈕。鍵盤事件中,可用getCommandType()返回的Command類型來確定選擇的是什么按鈕,本程序中主要是通過MEAU命令按鈕來連接各個界面之間的相互轉(zhuǎn)換。在游戲說明界面玩家可以了解到游戲的一些基本信息,以及制作者的相關(guān)情況。它運行在獨立的線程中,以恒定的頻率刷新畫面。程序中建立了另外的兩個類,分別表述了敵人坦克和玩家坦克的功能。還需保存的變量有,游戲開始時間、結(jié)束時間(用于統(tǒng)計分數(shù))、敵人的總數(shù)、屏幕上敵人的數(shù)量、下一個敵人需要出現(xiàn)的位置(總共允許在三個不同的位置出現(xiàn),分別位于屏幕的左、中、右方)、游戲是否已成功結(jié)束或是否已死亡。利用MIDP中唯一獲取外部文件為程序內(nèi)資源的函數(shù)將地圖文件讀入程序,外部文件分別命名為level*.map。 i 26。 //黑色背景 break。 //磚頭 break。 }繪出地圖后,將地圖放置在第一層。由于敵人將依次出現(xiàn)在屏幕上,同時出現(xiàn)的數(shù)量應(yīng)當受到控制。當然,如果當前已是最后一關(guān),就不會再轉(zhuǎn)回。游戲的最終運行狀態(tài)如下圖所示YYNYNNYN增加一個敵人游戲結(jié)束重新繪制屏幕顯示游戲結(jié)束玩家是否死亡敵人數(shù)量大于屏幕的數(shù)量進入下一關(guān)最后一關(guān)或死亡顯示計分畫面敵人數(shù)量小于0開始 圖12 TankCanvas類主要流程圖圖11 最終運行狀態(tài)圖 玩家坦克的功能屬性無論子彈是屬于敵人還是玩家的,它都必須記錄自己的來源和攻擊的對象。amp。玩家坦克程序?qū)崿F(xiàn)如下:if (((direction amp。 0x0f) { //坦克前進 case 1: if ((posX 0) amp。 !isObjsCollide()) { posX = speed。 fillheigh = frameHeight。 首先,因為敵人的運行是自動的,需要有設(shè)定的程序讓它可自己控制,而不像Hero完全通過每次輸入的鍵盤信號來做出反映。()以當前系統(tǒng)時間作為種子,調(diào)用了Random類的nextInt()產(chǎn)生一個隨機的整數(shù),作為隨機的方向。語句將避免檢測到自己,永遠返回真。如果剛出現(xiàn),就直接走一步,具體如何行走將在相對應(yīng)的函數(shù)中決定,并且此與Hero中的有所區(qū)別。開始NNNNNYYYY是否碰撞換向、取隨即移動步數(shù)并且隨即開炮可否前進開炮是否開炮前進是否剛出現(xiàn)是否已死開始 Y是否出局NY是否擊中物體N將可以清除的障礙物清除掉玩家的子彈嗎?YY是否與任何敵人的子彈碰撞N子彈控制NY是否擊中任何敵人消除敵人N敵人的子彈嗎?Y是否與玩家的子彈碰撞子彈控制NN是否擊中玩家消除玩家N結(jié)束圖14 子彈運行的主要流程圖結(jié)束圖13 敵方坦克運行流程圖 子彈的運行和控制子彈運行中,將用isMapCollide測試是否碰撞上了地圖。如果沒有擊中物體,就繼續(xù)檢測是否擊中了某輛坦克。如果是來自敵人的子彈,將同樣檢測與玩家子彈的碰撞,及與玩家坦克的碰撞如有碰撞,玩家生命數(shù)減少一位,位置重置。 i++){ //英雄坦克的子彈 if(bullet[i].alive){ for(j = 2。(bullet[i].isObjCollide(bullet[j].posX, bullet[j].posY, bullet[j].frameWidth, bullet[j].frameHeight))){ bullet[j].alive = false。 break。 j 2。 //銷毀擊中子彈 bullet[i].starNum = 0。 } } 本章小結(jié)第五章中按照相應(yīng)的步驟描述了所有關(guān)鍵類的具體算法實現(xiàn),引用了相關(guān)函數(shù)進行了具體流程的解釋,并對原理稍復雜的函數(shù)做了詳細的分析。 case 2: drawLevel(g2)。 case 4: drawResult(g2)。 case 6: drawConstuction(g2)。 } }……:private void drawMenu(Graphics g) { //繪制游戲選項目錄界面 (0x0)。 //加載的首頁圖片 if (title_y = 70) { gameSubStatus++。 //位置 font = (, , )。 (DIFFICAL, 82, 170, |)。 //文字位置 (100, 0, 0)。 } //顯示出來的文字……(實現(xiàn)界面見圖17):private void drawConstuction(Graphics g) { //繪制游戲說明界面 (0x3f,0x3f,0x3f)。 (255,0,0)。 font = (, , )。 (再接再厲,不要氣餒。 (0, 0, CanvasWidth, CanvasHeight)。 (您光榮完成了任務(wù),, 20, 80, | )。 (0x0)。 (font)。 (255,0,0)。 (st, 9*tileW, 3 * CanvasHeight / 10, |)。第七章 總結(jié)與展望 論文總結(jié)本文圍繞J2ME平臺上的手機游戲應(yīng)用開發(fā)技術(shù)的主題,進行了相關(guān)基礎(chǔ)理論和應(yīng)用技術(shù)的研究,并特別針對J2ME手機游戲設(shè)計開發(fā)中的幾項關(guān)鍵技術(shù),進行了較深入研究并完成了具體的設(shè)計實現(xiàn)。論述了手機游戲軟件的發(fā)展和分類,研究并探討了手機游戲開發(fā)的技術(shù)要點,包括手機游戲開發(fā)中的性能優(yōu)化,手機游戲的交互設(shè)計,以及手機游戲在J2ME平臺不同版本間的移植問題。同時,隨
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1