-【優(yōu)秀文檔資料】Android游戲設(shè)計教程游戲元素和工具(打印版)_第1頁
-【優(yōu)秀文檔資料】Android游戲設(shè)計教程游戲元素和工具(打印版)_第2頁
-【優(yōu)秀文檔資料】Android游戲設(shè)計教程游戲元素和工具(打印版)_第3頁
-【優(yōu)秀文檔資料】Android游戲設(shè)計教程游戲元素和工具(打印版)_第4頁
-【優(yōu)秀文檔資料】Android游戲設(shè)計教程游戲元素和工具(打印版)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、android游戲設(shè)計教程:游戲元素和工具來源:游戲邦 編輯:創(chuàng)造優(yōu)秀手機游戲不僅需要編寫某些相當(dāng)復(fù)雜的軟件,還需要創(chuàng)造其他的成分,比如圖像、 動畫、音效和音樂。幸運的是,這些成分都能夠使用某些工具制作而成,而且許多工具可以 免費使用。如果你能夠上網(wǎng)并且擁有開發(fā)游戲的設(shè)備,那么你就可以獲得所有所需的工具。virgins versus vampires(游戲邦注:以下簡稱v3 )這款游戲使用java編程語言編 寫而成,可在android設(shè)備上的dalvik虛擬機上運行。游戲使用的是名為andengine 的開源游戲引擎和box2d物理引擎,這兩者都已經(jīng)移植到android系統(tǒng)上 游戲及其所有 的

2、知識產(chǎn)權(quán)都是使用免費的軟件開發(fā)工具、圖像工具和音頻創(chuàng)造岀來的,所有這些工具都 將在本章節(jié)中進(jìn)行說明。需注意的是,我們正在編寫的游戲是標(biāo)準(zhǔn)android應(yīng)用。它們以dalvik/java編寫,可以 完全使用android api,它們擁有我們預(yù)想的android應(yīng)用所擁有的特征(游戲邦注:比 如暫停和重新開始)o我們的游戲?qū)B接至andengine庫,每個都會有供游戲使用的 android應(yīng)用程序包文件(游戲邦注:下文簡稱"apk")中的庫副本。軟件開發(fā)工具我們需要軟件開發(fā)工具來編寫軟件。幸運的是,有些絕妙的工具可以用來編寫手機游戲等程 序。更為幸運的是,許多此類工具可以免

3、費下載和使用,即便我們是出于商業(yè)目的而開發(fā)游 戲。android軟件開發(fā)工具包(游戲邦注:下文簡稱sdk)如果你對android sdk還不熟悉,先別看下面的內(nèi)容,花些時間來熟悉這個工具??梢韵葹g覽android sdk使用eclipse來塑造集成開發(fā)環(huán)境(游戲邦注:下文簡稱"ide")和帶有oracle的java開發(fā)工具包(游戲邦注:下文簡稱“jdk")的工具。android網(wǎng)站上的 安裝說明會指導(dǎo)你如何安裝android sdk。你在本書中看到的范例和圖像都是使用以下版 本的組件構(gòu)建而成的:android sdk ; android sdk平臺組件4.0 ;

4、android sdk工具, rl4 ;用于 eclipse 14.0.0 的 adt 插件;eclipse helios ; oracle 或 sun jdk (游戲邦注: 即 jdk6,也稱為 jdk 1.6) e你可能使用的是比上述工具更新的版本,無需為此擔(dān)心,范例代碼與工具版本并無很大的關(guān) 聯(lián)。如果確實出現(xiàn)了問題,訪問本書的合作網(wǎng)站 ,看看是否有針對較新版本發(fā)布 的更新內(nèi)容。在這本書編 寫之時,當(dāng)前android版本為4.0 ,也就是ice cream sandwicho 你還應(yīng)當(dāng)為自己計劃支持的每種設(shè)備制作android虛擬設(shè)気游戲邦注:下文簡稱"avd"), 可

5、以使用android sdk和附屬于sdk的avd管理器。針對這本書中展示的范例,我們制 作出很像htc的evo智能手機的avd ,相關(guān)數(shù)據(jù)如下:名稱:evo目標(biāo):android 2.2 ( api 等級 8 )皮膚:hvgasd 卡:128m加速計:有l(wèi)cd 密度:160 音頻輸出:有攝像頭:無(游戲邦注:該版本模擬器不支持,而且游戲不需要攝像頭) 電池:有。你還應(yīng)當(dāng)瀏覽下sdk教程,熟悉下整個過程,包括:創(chuàng)建android項目;編寫代碼;構(gòu)建 項目;于android模擬器上運行項目;使用eclipse debugger. logcat及sdk提供的 其他工具來解決項目中的漏洞。如果你計劃將

6、游戲發(fā)布到android market ± ”你還需要 確保它確實能夠在真正的手機上良好運行,所以你還應(yīng)當(dāng)擁有在android手機上加載和運 行.apk文件的經(jīng)驗。android開發(fā)者站點上的指導(dǎo)文件很全面。如果你需要其他的指導(dǎo)或更多范例,還有許多 優(yōu)秀的android編程書籍可供選擇,包括由lauren darcey和shane conder編寫的sam* s teach yourself an droid applicati on developme nt in 24 hours。andengine游戲引擎庫andengine是個游戲引擎庫,使得針對android設(shè)備編寫二維游戲

7、更加容易。nicolas gramlich費盡心思創(chuàng)造了 andengine ,并編寫了大量項目代碼。它是開源項目,所以你可 以前往項目網(wǎng)站加入andengine的開發(fā)計劃。當(dāng)然,我們也可以用java來自行編寫例行程序,使用android api來執(zhí)行游戲各組件。然 而,利用已經(jīng)編寫完成的游戲引擎有諸多好處:1、我們可以使用其他人的工作成果。當(dāng)然,如果我們真想這么做的話,也可以針對android編寫自己的ide,但是除非我們需要某些特別功能,否則這完全是毫無意義的舉動。2、以andengine中使用的此類開源代碼為基礎(chǔ),我們可以根據(jù)自己的需要來擴(kuò)展弓i擎功能。如果擴(kuò)展對其他人同樣有用,我們可以

8、將這些調(diào)整內(nèi)容放回開源引擎庫,助其他使用者 改善引擎。3、當(dāng)我們遇到問題時,我們可以向使用相同技術(shù)的開發(fā)者社區(qū)尋求幫助。有可能其他人已 經(jīng)解決了我們所面臨的問題,可以提供問題的解決方案。4、我們可以借用許多開發(fā)者的最優(yōu)化方案。游戲需要使用相當(dāng)數(shù)量的計算資源來繪制圖像、 計算客觀物理效果、演奏音效和掌握用戶輸入方式。如果使用游戲引擎,我們便可以使用已 經(jīng)得出的最優(yōu)化方案。其他針對android的游戲引擎目前正在開發(fā)中,本書主要闡述使用andengine的方法。 有關(guān)andengine的重要網(wǎng)站如下:1、andengine 源代召馬庫:http:/code.google.eom/p/andengi

9、ne/2、范例源代碼庫:http:/code.google.eom/p/andengineexamples/3、andengine 社區(qū)論壇:/forums/4、andengine 維基頁面:/andengine如果以上網(wǎng)站內(nèi)容無效,只需要用瀏覽器搜索"andengine android",應(yīng)當(dāng)就可以找到 當(dāng)前可用的內(nèi)容。andengine是個.jar文件,也就是java文檔。在本章節(jié)隨后的內(nèi)容中,當(dāng)我們開始進(jìn)行游 戲代碼編寫時,你就會知道如何配合使用這些文檔和你的android

10、sdk項目。該引擎采 用gnu lesser gpl license,你可以出于幾乎所有合理的目標(biāo)來使用源代碼(當(dāng)然要注意這里所涉及的授權(quán)問題)。andengine游戲概念我們之前提到的電影類比法是andengine的理想入門方法。你的游戲就像是電影,游戲引 擎包含了類似于電影制作所涉內(nèi)容的諸多概念。鏡頭游戲中的"鏡頭決定了游戲呈現(xiàn)給玩家的景象。這很像二維空間中的電影鏡頭。鏡頭可以 在場景中移動,改變所呈現(xiàn)的景象。鏡頭的移動既可以由玩家來控制,也可以由程序驅(qū)動。場景同電影一樣,游戲也是由一系列發(fā)生動作的場景構(gòu)成。在電影中,場景以固定的方式編輯拼 接起來。在游戲中,場景呈現(xiàn)順序由游戲過

11、程決定。游戲就像是匆忙編輯完成的電影。層次場景由多個圖像層次組成。各層次按一定順序疊加,很像早期用來制作卡通的動畫紙。層次 還可以用來創(chuàng)造2.5d效果,隨著鏡頭的移動,較近的層次移動得比較遠(yuǎn)層次快。精靈精靈指電影中表演者的視覺呈現(xiàn),無論這些表演者是人還是物品。精靈可能是動畫形式,也 可能不是,但它們往往在游戲過程中隨場景移動。精靈質(zhì)感往往從由許多精靈圖片組成的大 圖片加載而得。實體在andengine中,實體指所有屏幕上繪制的東西。精靈是實體,顯示在屏幕上的瓦片、集 合形狀和線條都是實體。所有的實體都擁有可以用調(diào)節(jié)器來改變的資產(chǎn),比如顏色、角度、調(diào)節(jié)器 調(diào)節(jié)器可以改變實體的資產(chǎn),在andeng

12、ine中它們有強大的力量。它們可以用在但可實體 上,它們造成的改變既可以馬上呈現(xiàn)也可以在規(guī)定的間隔時間內(nèi)逐漸呈現(xiàn)。在我們的游戲中, 我們頻繁使用調(diào)節(jié)器來創(chuàng)造精靈和其他實體的效果。紋理2d紋理,我們通??梢岳梦粓D圖像賦予物體紋理。紋理決定實體的視覺效果,許多 opengl圖像環(huán)境是圍繞紋理的使用構(gòu)建而成。紋理區(qū)域紋理定義完整的位圖圖像,紋理區(qū)域定義的是區(qū)域子集。隨后我們會頻繁提及2d圖像表現(xiàn) 最優(yōu)化,而使用紋理區(qū)域來繪制大型組合型位圖中的小區(qū)域是執(zhí)行這些最優(yōu)化方案的關(guān)鍵技 巧。引擎場景運行通過引擎來是實現(xiàn)。它負(fù)責(zé)讓動畫和調(diào)節(jié)器知道何時更新呈現(xiàn)的圖像,協(xié)調(diào)繪圖, 處理用戶輸入事件(游戲邦注:如觸

13、點、按鍵和傳感器事件),通常還管理游戲的逬程。引 擎很像是電影的制作人或?qū)а?,告訴所有人應(yīng)盡的職責(zé)。basegameactivity這個類擴(kuò)展了 android activity類,將是我們所設(shè)計游戲中所有場景的基礎(chǔ)。basegameactivity負(fù)責(zé)所有場景者e需要做的事情,設(shè)立游戲引擎,滿足android activity lifecycle要求并使傳感器可用。我們將在第3章中更深入地探討這個類。物理連接器andengine的基礎(chǔ)引擎中包含了基本物理能力,但box2d物理弓摩大幅擴(kuò)展了這些能九 我們通過物理連接器將andengine物體同box2d連接起來。如果你的游戲不使用box2d

14、物理引擎,那么你就無需有物理連接器。box2d物理引擎andengine包含了 box2d物理引擎的開源jbox2d端口。它可以用來逼真地模擬物理物 體的以下互動形式:剛體的物理效果;穩(wěn)定的物體堆積;重力效果;自定義單位;碰撞和接 觸;滑動摩擦;正方形、圓形和多邊形;多種連接類型;睡眠狀態(tài)。圖像工具但可電子游戲的開發(fā)都離不開大量的圖像元素。我們需要繪制背景,還需要制作某些精靈的 動畫。許多工具可以用來管理電腦圖像,專業(yè)化工具也相當(dāng)高端精良。如果你是個圖像設(shè) 計師,而且知道如何使用adobe川ustrator或其他專業(yè)工具”你可以無需閱讀這個部分的 內(nèi)容。相反,如果你跟我一樣,缺乏足夠的圖像制作

15、經(jīng)驗或才能,而且開發(fā)資金較少,那么可以看 看這個部分的內(nèi)容。本部分將主要描述我為v3這款游戲創(chuàng)作圖像的工具(游戲邦注:下文 所闡述的工具多數(shù)是免費的)。這些工具都很不錯,廣被專業(yè)人士所用。你可能會試圖直接從網(wǎng)絡(luò)上獲取游戲圖像。如果你這么做的話,就要確保你擁有使用這些圖 像的權(quán)利,你可以下載圖像并不等同于你有權(quán)利使用圖隊 如果你計劃靠該游戲盈利,那么 商業(yè)化使用其他人的圖像將帶來很棘手的問題。你或許也知道,繪制圖片的圖像程序分為兩大類別:可于用來繪制和控制圖像化物體的程序 (游戲邦注:也稱為"繪圖程序”),以及可以在畫布上創(chuàng)建顏色位圖的程序(游戲邦注: 也稱為"上色程序)。每

16、種類別都有自己的用途,兩種程序在v3的創(chuàng)作中都會用到。矢量圖像:inkscape 我發(fā)現(xiàn)用矢量圖像來繪畫很方便,主要有以下兩個原因:1、圖畫中的每個組件都被視為一個物體。在你創(chuàng)作最終圖畫時,物體可以被獨自移位、縮 放、旋轉(zhuǎn)和編輯。2、組件和整個圖畫可以在不影響分辨率的前提下輕易縮放。這種能力對精靈來說特別重要, 因為其最終形態(tài)通常很小??s放矢量圖像也可能遇到問題,所以你在繪制組件時應(yīng)當(dāng)盡可能 貼近其最終版本的大小,但在必要的時候可以靈活地縮放總是件很棒的事情。inkscape (游戲邦注:網(wǎng)址為/ )是個非常流行的矢量繪圖程序 包。許多l(xiāng)inux系統(tǒng)

17、中會自帶這個軟件,它也可以在各版本windows和mac os x系統(tǒng)中運 行。其下載安裝包中包含大量的幫助內(nèi)容和教程。如果你已經(jīng)精于圖像制作,那么很快 便可以熟練使用這個工具。如果你跟我差不多,在圖像制作方面缺乏經(jīng)驗和才能,可能需 要花長一點的時間來熟悉這個工具,但比起學(xué)習(xí)adobe川ustrator來說依然要快得多。而 且,這個工具是免費的。圖2.1顯示inkscape打開一張蝙蝠圖片的效果。2 伽 g omm e le* $5 esq a a <4 u 4 h f!e lsj/ 1kx m *圖 2.1 inkscape(from gamecareerguide)基礎(chǔ)andengi

18、ne游戲引擎難以呈現(xiàn)矢量圖像但是我們可以開發(fā)能夠?qū)崿F(xiàn)上述目標(biāo)的擴(kuò)展。 在v3中,我的做法是使用inkscape來創(chuàng)作圖像,將它們編輯入核心內(nèi)容中,縮放至合適 的像素,保存成矢量版本(即.svg ),以.png (即便攜式網(wǎng)絡(luò)圖形)文件格式導(dǎo)出,如果必 要的話,使用gimp來制作透明背景。得到的位圖圖片(仍是.png格式)就是基礎(chǔ) andengine能夠識別的圖片文件。位圖圖像:gimpgimp (游戲邦注:即gnu圖像操作程序,網(wǎng)址為/ )是個使用者 遍布全球的跨平臺位圖涂色程序。多數(shù)linux系統(tǒng)自帶該工具,該工具也是免費的。gimp 小組本身并不為win

19、dows和mac os x提供支持,但現(xiàn)在已經(jīng)出現(xiàn)了能夠在這兩個操作系統(tǒng)中運行的可下載版本。圖 2.2 gimp 位圖編輯器(from gamecareerguide)圖2.2顯示的是與圖2.1相同的蝙蝠圖片。這里的蝙蝠圖片以位圖的形式呈現(xiàn)(在inkscape 中將矢量繪圖保存為.png文件便可以得到)。正如你所看到的那樣,結(jié)果顯示圖片在此等 大小下更具顆粒感,帶有透明的背景,這正是我們制作精靈動畫手繪所需的東西。在我們呈 現(xiàn)精靈的時候,背景將通過透明區(qū)域展示岀來。動畫捕捉:animget生成動畫是個乏味且頗耗時間的工作。你需要為游戲中用到的每個動畫手繪、每個角度和每個姿態(tài)創(chuàng)作繪圖。制作3d動

20、畫是個捷徑,目前可使用的3d工具很多(游戲邦注:blender是個被設(shè)計師廣泛使用的開源工具,3ds max、poser和maya也是較為流行的商業(yè)化工具)。隨后,你可以根據(jù)自己需要的視角來播放2d動畫。你最終會得到avi或動畫gif文件,隨后你需 要將其分解成獨立的幀(這樣才能將它們重新整合進(jìn)精靈層中)。michael menne創(chuàng)造了 稱為"animget"的工具,可以為你完成分解工作。該工具可以在網(wǎng)絡(luò)上的許多地方下載 到(用google搜索"animget"即 可),它只能在windows系統(tǒng)下運行。animget背后的概念是很精巧的。該工具的原理

21、并不復(fù)雜,只是監(jiān)視你屏幕上的某個固定 區(qū)域。它先復(fù)制下最初像素,然后每10毫秒查看1次。如果該區(qū)域內(nèi)的像素發(fā)生改變,animget會復(fù)制下該區(qū)域的新狀態(tài),以新文件的形式保存。整個過程在內(nèi)存中完成,所需 時間并不長,但是你需要細(xì)心地選擇工具查看的區(qū)域”這樣它就只會關(guān)注你感興趣位置的 動畫。當(dāng)你告訴animget停止捕捉動畫時,之前復(fù)制的圖片會以獨立文件的形式保存。tilemap 制作:tiledtiles在電腦游戲中往往用來生成連續(xù)圖像列,比如地圖。在v3中,用來顯示入侵的吸血鬼和障礙物。tiled地圖編輯器(可在/處下載)是免費的, 使用qt跨平臺

22、庫編寫而成,可以在windows. linux和mac os x系統(tǒng)上運行。圖2.3 顯示tiled在tile地圖編輯期間的模樣。圖 2.3 tiled 地圖編輯器(from gamecareergudie)truetype字體制作和編輯:fontstructandroid支持使用truetype字體z我們在游戲中使用的就是這種字體?,F(xiàn)在有許多工具 可以用來制作和編輯truetype字體,當(dāng)然還可以使用許多其他的字體(游戲邦注:有些 字體是免費的,有些字體需要購買)。很顯然,fontshop制作的基于網(wǎng)絡(luò)的fontstruct 是個不錯的工具,你可以在開放社區(qū)中分享你已經(jīng)制作出的字體。字體可以

23、下載,每種字 體都有其相關(guān)授權(quán)。自行制作字體需要大量的工作。我不推薦這么做,除非你實在找不到適合的字體或者你喜歡制作字體。圖2.4為fontstructor網(wǎng)站窗口,你可以在這里制作和編輯字體。ah tikk*廠1 1mitricks圖 2.4 fontstruct 字體編輯器(from gamecareergudie)音頻工具v3游戲包含兩種類型的音頻資產(chǎn)”我們需要工具來制作和編輯這兩種音頻。音效指持續(xù)時間較短的聲音(游戲邦注:最多5秒,通常情況下少于3秒),隨游戲中某些事件的發(fā)生 而播放。音樂是持續(xù)時間較長的聲音,通常在場景呈現(xiàn)時作為背景播放。音效:audacity如果游戲沒有音效會怎么樣

24、呢?你想要為自己的游戲制作令人驚奇的音效,audacity (網(wǎng) 址為 )是個世界級的音效編輯工具,可免費在 windows. mac osx和linux系統(tǒng)上運行。audacity支持開發(fā)者可以輸入或捕捉音效文 件,編輯文件并將它們輸出成各種不同的音頻格式。android偏好aac、mp3. midi、 ogg vorbis和wav文件,這些格式的文件都可以用audacity來處理。圖2.5顯示 audacity正在編輯音效。圖 2.5 audacity 聲音編輯器(from gamecareergudie)背景音樂:musescore 你的游戲還需要背景音樂,格式可以是mp3、ogg或mi

25、di文件。當(dāng)然,你可以用許多種 方法來制作所需的音樂。比如,你或許有足夠的才能自行用樂器彈奏出音樂,然后用設(shè)備錄 下?;蛘撸憧梢栽诰W(wǎng)絡(luò)上尋找可免費用于商業(yè)化用途的音樂文件。我的音樂才能有限,所以我選擇使用開源音樂制作工具musescore (網(wǎng)址為 / )來為v3游戲制作音樂。這個軟件讓你可以使用電腦鍵盤 或配套的midi鍵盤來制作或編輯音樂。圖2.6顯示正在編輯音樂片段的musescore主界 面。圖 2.6 musescore(from gamecareerguide)完成音樂制作后,使用musescore可以將音樂保存為midi、mp3.

26、ogg或wav文件, 這些格式都能為android所識別。我們花了這么長的篇幅來闡述游戲概念和工具,現(xiàn)在是時候開始編寫代碼,進(jìn)入開發(fā)循環(huán)。我們采用的模型是,先在這里創(chuàng)建某android項目的基礎(chǔ),然后在以下章節(jié)中不斷添加新內(nèi)容,直至形成完整的游戲。我們先來看看該程序的開場畫面(如圖2.7所示)。屏幕在顯示這個畫面5秒鐘后轉(zhuǎn)變成空白屏幕。virgins versusvampires.co圖2.7 v3游戲中的啟動畫面(from gamecareerguide)創(chuàng)建游戲項目在本書中,我們使用的是android sdko要使用sdk來制作v3游戲,我們先要創(chuàng)建一個新的android項目。新建&quo

27、t; "android項目"對話框需要你輸入下列信息:1、項目名稱:v32、選擇”在工作區(qū)創(chuàng)建新項目3、選擇默認(rèn)的工作區(qū)存儲位置(游戲邦注:設(shè)計師亦可根據(jù)自己的需要變更存儲位置)4、在 build target 中選擇"android 1.6"5、應(yīng)用名稱:v36、安裝包名稱:com.pearson.iagp.v37、create activity : start activity8、min sdkversion:4通過這些步驟就可以為范例游戲創(chuàng)建新項目,項目包括startactivity,不過現(xiàn)在它的內(nèi)容只 是簡單的"hello, world

28、"。在本章節(jié)后面的版塊中,我們將在開始添加代碼時修改它的內(nèi) 容。添加andengine庫如果你還未從andengine網(wǎng)站下載andengine庫,先完成這個步驟。獲得andengine的.jar文件的最佳地方是谷歌上的andengineexamples庫,網(wǎng)址為 http:/code.google.eom/p/a ndengineexamples/。在源代碼標(biāo)簽下,你可以在庫文件夾中瀏覽查找.jar文件,也可以直接將整個樹形源代碼克 隆至本地計算機。推薦使用第2種方法,這樣你就已經(jīng)為訪問范例代碼做好準(zhǔn)備。andengine使用mercurial源代碼控制系統(tǒng)。如果你還未安裝merc

29、urial ,網(wǎng)站上的指導(dǎo) 會告訴你如何實現(xiàn)。你將.jar文件添力倒機器上之后,接下來就需要輸入源代碼:1、在eclipse package explorer中z擴(kuò)展v3項目。右鍵點擊v3項目z選擇新建文件 夾",在對話框中輸入相關(guān)信息,這樣便創(chuàng)建了庫文件夾。2、右鍵點擊庫文件夾,從彈出菜單中選擇輸入3、在下個對話框中選擇"常規(guī)"文件系統(tǒng)",使用瀏覽按鈕導(dǎo)向你已下載的andengine .jar文件的存放地址。點擊地址名稱。4、現(xiàn)在,輸入對話框顯示的應(yīng)當(dāng)是復(fù)選框無內(nèi)容的地址。右側(cè)窗口顯示地址中的文件,應(yīng) 該有andengine.jaro點擊文件名旁邊的復(fù)

30、選框,然后點擊"完成"。5、要將.jar文件包含在你的構(gòu)建路徑中,可以在eclipse project explorer窗口中右鍵點 擊.jar文件”然后選擇構(gòu)建路徑”添加至構(gòu)建路徑”。這樣” .jar文件也會直接顯 示在項目文件夾下。添加開場畫面代碼我們需要修改自動生成的startactivity.java文件,這樣才能在游戲組件加載時呈現(xiàn)開場畫 面。最終,在所有內(nèi)容加載完畢之后,我們要讓畫面跳轉(zhuǎn)到游戲菜單上。但現(xiàn)在,我們要 實現(xiàn)的是保持開場畫面一直可見,直到用戶回到主界面。列表2.1就是startactivity.java 修改后的版本。列表 2.1 startacti

31、vity.java4445464748495051525354555657585960616263646566676970717273747576j7879s0s182838485private textureregion msplashtextureregion;/ methods for/from superclass/interfaces/overridepublic engine onloadengine() this.mcamera = new camera(0j qj camera_hfidth) cmera_he:lght);_return new engine f new en

32、gineoptions ft rue., screenorientation. landscapenew ratioresolutionpolicy(camera_wtdth,cmerahetght),this.mcamera);overridepublic void onloadresources() this.mtexture = new texture(512j 512jtextureoptions bilinear_pre1ul tiplyalpha );this.mspi ashtextureregion = textureregionfactorycreatefromasset(t

33、his.mtexturethisj "gfx/splashsc2".png"» 0,q);this mengine gettexturelanager(). loadtexture(this.mtexture); overridepublic scene onloadscenef) this.mengine.registerupdatehandler(new fpslogger();final scene scene = new scene(l);/* center the splash on the camera. */final int center

34、x =(caf4era_nldth - this.msplashtextureregion.gethfidth() / 2; final int centery -(caferaheight -this.msplash textureregion.getheight() / 2;/* create the sprite and add it to the scene. */final sprite splash = new sprite(centerx, centeryj this.msplashtextureregion);scene.getlastchild().attachchild(s

35、plash); return scene;overridepublic void onloadcomplete() 這樣看上去代碼似乎很多z但是在andengine中,開場畫面只是普通的精靈。因而,我們在上述代碼中實現(xiàn)的只是對整款游戲的初始化。下面,讓我們解析代碼的各個部分:1、在輸入完成后,我們的類就成為basegameactivity的子集。這種類可以實現(xiàn)所有的一 般andengine初始化,為我們提供些許隨后將會用到的方法。2、隨后,我們設(shè)定了鏡頭視圖的尺寸。因為這是個開場畫面,所以我們希望它能夠占有整個屏幕。開場畫面圖片splashscreen.png的像素大小為480x320 z與默

36、認(rèn)android顯示尺寸相一致。3. 接下來,我們確定了鏡頭領(lǐng)域、我們將要使用的質(zhì)感和質(zhì)感區(qū)域。4、現(xiàn)在,我們從超類basegameactivity處重寫3個方法。每個方法對應(yīng)加載過程中的一 個點:(1) onloadengineo方法在為這種活動加載游戲弓摩時調(diào)用。我們在此處初始化鏡頭和 引擎。關(guān)于引擎的初始化,有兩點需要注意。首先,我們設(shè)定屏幕方向為橫向。多數(shù)手機 游戲使用的都是橫向屏幕。其次,我們請求稱為"ratioresolutionpolicy"的分辨率協(xié)議。 在這個協(xié)議下,引擎會通過縮放功能自行調(diào)整適應(yīng)不同的屏幕幾何尺寸,同時保持畫面縱 橫比不變。(2 ) onloadresources()方法在加載所需資源時調(diào)用。在上述代碼中,我們創(chuàng)建了我們將 要使用的紋理,并從開場動畫圖片splashscreen.png處加載這種紋理。這個文件應(yīng)當(dāng)位 于我們的項目工作區(qū)中名為"assets/gfx"的文件夾中,否則應(yīng)用就無法運行。現(xiàn)在還無 需擔(dān)心textureoptions設(shè)置,我們將在第5章的繪圖和精靈中進(jìn)行更細(xì)節(jié)化的闡述。最后, 我們將紋理加載入弓摩的texturemanager中。(3 ) onloadsceneo方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論