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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17、中會(huì)自帶這個(gè)軟件,它也可以在各版本windows和mac os x系統(tǒng)中運(yùn) 行。其下載安裝包中包含大量的幫助內(nèi)容和教程。如果你已經(jīng)精于圖像制作,那么很快 便可以熟練使用這個(gè)工具。如果你跟我差不多,在圖像制作方面缺乏經(jīng)驗(yàn)和才能,可能需 要花長(zhǎng)一點(diǎn)的時(shí)間來(lái)熟悉這個(gè)工具,但比起學(xué)習(xí)adobe川ustrator來(lái)說(shuō)依然要快得多。而 且,這個(gè)工具是免費(fèi)的。圖2.1顯示inkscape打開(kāi)一張蝙蝠圖片的效果。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)矢量圖像但是我們可以開(kāi)發(fā)能夠?qū)崿F(xiàn)上述目標(biāo)的擴(kuò)展。 在v3中,我的做法是使用inkscape來(lái)創(chuàng)作圖像,將它們編輯入核心內(nèi)容中,縮放至合適 的像素,保存成矢量版本(即.svg ),以.png (即便攜式網(wǎng)絡(luò)圖形)文件格式導(dǎo)出,如果必 要的話,使用gimp來(lái)制作透明背景。得到的位圖圖片(仍是.png格式)就是基礎(chǔ) andengine能夠識(shí)別的圖片文件。位圖圖像:gimpgimp (游戲邦注:即gnu圖像操作程序,網(wǎng)址為/ )是個(gè)使用者 遍布全球的跨平臺(tái)位圖涂色程序。多數(shù)linux系統(tǒng)自帶該工具,該工具也是免費(fèi)的。gimp 小組本身并不為win

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

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

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

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

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

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

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

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

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

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

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

30、選框,然后點(diǎn)擊"完成"。5、要將.jar文件包含在你的構(gòu)建路徑中,可以在eclipse project explorer窗口中右鍵點(diǎn) 擊.jar文件”然后選擇構(gòu)建路徑”添加至構(gòu)建路徑”。這樣” .jar文件也會(huì)直接顯 示在項(xiàng)目文件夾下。添加開(kāi)場(chǎng)畫(huà)面代碼我們需要修改自動(dòng)生成的startactivity.java文件,這樣才能在游戲組件加載時(shí)呈現(xiàn)開(kāi)場(chǎng)畫(huà) 面。最終,在所有內(nèi)容加載完畢之后,我們要讓畫(huà)面跳轉(zhuǎn)到游戲菜單上。但現(xiàn)在,我們要 實(shí)現(xiàn)的是保持開(kāi)場(chǎng)畫(huà)面一直可見(jiàn),直到用戶(hù)回到主界面。列表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中,開(kāi)場(chǎng)畫(huà)面只是普通的精靈。因而,我們?cè)谏鲜龃a中實(shí)現(xiàn)的只是對(duì)整款游戲的初始化。下面,讓我們解析代碼的各個(gè)部分:1、在輸入完成后,我們的類(lèi)就成為basegameactivity的子集。這種類(lèi)可以實(shí)現(xiàn)所有的一 般andengine初始化,為我們提供些許隨后將會(huì)用到的方法。2、隨后,我們?cè)O(shè)定了鏡頭視圖的尺寸。因?yàn)檫@是個(gè)開(kāi)場(chǎng)畫(huà)面,所以我們希望它能夠占有整個(gè)屏幕。開(kāi)場(chǎng)畫(huà)面圖片splashscreen.png的像素大小為480x320 z與默

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論