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

正文內(nèi)容

基于j2me技術(shù)的手機游戲開發(fā)(編輯修改稿)

2025-07-19 00:25 本頁面
 

【文章內(nèi)容簡介】 、416MHz以及400MHz(工作頻率指的是1秒內(nèi)發(fā)生的同步脈沖數(shù),用來表示CPU的運算速度)[5]。從上面的數(shù)據(jù)可以看出,雖然在移動電話的不斷更新中,其處理能力也得到了加強,但是相對于臺式機芯片的處理能力還是有很大差距。所以從移動電話的硬件來看,其處理能力還遠遠不能夠滿足處理復(fù)雜的游戲應(yīng)用程序的要求。2. 受限的存儲器移動電話等使用嵌入式技術(shù)的設(shè)備的存儲能力一般有限,存儲區(qū)分為ROM和RAM,其中ROM主要是裝載手機的操作系統(tǒng)和常用的軟件,對程序設(shè)計來說沒有多大意義。通常是在RAM中運行實際的操作系統(tǒng)和軟件,對于運行J2ME平臺的手機,即使手機可用的RAM可能有幾個MB,但是提供給J2ME運行的可能就幾十至上百KB而已。,大部分僅支持JAR不超過64K的程序;,所支持的應(yīng)用程序一般也不超過256KB。正因為如此,對于J2ME程序的運行,需要特別注意手機的存儲空間問題。3. 數(shù)據(jù)傳輸速度基于J2ME的手機游戲設(shè)計與開發(fā)對于單機版的游戲來說基本不會存在這個問題,只要從服務(wù)商那里下載到手機里后運行即可。可對于網(wǎng)絡(luò)游戲來說,網(wǎng)絡(luò)上的數(shù)據(jù)傳輸速度是游戲成功的關(guān)鍵之一?,F(xiàn)在支持J2ME的手機,除了3G以外,有CDMA和GSM兩種規(guī)格。在中國目前的運營商中,CDMA才有了接近于3G的CDMA1X技術(shù),[6],而GSM手機采用GPRS技術(shù),[6],一般來說只要支持上述兩種技術(shù)的手機,都可以使用Internet。而傳輸帶寬在一般情況下,CDMA1X可以達到120Kbps左右,而GPRS只有40Kbps左右。這給通過網(wǎng)絡(luò)進行傳輸數(shù)據(jù)的網(wǎng)絡(luò)游戲的開發(fā)帶來了很大的制約。4. 移動電話的可視屏幕尺寸有限移動電話的可視屏幕都不是很大。除此之外,對于開發(fā)者來說,還有一點比較頭痛的事情就是沒有一個“標(biāo)準(zhǔn)”的可視屏幕的大小,全都依賴于所開發(fā)游戲的目標(biāo)移動電話的可視屏幕大小。型號的不同,往往意味著可視屏幕大小的不同,也意味著處理的增加。對于特殊型號的移動電話所定制的圖像和代碼在適應(yīng)性和可移植性上就顯得很差了。5. 顏色對于手機屏幕的色彩來說,同一個色彩在不同的手機上表現(xiàn)也不相同,這個依賴于硬件的顏色表。為了達到最大的視覺沖擊力和表現(xiàn)效果,應(yīng)盡量使用基本的顏色而不使用各種漸進色。由于移動電話的內(nèi)存比較有限,所以在表現(xiàn)顏色方面必須小心,才能用較少的內(nèi)存來完成工作,資源文件的大小也要小心控制。6. 音效問題移動電話的音效在逐步的提高,但其表現(xiàn)力還是不能令人滿意。在游戲中音效的表現(xiàn)及控制也是要注意的。尤其是對于當(dāng)前的J2ME平臺上的游戲應(yīng)用來說,聲音的表現(xiàn)力是一個軟肋。在控制方面的代碼編寫上,也時常令人頭疼。7. 移植性問題對于不同的移動電話所提供的能力,移植問題也是要多加考慮的。對不同標(biāo)準(zhǔn)、不同協(xié)議的支持,可視屏幕的大小不同,諸如此類的問題都是要在開發(fā)中注意的。8. 按鍵問題對于移動電話的使用者來說,同時按鍵和連續(xù)按鍵都是習(xí)慣的操作手法。當(dāng)前的移動電話對于同時按鍵是不提供支持的,對連續(xù)按鍵的支持也要游戲的開發(fā)者特殊處理。 設(shè)計目標(biāo)基于移動電話的硬件條件(尤其是其處理能力和物理內(nèi)存)以及J2ME平臺的楓際神話設(shè)計與實現(xiàn)特性,需要實現(xiàn)以下目標(biāo):1. 可用性2. 模塊化設(shè)計3. 可移植性4. 易測試性5. 性能良好 游戲介紹此游戲為ARPG動作角色扮演類游戲。游戲?qū)崿F(xiàn)的主要功能:主人翁可以用手上的武器去砍殺敵人,可以和NPC對話了解任務(wù),怪物死亡得經(jīng)驗并且有一定幾率掉落物品,有很簡單的故事情節(jié)。由于這里展示的是游戲的制作技術(shù),游戲的策劃并不是重點,本游戲內(nèi)容不是很豐富,但是ARPG游戲的簡單基本元素都包含有了。 游戲背景中華文化源遠流長。在歷史長河中,梅州有過這樣的一段文化史:廣東古八賢之一程旼有個門徒叫韓楓,此人擅長于劍術(shù)、開鎖、五行之術(shù)(金木水火土)及御風(fēng)術(shù),為了救一個叫玲瓏的姑娘,他運用自己所學(xué)的武功,沖破了一道道難關(guān),最后救出了玲瓏,而他的傳奇也一直成為佳話。玲瓏:一個令韓楓相中,且相貌出眾、擅于歌舞、琴棋書畫樣樣精通的女子。姜欲,據(jù)說是一個蚩尤的后代,他千里迢迢從黃河邊趕到了嶺南,并在一次意外知道了玲瓏此人,便把玲瓏抓了去,并在藏玲瓏的去處的地方埋伏了許多刀斧手,其中各個都是身懷絕技的高手。 游戲的主要模塊本游戲主要包括以下幾個模塊:1. 地圖模塊地圖是供主角、NPC、敵人活動的場所,是游戲正常進行必不可少的要素之一。地圖模塊可以細分為地圖的生成和繪制。地圖繪制將對應(yīng)著地圖資源的圖片,根據(jù)主角在地圖中的位置將地圖的一部分繪制在屏幕上,供主角、NPC 、敵人在上面活動。2. 主角模塊主角模塊主要包含主角的各種動作例如行走、跑步、攻擊等各種不同的動作,還包含有主角對各種動作的響應(yīng)機制如攻擊范圍、碰撞范圍等。3. 敵人模塊敵人模塊主要包含敵人所處的方位,攻擊方式以及主角跟蹤等不同的元素,使敵人實現(xiàn)智能化跟蹤并攻擊主角。4. 系統(tǒng)菜單模塊系統(tǒng)菜單模塊主要包括查看主角狀態(tài)、裝備等信息,關(guān)閉音樂和退出游戲等功能。5. 鍵控模塊鍵控模塊主要包括對手機按鍵事件進行處理,控制主角進行移動和下一步需要進行的動作。6. 游戲主繪制模塊游戲主繪制模塊主要控制界面的切換和對事件進行相應(yīng)的處理,調(diào)整游戲的狀態(tài)并將其顯示出來。 游戲的總體框架各模塊之間的關(guān)系如31圖所示:圖31 模塊結(jié)構(gòu)框架 主角模塊、敵人模塊、地圖模塊分別處理各種的主角信息、敵人信息、地圖信息,將處理好的內(nèi)容交給游戲主繪制模塊,主繪制模塊根據(jù)當(dāng)前的狀態(tài)進行選擇性地選擇需要的數(shù)據(jù)進行顯示,當(dāng)游戲有變化時,主繪制模塊會根據(jù)游戲的變化來進行相應(yīng)的狀態(tài)處理,將狀態(tài)調(diào)整為當(dāng)前玩家通過按鍵所選擇的,玩家想要看到的畫面,各個模塊之間相互配合,完成對整個游戲的繪制和顯示。游戲的基本流程如圖32所示圖32 基本流程圖 游戲的基本行為與電影的行為相似。首先回想一下電影,電影由一幅幅連續(xù)記錄的畫面組成,“一幀”代表了一副畫面。在電影播放時,一幀幀畫面按照一定的速度放映到屏幕上,就形成了流動的畫面。如同電影一樣,游戲也是視覺藝術(shù),同樣要表現(xiàn)運動的畫面。不同的是,游戲同時也是交互藝術(shù),游戲中的世界要根據(jù)玩家的不同選擇給予不同的響應(yīng)。因此,游戲在初始化后,大體上就是一個一邊處理用戶輸入,一邊按照一定的規(guī)則繪制畫面的過程。同電影一樣,游戲也要保持一定的渲染速度,使游戲的畫面運動起來。第3章主要介紹了設(shè)計中需要注意的問題并確定設(shè)計目標(biāo),以及本游戲的劇情背景,游戲的模塊和各個模塊之間的關(guān)系,最后簡要說明本游戲的基本流程。第4章 楓際神話游戲程序設(shè)計與具體實現(xiàn) 下面將詳細介紹楓際神話游戲程序設(shè)計和實現(xiàn)中所需要解決的技術(shù)問題,對MIDP技術(shù)進行深入詳細地研究,然后整體介紹整個游戲的架構(gòu),對關(guān)鍵算法—卡馬克算法進行深入的研究,最后對游戲的主角模塊、敵人模塊、鍵控模塊、主繪制模塊等模塊的實現(xiàn)進行系統(tǒng)地講解。 1. 因為手機受限制的內(nèi)存,手機游戲程序是對程序設(shè)計思想要求很嚴密,往往“內(nèi)存泄露”是每個手機程序員的噩夢。因此,其邏輯設(shè)計應(yīng)當(dāng)相當(dāng)嚴謹,資源以及對象的管理與釋放要考慮到非常完善,將所有可能發(fā)生的事件及意外情況考慮在設(shè)計中。2. 游戲中為了美觀,適用性強,可能需要采用外部文件引入的圖片貼圖,使得解決靜態(tài)或動態(tài)、畫面背景、等都有較好的解決方案,使得游戲更加有樂趣。3. 游戲中地圖的更新不可能用重繪整張地圖來解決。那樣會因為消耗太多內(nèi)存而使程序掛掉,我門將使用卡馬克算法來更新地圖。4. Java是基于虛擬機的半解釋型編譯系統(tǒng),其執(zhí)行效率較C++等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導(dǎo)致運行的不流暢。除開發(fā)過程中對結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器(Obfuscator)進行程序打包后的優(yōu)化。以上相關(guān)技術(shù)細節(jié)和整體流程將分別在以下小節(jié)闡述。 MIDlet suite是MIDP應(yīng)用程序的最小單位,JAM負責(zé)將手機內(nèi)的MIDlet suite以圖形化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的MIDlet suite,一旦選取了某個MIDlet suite,操作系統(tǒng)就會激活KVM執(zhí)行里面的MIDlet。MIDlet及相關(guān)的支持類組成了MIDP應(yīng)用程序的實際內(nèi)容。在MIDP規(guī)范中定義了MIDlet的生命周期,以及可以存在的三種狀態(tài),包括Paused、Active以及Destroyed,每一個MIDlet在任何時刻只可能處于其中的一個狀態(tài)。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖41所示:消減狀態(tài)(Destroyed)停止?fàn)顟B(tài)(Paused)運行狀態(tài)(Active)StartApp()DestroyApp()呼叫MIDlet的構(gòu)造函數(shù)DestroyApp()PauseApp()圖41 MIDlet的流程 MIDlet有三個狀態(tài),分別是pause、active和destroyed。在啟動一個MIDlet的時候,應(yīng)用管理軟件會首先創(chuàng)建一個MIDlet實例并使得他處于pause狀態(tài),當(dāng)startApp()方法被調(diào)用的時候MIDlet進入active狀態(tài),也就是所說的運行狀態(tài)。在active狀態(tài)調(diào)用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet進入destroyed或者pause狀態(tài)。值得一提的是destroyApp(boolean unconditional)方法,事實上,當(dāng)destroyApp()方法被調(diào)用的時候,AMS通知MIDlet進入destroyed狀態(tài)。在destroyed狀態(tài)的MIDlet必須釋放了所有的資源,并且保存了數(shù)據(jù)。如果unconditional為false的時候,MIDlet可以在接到通知后拋出MIDletStateChangeException而保持在當(dāng)前狀態(tài),如果設(shè)置為true的話,則必須立即進入destroyed狀態(tài)。本程序采用面向?qū)ο蟮脑O(shè)計模式,對游戲中的所有物體賦予對象的概念和屬性。運行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先從外部文件載入地圖文件,對背景的所有物體進行繪圖。游戲開始后先繪制地圖,并將各個對象實例化。在主程序運行的線程中,游戲中所有的對象都應(yīng)該運行在同一個線程下。在屏幕重繪的主程序中,將在每次的循環(huán)中判斷若干事件,以便程序進入相關(guān)的分支執(zhí)行相關(guān)的反應(yīng)代碼。如:主角的HP,敵人的HP,物品的掉落,與NPC對話,任務(wù)等屏幕上相關(guān)信息的繪制等。程序為需要完成獨立功能的模塊設(shè)置了單獨的類。GMIDlet類繼承自Midlet,G類繼承自Canvas。載入程序后將調(diào)用G類,然后根據(jù)玩家的選擇調(diào)用G中的GameState變量來切換游戲狀態(tài)的來達到各種功能。游戲的架構(gòu)如下圖42所示:GMIDletMIDlet子類Constance接口 GameCanvasCanvas子類keyContral自定義鍵值Game_Hero主角類Game_Enemy敵人類Game_Action動畫類 圖42 游戲架構(gòu)圖邏輯主要在GameCanvas 類中實現(xiàn)。GameCanvas類實現(xiàn)了Runnable接口和Constance接口,作為游戲主線程的執(zhí)行類。此類派生自Canvas,此類還處理資源的載入,屏幕的繪制等工作。 低級用戶界面為什么要使用低級用戶界面?MIDP UI包括了“高級API”和“低級API”[7]?!案呒堿PI”強調(diào)可移植性,它使用高度抽象的方法從而將開發(fā)者的實現(xiàn)細節(jié)都掩蓋了。所以應(yīng)用程序無法控制如何在屏幕上顯示相應(yīng)內(nèi)容以及屏幕上的顯示位置,它只能訪問高級事件。“低級 API”卻為應(yīng)用程序提供了這方面充分的控制權(quán),并且應(yīng)用程序還可以訪問低級事件。如果使用設(shè)備特定的一些性能,那么低級用戶API開發(fā)的應(yīng)用程序就無法實現(xiàn)跨設(shè)備移植。低級API包括兩個部分一個是Canvas(畫布)類,在Canvas類上,可以進行圖形操作,同時它也是低級事件的接受者;另一個是Graphics類,它可以用來提供文本和圖像,并且能夠?qū)崿F(xiàn)繪制和填充圖形。所以本程序主要使用的是低級API低級用戶界面。 Canvas類是實現(xiàn)低級API的Displayable類的子類,它提供了繪制方法以及應(yīng)用程序所忽略的一些低級事件處理方法。由于Canvas類的paint方法被聲明為抽象方法,所以Canvas類也是一個抽象類。應(yīng)用程序如果要使用,必須擴展Canvas類。在建立Canvas類的子類時,要求程序提供paint方法的實現(xiàn)。低級事件處理方法未聲明為抽象方法,其默認實現(xiàn)為空,也就是說可以什么都不作。因而,應(yīng)用程序無需提供每個事件處理的方法,應(yīng)用程序只需要重載其感興趣的事件處理方法即可。為了能有程序開發(fā)人員控制接口的外觀和行為,需要使用大量的初級用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是Canvas抽象類進行繪圖。從程序開發(fā)的觀點看,Canvas類可與高級Screen類交互,程序可在需要時在Canvas中摻入高級類的組件。Canvas提供了鍵盤事件、指點桿事件(如果設(shè)備支持),并定義了允許將鍵盤按鍵映射為游戲控制鍵的函數(shù)。鍵盤事件由鍵代碼指定,但這樣控制游戲會導(dǎo)致缺乏通用性,并不是每個設(shè)備的鍵盤布局都適合游戲的操作。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。本程序中K類就是將鍵代碼轉(zhuǎn)換位自己定義的游戲鍵來使用。Graphics可以提供簡單的二位的二維幾何繪圖功能。它具有24位深度色彩的繪制能力,以三原色分別各占一個字節(jié)表示其顏色。程序只能在paint()函數(shù)中使用Graphics繪制,GameCanvas可調(diào)用getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時間請求傳輸?shù)角芭_。其對象會被傳給Canvas的paint()函數(shù),以便最終顯示。,進行游戲繪圖一般需要手動編程使用雙緩沖。需要在paint()方法內(nèi)將所想要畫的圖形畫
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1