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

正文內容

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

2025-08-06 12:33本頁面
  

【正文】 面的三個要素是缺一不可的。而缺了技術,則設計就無法實現(xiàn)。以上三要素是游戲設計與開發(fā)的三大基石。本文主要從游戲開發(fā)中的技術要素角度入手研究手機游戲開發(fā)技術,基于目前主流的J2ME移動開發(fā)平臺,研究如何在系統(tǒng)資源和處理速度相當有限的移動設備上開發(fā)出高效的游戲應用軟件,進而比較高效的實現(xiàn)手機游戲開發(fā)中較為常用的關鍵技術,在目前手機游戲市場飛速發(fā)展的趨勢下,是有著相當?shù)默F(xiàn)實意義和價值的研究課題。其實手機游戲業(yè)務最早發(fā)源于歐洲,但是歐洲運營商對手機游戲市場的重視不足,沒有把握好手機游戲市場發(fā)展的大好時機。日韓還涌現(xiàn)了眾多實力強勁的手機游戲內容提供商,如日本CYBIRD和韓國Com2Us,而傳統(tǒng)的游戲廠商如世嘉和索尼在一開始就加入了手機游戲內容提供商的行列。相比日韓等國,中國的手機游戲市場起步比較晚,但發(fā)展勢頭卻十分強勁,中國有一個巨大的手機用戶群,手機游戲擁有廣闊的市場前景。中國聯(lián)通也推出了基于Java和BREW平臺的手機游戲業(yè)務,手機游戲業(yè)務發(fā)展步伐不斷加快。手機游戲類型也從早期的嵌入式游戲、短信游戲、WAP游戲、單機JAVA游戲再到網絡JAVA游戲,手機游戲產業(yè)在內容的不斷豐富中初顯雛形。截止目前,我國手機的使用量已突破10億。以此推算,手機游戲產業(yè)的爆發(fā)力可謂巨大;隨著人們對手機游戲的認可和相關服務水平的不斷提高,用戶的消費動機也逐漸由被動走向主動,極大地促進了該產業(yè)的發(fā)展。使得手機游戲的開發(fā)前景無限光明[3]。 FC主機在游戲業(yè)界造成的巨大沖擊眾所周知,這款主機在當時事實上幾乎占領了世界各地多個國家的整個游戲市場,并使得逐漸沒落的北美游戲市場再度復蘇。主機所采用得處理器為CMOS 6502,一款已經淘汰的70年代中期產品。Battle City是其發(fā)售卡帶中的一款力作,設置了20個關卡, 可以雙人操縱畫面設置了若干種類的建筑物和阻擋物,以消滅所有敵人為通關條件,并有接寶物等增加游戲效果的設置, 畫面精美,音效杰出,在PC機的80386處理器仍未面世的當時,能在硬件上運行這樣的2D程序不得不令人驚嘆, 難怪常有人說游戲程序是最大限度發(fā)揮硬件水平的載體[4]。圖1 80年代中期的FC機器圖2 Battle City的界面論文以在校期間學習的J2ME平臺手機軟件開發(fā)為背景,結合自身比較感興趣的游戲開發(fā)方向,圍繞目前應用廣泛的J2ME的移動平臺下的游戲開發(fā)關鍵技術為主題,在對J2ME平臺下的手機游戲開發(fā)技術進行了全面研究的基礎上,重點深入分析研究了手機游戲通用框架,以及開發(fā)運行一款簡單的手機游戲,在J2ME平臺上完成設計實現(xiàn),并獲得了比較滿意的運行效果。介紹論文的主要內容創(chuàng)新點及結構安排。重點介紹了連接受限設備配置(CLDC)和移動信息設備簡表規(guī)范(MIDP), 最后介紹的是J2ME應用程序的開發(fā)流程。首先介紹了坦克大戰(zhàn)手機游戲的設計流程,初步了解整個程序的實現(xiàn)邏輯思維,接下來是對坦克大戰(zhàn)的坦克設計思路和子彈的設計思路做了詳細的介紹。主要包括程序所需要解決的問題,以及在坦克大戰(zhàn)的具體實現(xiàn)過程中我們所用到的繪圖技術和程序所需要的應用技術比如:內存使用的最佳化和混淆器的使用。第六章主要是對本次論文程序設計的測試與分析,通過程序代碼的分析討論以及該實現(xiàn)的功能,對比游戲所呈現(xiàn)的每個界面,從而得出結論。 本章小結本章是對坦克大戰(zhàn)手機游戲的設計現(xiàn)做的一份調查和計劃表,這樣對程序制作有了更加深入的了解,在此基礎上使程序的制作流程更加緊密和流暢。J2ME的全稱是Java 2 Platform Micro Edition,即Java 2平臺微型版。J2ME不是一個單獨的技術規(guī)范,而是一系列技術規(guī)范的總稱,J2ME適用于這些設備的同時也保留了JAVA的傳統(tǒng)特性,即在任何時間,任何地點的任何代碼具有可移植性,部署靈活性,安全的網絡傳輸性,以及代碼穩(wěn)定性,所以開發(fā)人員才可以編寫程序運行在其他廠商設備上,它主要以消費類產品和嵌入式設備為目標,包括各種電子產品,如移動電話、PDA、電視機頂盒和其他小型設備等。J2ME平臺為嵌入式消費類產品提供了一個通用的開發(fā)平臺,很大程度上的改變了長期以來嵌入式軟件開發(fā)的封閉性,降低了嵌入式軟件開發(fā)的門檻,同時極大的提高了嵌入式軟件開發(fā)的效率。為移動互聯(lián)引入了一種新的模式,允許移動智能設備可以從互聯(lián)網上下載各種應用程序,并在本地設備上創(chuàng)建各自的環(huán)境來運行這些應用程序。 J2ME平臺的體系結構由于J2ME是用于消費類電子產品提供應用開發(fā)服務的,而這些電子產品和設備在軟件和硬件特性上都存在巨大的差異,很難用一種規(guī)范將其統(tǒng)一起來。Java虛擬機(JVM):針對設備本地操作系統(tǒng)定制的Java虛擬機的實現(xiàn),支持特定的J2ME配置。配置(Configuration):對大量軟硬件特性不同的嵌入式設備,根據(jù)其外觀和性能特點進行分類,提取其中共性形成的一套規(guī)范稱之為配置。CLDC由兩部分組成:為應用程序提供的最小Java語言類庫和適合在資源受限設備上運行的Java虛擬機(KVM)。目前CLDC上應用最為廣泛的是移動信息設備簡表(Mobile Information Device Profile,MIDP)。本文應用開發(fā)就是基于J2ME平臺上的CLDC配置和MIDP簡表的[8]。比較常見的可選包有無線消息API(Wireless Messaging API,JSR120),移動多媒體API(Mobile Media API,JSR 135)和WEB服務API(Web Service API,JSR 172)等。(2)混淆(可選):利用混淆工具,將方法名、類名改成沒有實際意義的特定的字符及代號,增加閱讀的難度?;煜魍ǔ6际堑谌杰浖_發(fā)商提供的,許多都是開源的,可以免費使用。(3)預校驗:在完成編譯后,必須要對*.class文件進行預校驗,這和傳統(tǒng)的Java程序(Applet、Servlet)是不同的。而對于手機這樣的資源有限設備而言,在手機上進行大量的此類的校驗無疑是極為浪費資源的。(4)打包并編寫描述文件:*.class文件進行打包,打包后將獲得MIDP認可的可執(zhí)行jar文件。最后通過各種途徑將jar文件、jad描述文件傳輸?shù)揭苿釉O備上運行即可。對于如何將其部署到到手機上,根據(jù)手機的功能不同,通??梢赃x擇如下方法:使用數(shù)據(jù)線、使用紅外線、使用藍牙或者使用OTA技術下載安裝。第三章 坦克大戰(zhàn)的設計流程和設計思路 坦克大戰(zhàn)手機游戲的設計流程手機游戲的開發(fā)不同于一般應用程序,它受到手機本身的限制,開發(fā)人員使用現(xiàn)有的技術去實現(xiàn),采用合理的開發(fā)流程非常重要,下面來介紹下手機游戲的簡要開發(fā)流程:(1) 提出方案:創(chuàng)意的產生。(3) 概要設計:策劃具體的游戲方案。(5) 品質管理:跟蹤質量評估,發(fā)布最終穩(wěn)定產品。MIDlet及相關的支持類組成了MIDP應用程序的實際內容。在MIDP規(guī)格中定義了MIDlet的生命周期,以及可以存在的三種狀態(tài),包括Paused、Active以及Destroyed,每一個MIDlet在任何時刻只可能處于其中的一個狀態(tài)。運行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先從外部文件載入地圖文件,對背景的所有物體進行繪圖。用戶控制的坦克運行在主線程中,隨屏幕刷新的頻率而步進。用戶坦克自誕生之時起將擁有一發(fā)子彈,子彈雖然開在單獨的線程中,但運行結束后(比如撞到相關物體或敵方坦克時)并不結束子彈對象,只是將其線程終止。在屏幕重繪的主程序中,將在每次的循環(huán)中判斷若干事件。程序為需要完成獨立功能的需顯示的模塊設置了單獨的類。載入程序后首先啟動的是程序的信息畫面。在選擇開始后,將運行該類中的總流程控制。 坦克控制的設計思路在游戲中,坦克分玩家坦克和敵方坦克。在本程序的編寫中使用到了三種碰撞檢測,第一種是敵方坦克與用戶坦克的碰撞檢測,第二種是敵方坦克與地圖的碰撞檢測,第三種是敵方坦克和子彈的碰撞檢測。敵人可以自動行走,但是應當在以下適當?shù)那闆r下轉向:首先是是否超出界面的邊界,其次是是否與地圖障礙物發(fā)生了碰撞,再次是是否與用戶坦克發(fā)生了碰撞。如果一定發(fā)生轉向,試想,當敵方碰到玩家時,如果它立即轉向,將不會對玩家發(fā)射射向他的子彈,就不構成任何威脅,當然,也不能永遠不轉向。坦克之間由以上道理也不會發(fā)生重疊,但當某坦克正從上方生成而正巧有另一輛阻礙在其生成點處,這將導致不可避免的重合。本程序中并未使用過多復雜的人工智能算法,如有時間,將可能再此方面加以完善。對于子彈的邏輯設計參閱圖8。在其出現(xiàn)在屏幕上的運行周期中,每一步都需要循環(huán)檢測以下條件[12]是否與某坦克發(fā)生了碰撞,即擊中了這輛坦克。分為兩種情況,如果此子彈來自于敵方,將只檢測玩家坦克,因為敵方之間的子彈必須允許可以透明的穿過,以保證不會在敵人之間發(fā)生子彈的消減。其次,子彈之間需要檢測是否碰撞。玩家的子彈需要在每一步檢測所有敵人的子彈的運行狀態(tài)。子彈對不同障礙物將有不同的反映。坦克的程序邏輯圖如下所示:草叢與森林不發(fā)生碰撞石磚碰撞后發(fā)生爆炸,同時石磚消失背景子彈石頭碰撞后發(fā)生爆炸,子彈消失坦克碰撞后發(fā)生爆炸,同時子彈消失圖8 坦克的邏輯設計 本章小結本章通過對游戲的總體程序了解,知道了我們需要實現(xiàn)哪些功能,在以及坦克和子彈所需要具備的一些基本的邏輯,在此邏輯和程序設計流程之上我們才能對坦克大戰(zhàn)游戲的制作有一個整體的把握,下面一張介紹坦克大戰(zhàn)所需要的技術支持。一個實時運行的最終作品,每秒都會運行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應,若有絲毫的差別都將很容易導致程序在運行不久后可能出現(xiàn)嚴重錯誤,甚至死循環(huán)。,適用性強,可能需要采用外部文件引入的圖片貼圖,有關貼圖,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。涉及到藝術,文學,邏輯學,社會學,歷史等等一系列的元素。其中原版地圖,配音,及游戲引擎。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。另外,子彈在運行過程中也需要實時掃描是否碰撞到了相關障礙物或屏幕邊界。,以免重疊運行,造成許多物理上不可能的情況,缺乏真實感。記錄分數(shù)的存儲方式也需要有較好的解決方案。,其執(zhí)行效率較C++等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導致運行的不流暢。,根據(jù)FC版的坦克大戰(zhàn)去設計各種初始參數(shù),例如:坦克數(shù)量,坦克類型設置,游戲圖形匹配,游戲速度。,對添加的新元素也需要參考和分析,一般從畫面和游戲性方面著手。制作友好的用戶界面可以更加吸引玩家,這也需要參考大量的同類型游戲。 繪圖基礎 如同高級界面屏幕類都繼承Screen類一樣,在使用到低級用戶界面必須要繼承Canvas這個抽象類,Canvas是Displayable的直接子類,屬于J2ME中的低級API。 與高級API相比控制更加靈活,但這是以其復雜性、高成本為代價的,并犧牲了一定的可移植性。Canvas的核心是paint()這個方法, 這個方法做是負責繪制屏幕上的畫面,每當屏幕需要重新繪制時,就會產生重繪事件,系統(tǒng)就會自動調用paint(),并傳入一個Graphics對象。Canvas提供了鍵盤事件、指點桿事件(如果設備支持), 并定義了允許將鍵盤按鍵映射為游戲控制鍵的函數(shù)。應當將鍵代碼轉換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。 Graphics類Graphics類中提供了一套各不相同的關于圖形繪制的方法,一般來說,圖形繪制首先要調用相關的方法進行顏色設置、坐標變換和剪裁。程序只能在paint()函數(shù)中使用Graphics繪制,GameCanvas可調用getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時間請求傳輸?shù)角芭_。PNG(Portable Network Graphics)格式是MIDlet唯一支持的圖象格式。這些代碼包含在每一個單獨的png格式圖象中,然而如果將多個png圖象合并在一張幅面稍大一些的整圖中,多個chunks就可以得到精簡,圖片的大小可以得到控制。Game包中的TiledLayer和Sprite類都整合了這樣的功能。需要在paint()方法內所想要畫的圖形畫在一張預先準備好的背景,等所有繪圖操作都完成后再將背景的數(shù)據(jù)拷貝到實際的屏幕上。這樣的技術在繪制動畫時特別有用。 按鍵處理事件可以分為:低層事件(lowlevel event)與高層事件(highlevel event)。高層事件用來處理應用中的相關事件,如:命令事件、組件狀態(tài)變化事件。那么低層事件中用下面的兩種方法來處理應用的Key事件。 Key Pressed方法方法key Pressed是用來處理鍵被按下的事件,這個方法沒有與其對應的顯示的聽眾對象(Listener),這些聽眾對象有系統(tǒng)根據(jù)實際對象缺省提供,例如后面提到的Canvas對象就是默認的key事件聽眾對象,它缺省地實現(xiàn)了Key Listener接口[14]。} else { … }當按下手機的操作鍵盤上的按鍵時,就會觸發(fā)這key事件,系統(tǒng)并會自動調用keyPressed( )方法,并且系統(tǒng)將捕獲到的鍵碼傳遞給該方法,在上面的那段代碼中方法判斷了所按的按鍵值是否大于0,如果大于0輸出所按的手機鍵盤上的實際值,否則執(zhí)行其他的操作任務。 Key Released方法可以說方法key Released與上面提到的keyPressed方法是對應的。下面是一個樣例代碼:/ /輸出當前被釋放鍵的鍵碼public void keyReleased(int keyCode) { if (keyCode 0 ) {}}//輸出當前被釋放鍵的鍵碼(“keyReleased ” +( (char) keyCode) )。 內存使用的最佳化通常在MIDP應用程序的手機執(zhí)行環(huán)境中,所牽涉的內存有下列三種:一、應用程序存儲內存 二、RecordSt
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1