陳漫紅 薛 雪
(北京聯(lián)合大學(xué)師范學(xué)院 北京 100011)
基于Android新版“吃豆人”游戲的設(shè)計與實現(xiàn)
陳漫紅 薛 雪
(北京聯(lián)合大學(xué)師范學(xué)院 北京 100011)
新版“吃豆人”游戲是在原版“吃豆人”游戲的基礎(chǔ)上,增加一些現(xiàn)代元素和多種游戲規(guī)則模式,以達(dá)到適合現(xiàn)代人喜好的手機休閑游戲的目的。展示該游戲的總體功能架構(gòu),并在實現(xiàn)游戲地圖優(yōu)化、游戲人物角色設(shè)計以及游戲AI等的基礎(chǔ)上,完成網(wǎng)絡(luò)對戰(zhàn)、跨平臺等多項功能。
“吃豆人”游戲 碰撞檢測 游戲AI 游戲地圖
提到“吃豆人”游戲,讓人不禁會想起三十多年前,由日本游戲公司南夢宮(Namco)推出的一款有史以來最為成功的街機游戲——吃豆人。 “吃豆人”形象是日本著名游戲設(shè)計師巖谷徹(Toru Iwatani)所創(chuàng),曾在電子游戲領(lǐng)域叱咤三十多年?,F(xiàn)如今“吃豆人”形象已經(jīng)成為流行文化的一部分,其中的主要人物是一個圓形的黃色小人,簡約而不失創(chuàng)意,深受大眾喜愛,并且多次出現(xiàn)于食品包裝或卡通節(jié)目中,以至于之后的很多游戲都有其身影。原版“吃豆人”游戲是跨平臺的,無論在微軟、索尼及任天堂的主機上,或者是帶有游戲功能的電視機,人們都能玩到這款游戲。
但是隨著時代的發(fā)展,使用游戲機、電視機甚至是PC機玩游戲已成為歷史,原版“吃豆人”游戲,也已逐
漸淡出公眾視野,主要是因為沒跟上當(dāng)今手機APP時代的潮流。開發(fā)新版“吃豆人”的目的在于優(yōu)化經(jīng)典游戲,即在不破壞原版“吃豆人”游戲精髓的前提下,大大提高其耐玩性,使其成為一款具有故事背景、游戲模式多樣化,且經(jīng)過測試可以在Android系統(tǒng)上運行的,符合現(xiàn)代人喜好的手機休閑游戲,使曾風(fēng)靡一時的經(jīng)典“吃豆人”游戲以新的形式重現(xiàn)于人們的生活。
1.1 新版“吃豆人”游戲總體設(shè)計
新版“吃豆人”游戲分為系統(tǒng)基礎(chǔ)與游戲主體兩層結(jié)構(gòu),如圖1所示。
圖1 新版“吃豆人”游戲總體設(shè)計圖
其中:系統(tǒng)基礎(chǔ)層包含聲音控制、圖像處理、網(wǎng)絡(luò)傳輸,這三部分貫穿程序始終,起到根基作用;游戲主體模塊以用戶所見即所得為主,包含游戲選擇和游戲過程模塊,其中游戲選單模塊的主要任務(wù)是給游戲過程模塊傳值;游戲過程模塊是整個游戲中最關(guān)鍵的部分,其業(yè)務(wù)邏輯相對復(fù)雜,因此又將其細(xì)分為人機交互、游戲繪圖、人工智能和邏輯處理四部分。
1.2 系統(tǒng)基礎(chǔ)層設(shè)計
(1) 聲音控制模塊
它包含音樂和音效控制模塊。音樂控制模塊用MediaPlayer類進(jìn)行處理,該類可加載和播放較大的聲音文件,但是不宜同時播放多個文件。音效控制模塊選用SoundPool類進(jìn)行管理,它可存放多個聲音文件,每個文件可以設(shè)置各自的屬性,如優(yōu)先級、質(zhì)量、音量、均衡等。該類適合播放小文件,并且可以同時播放多個聲音文件。
(2) 圖像處理模塊
它是游戲開發(fā)中最為重要的部分,該模塊主要是對游戲中的圖片進(jìn)行獲取、縮放、旋轉(zhuǎn)、剪裁。在Android中的圖片可用Bitmap類進(jìn)行封裝,對圖片的編輯和獲取通過BitmapFactory類的靜態(tài)方法來實現(xiàn)。
(3) 網(wǎng)絡(luò)傳輸模塊
它采用C/S架構(gòu),Socket技術(shù)實現(xiàn)。該技術(shù)的優(yōu)點在于其網(wǎng)絡(luò)傳輸?shù)姆绞綖橐粏栆淮?,不易丟失數(shù)據(jù)。網(wǎng)絡(luò)傳輸模塊又分為進(jìn)入吃豆人主游戲前和進(jìn)入游戲主體部分后的網(wǎng)絡(luò)傳輸模塊。前者的作用是對游戲中人物角色、場景以及游戲模式的選擇進(jìn)行互傳,后者的作用是在游戲中收集雙方的戰(zhàn)況、地圖、怪物等實時數(shù)據(jù)并進(jìn)行互傳。
1.3 游戲主體設(shè)計
(1) 游戲選擇模塊
通過該模塊的多個View中的選項進(jìn)入游戲,通過這些選項,用戶將選擇到所需的游戲模式、人物角色及關(guān)卡。模塊中所有View及按鈕層次結(jié)構(gòu)如圖2所示。
(2) 游戲過程模塊
如圖1所示,它是實現(xiàn)吃豆人游戲的主體部分,除設(shè)置地圖、人物角色、敵人、道具等游戲元素外,還實現(xiàn)人機交互功能。所以又分為:
① 人機交互模塊
它實現(xiàn)用戶的控制,游戲采用觸屏方式,當(dāng)用戶輕觸屏幕時,用戶控制的人物將會改變移動方向。
② 游戲繪圖模塊
它負(fù)責(zé)將處理完成的圖片繪制到屏幕上,包括地圖、主角、怪物、計分板的繪制方法和實際繪制指令。其中的尺寸單位將根據(jù)手機機型不同進(jìn)行調(diào)整。執(zhí)行時會先獲取設(shè)備的屏幕分辨率,再根據(jù)分辨率計算單位尺寸,最后通過單位尺寸的倍數(shù)將所有內(nèi)容繪制在屏幕上。該模塊每20秒執(zhí)行一次,起到刷新屏幕繪制內(nèi)容的作用。
③ 人工智能模塊
它是賦予游戲中敵人行動的規(guī)則。為游戲設(shè)計了隨機移動AI、追擊AI和逃亡AI。其中每個敵人擁有一個初始的AI,但它們通過時間的推移或道具的拾取,將會不斷變化。
④ 邏輯處理模塊
它是游戲中至關(guān)重要的部分,決定著游戲中勝敗的條件、碰撞的發(fā)生、分?jǐn)?shù)、生命值,以及各種單位屬性的變化。該模塊定義在MainGame類中,其中又包含了得到道具的函數(shù)、與敵人發(fā)生碰撞的函數(shù)、游戲勝敗的函數(shù)等。
2.1 游戲情節(jié)的設(shè)計
在Android游戲開發(fā)中,游戲情節(jié)可源于個人創(chuàng)意,其他或是改編自其他游戲,如動漫或小說等作品。新版“吃豆人”游戲選取《東方project》作為游戲背景,《東方Project》是日本同人游戲社團(上海愛麗絲幻樂團)所制作的一系列動畫和漫畫,深受廣大動漫迷的喜愛,常被人拿來做二次設(shè)計。
新版“吃豆人”游戲開發(fā)將選取博麗靈夢、霧雨魔理沙和十六夜咲夜這三名代表性人物作為主角。她們將被困于奇幻的魔法迷宮之中,游戲玩家將控制她們一步步破解魔法封印,逃離魔法迷宮。
2.2 游戲人物設(shè)計
(1) 主角設(shè)計
游戲中共設(shè)定三個人物主角,以供玩家選擇。她們各自的形象、速度、生命值都不一樣。玩家可以根據(jù)自己的喜好和需要進(jìn)行選擇。
主角一:十六夜咲夜,生命值7、速度4。她是完全灑脫的從者,特點是速度最慢但生命值極高,適合操作不熟練的玩家。
主角二:博麗靈夢,生命值3、速度5。她是樂園的美妙巫女,各項能力均衡,是整個故事的核心人物,其特點是速度快但生命值少,適合新玩家選擇。
主角三:霧雨魔理沙,生命值1、速度6。她是普通的魔法使者,其特點是生命值最少但速度最快,適合高級玩家選擇。
(2) 怪物精靈(NPC)設(shè)計
NPC1:當(dāng)游戲主角吃到綠色魔法石頭后,所有怪物將會變?yōu)閯游锊适Ч粜?。其中,NPC1將會變身為可愛的小兔子;NPC2會變身為憨厚老實的小烏龜; NPC3會變身為無攻擊力的小貓。
2.3 游戲的音樂和音效設(shè)計
2.3.1 音 樂
新版“吃豆人”游戲的背景音樂都是原創(chuàng)的音樂,主要分為兩種:一種是在選擇界面時播放的,由簡單、舒緩的小調(diào)和弦構(gòu)成,讓它循環(huán)播放;另一種在開始游戲的時候,以明快的hip-hop節(jié)奏為主,烘托出歡快緊張的氣氛,同樣讓它循環(huán)播放。背景音樂將選用MediaPlayer類進(jìn)行播放。
2.3.2 音 效
特殊音效共有七種。首先在選擇界面時有兩種,一種是第一次選擇屏幕選項的時候,另一種是第二次確定屏幕選項的時候。其次在游戲過程中有五種:分別是在游戲開始的時候、在游戲主角吃豆子的時候、在游戲主角吃到道具的時候、在主角生命值減少或者游戲結(jié)束的時候以及在游戲勝利的時候。特殊音效將選用SoundPool類進(jìn)行播放。
2.4 游戲中的其他設(shè)計
2.4.1 道具設(shè)計
游戲中設(shè)計了不同類型道具,當(dāng)玩家與道具發(fā)生碰撞,游戲中特定的元素將會發(fā)生變化。
(1) 魔石設(shè)計
新版吃豆人游戲?qū)⒔?jīng)典吃豆人的“大力丸”替換為四種顏色的魔石,并且每種顏色代表的能力不同。其中:綠色魔石象征自然,獲得后NPC變?yōu)閯游镄螒B(tài)。紅色魔石象征生命,獲得后生命值+1;藍(lán)色魔石象征時間,獲得后NPC靜止;紫色魔石象征魔力,獲得后速度會加快。
(2) 機關(guān)設(shè)計
新版吃豆人游戲中增加了地圖機關(guān),在游戲的“智力關(guān)卡”中有所體現(xiàn)。主角在不破解機關(guān)之前,是無法吃到所有豆子的,設(shè)置了如下兩組機關(guān):
機關(guān)1:以鑰匙和門的形式展現(xiàn)。它們是一一對應(yīng)的,在“智力關(guān)卡”中,會有關(guān)在木門里的豆子和敵對精靈,游戲主角在沒有拿到鑰匙的情況下是無法進(jìn)去的。只有吃到鑰匙,地圖上的木門才會開啟。
機關(guān)2:以樹葉和樹木的形式展現(xiàn)。它們也是一一對應(yīng)的。在“智力關(guān)卡”中,會有被樹木擋住的豆子和敵對精靈。如果游戲主角沒有解鎖樹葉封印的樹木,就無法完成游戲。只有吃到樹葉,地圖上的樹才會消失。
2.4.2 圖片變化類的設(shè)計
為了提高代碼的復(fù)用性,在游戲設(shè)計過程中,將改變圖片尺寸和選擇圖片的方法封裝在MyBmpFactory類中。當(dāng)需要改變圖片尺寸時,可以通過新建一個MyBmpFactory的實例來實現(xiàn)所需要的效果。
3.1 游戲地圖的設(shè)計
游戲地圖的設(shè)計主要包括地圖的分層、地圖的繪制和地圖中游戲元素的擺放。
3.1.1 地圖的分層設(shè)計
地圖通過二維數(shù)組來實現(xiàn)對圖塊的匹配,從而畫出一張完整地圖。游戲中的地圖以圖塊拼接方式繪制,總共分四層。
第一層:游戲背景層,是游戲中不動的背景,又叫地面層。其余幾層將在此層上面繪制。這層不會與游戲中的精靈進(jìn)行碰撞,精靈將在它上面行走。
第二層:物理實體層,是游戲中的實體。在游戲中這一層是精靈將無法通過的特殊層,但是可與精靈進(jìn)行碰撞。用于擺放墻壁、門、樹等障礙物。
第三層:機關(guān)道具層。是游戲中的道具如豆子、鑰匙、寶石等。主角可以通過碰撞他們從而增加積分或觸發(fā)事件。
第四層:天空層,是可以遮蔽精靈的高層物體,如山洞、高層的樹葉等,它們不可與精靈碰撞但可以遮蔽精靈的顯示。
3.1.2 地圖的繪制
定義地圖的二維數(shù)組中的元素以int類型儲存,每個元素都在000至999范圍之內(nèi),每個數(shù)字匹配一張圖塊。當(dāng)游戲運行時,從地圖第一層到第四層逐一將匹配的圖片繪制到屏幕上,圖塊的位置和尺寸由數(shù)組元素的角標(biāo)和屏幕尺寸決定。
在每塊圖塊繪制前,將會執(zhí)行匹配圖片的一段代碼。該代碼通過判斷語句得出該元素是000至999中的哪一個數(shù)字,再根據(jù)判斷結(jié)果返回圖片對象。
3.1.3 關(guān)于地圖中元素的擺放
地圖中的門、樹等機關(guān)類實體將會添加至第二層中,而觸發(fā)機關(guān)的道具將添加至第三層中,玩家控制的人物碰撞機關(guān)道具時,相應(yīng)的機關(guān)和該位置的道具都會消失。
地圖中的道具將添加至第三層中,共分為四種:紅色生命寶石,人物獲得后生命值+2;藍(lán)色速度寶石,人物獲得后速度增加;紫色魔法石人物獲得后,所有怪物將在一定時間之內(nèi)定身;綠色魔法石后,獲得后所有怪物將變?yōu)閯游锊适Ч粜浴?/p>
將“吃豆人”經(jīng)典的豆子添加到第三層中,玩家控制的人物碰到豆子時,其 score屬性將會增加,且該位置的豆子消失,直到該層中沒有豆子時,游戲結(jié)束。
3.2 游戲AI設(shè)計
游戲AI是游戲設(shè)計中至關(guān)重要的部分,游戲的趣味性與難度很大程度上取決于游戲AI。原版“吃豆人”游戲擁有一套出色的游戲AI。新版“吃豆人”游戲在原版游戲敵人行動方式的基礎(chǔ)上,設(shè)計出全新的、具有趣味性的游戲AI。分別是隨機移動、追擊和逃亡AI。這三種游戲AI都是在直線移動AI基礎(chǔ)上實現(xiàn)的。
3.2.1 直線移動AI
設(shè)置此AI的敵人將會直線移動,直到撞到障礙物才會更改移動方向。當(dāng)游戲人物向上移動時,實時判斷游戲人物上方是否有障礙物,如果有障礙物則生成一個隨機數(shù),當(dāng)隨機數(shù)為0時,游戲人物將改為向下移動;當(dāng)隨機數(shù)為1時,游戲人物將改為向左移動;當(dāng)隨機數(shù)為2時,游戲人物將改為向右移動。
3.2.2 隨機移動AI
這是原版游戲中橙色幽靈Clyde的行動方式,但也并非是完全隨機的,試想如果是完全隨機,該幽靈將可能會原地打轉(zhuǎn),或是在直線移動中折返,這會使游戲難度大幅增加。因此在隨機移動AI設(shè)計中,首先判斷敵人當(dāng)前的移動方向,然后實時判斷其左右是否可以轉(zhuǎn)彎,當(dāng)?shù)竭_(dá)轉(zhuǎn)彎點時或到達(dá)之前生成一個隨機數(shù),根據(jù)該隨機數(shù)決定人物角色是否轉(zhuǎn)彎。如當(dāng)人物角色向上移動時,實時判斷人物左右是否可通過,若可通過,則生成一個隨機數(shù),如果人物左邊可通過并且隨機數(shù)為0,則人物改為向左移動,如果人物右邊可通過并且隨機數(shù)為1,則人物改為向右移動,其他情況則不改變移動方向,繼續(xù)向上移動。
3.2.3 追擊AI
追擊主角的AI設(shè)計借鑒了原版游戲中紅色幽靈Blinky的行動方式。設(shè)置此AI的怪物會努力讓自己跑到主角的位置,同時實時判斷自身與主角的相對位置,從而改變其移動的方向。因為游戲地圖具有管道式的特點,當(dāng)怪物縱向移動時,判斷自身與游戲主角橫縱距離的差值,若縱向距離大于橫向距離,怪物保持縱向移動,否則,怪物的行動方向改為橫向。怪物移動方向?qū)⑹冀K縮短與主角的相對距離。
3.2.4 逃亡AI
新版“吃豆人”游戲中主角逃離的AI設(shè)計,借鑒了原版游戲中主角吃到大力丸后,怪物的行動方式。設(shè)置此AI的怪物會努力讓自己遠(yuǎn)離主角的位置,因為游戲的地圖具有管道式的特點,使得當(dāng)敵人縱向移動時,判斷自身與人物角色橫縱距離的差值。如果縱向距離小于橫向距離,敵人保持縱向移動,否則,敵人的行動方向?qū)⒏臑闄M向。敵人的移動方向?qū)⑹冀K遠(yuǎn)離主角。因為這個逃亡AI每個NPC都涉及到,所以將它寫成一個逃亡函數(shù),NPC分別函數(shù)傳Monster變量即可。
3.3 碰撞檢測算法
新版“吃豆人”游戲?qū)儆?D像素風(fēng),游戲的地圖是以矩形圖塊為基本單位的,所以其碰撞檢測選用矩形碰撞檢測方法。
3.3.1 矩形碰撞檢測原理
在2D游戲中,矩形碰撞的前提是假設(shè)所有實體碰撞單位如障礙物、道具、人物等都以矩形的形式存在。矩行碰撞檢測原理如圖3所示。
圖3 矩形碰撞原理示意圖
判斷兩個物體橫向是否發(fā)生碰撞時,可比較p1和p2的x坐標(biāo)之間距離和w1/2+w2/2的大小。當(dāng)p1和p2的x坐標(biāo)之間距離大于w1/2+w2/2時,兩物體橫向不發(fā)生碰撞,否則發(fā)生碰撞。
判斷兩個物體縱向是否發(fā)生碰撞時,可比較p1和p2的y坐標(biāo)之間距離和h1/2+h2/2的大小,當(dāng)p1和p2的y坐標(biāo)之間距離大于y1/2+y2/2時,兩物體縱向不發(fā)生碰撞,否則發(fā)生碰撞。
判斷兩個物體是否發(fā)生碰撞,需要橫向和縱向兩部分同時為真的情況下,才能確定兩物體發(fā)生碰撞。
3.3.2 新版“吃豆人”游戲中的碰撞設(shè)計
游戲中主角與NPC的碰撞采用矩形碰撞檢測原理,但判斷方法與基本原理中所闡述的方法有所不同。因為新版“吃豆人”游戲設(shè)定所有游戲主角與NPC的大小全部相同,且只有游戲主角和敵人之間才會發(fā)生碰撞,因此可以選取游戲主角的坐標(biāo)和NPC坐標(biāo)直接的關(guān)系進(jìn)行碰撞判斷。
游戲中主角和NPC的坐標(biāo)都在其中心位置,通過判斷主角的坐標(biāo)是否到達(dá)NPC坐標(biāo)周邊的某一位置,來判斷主角和NPC是否發(fā)生碰撞。發(fā)生碰撞的判斷并非設(shè)定成人物邊緣發(fā)生重疊即為發(fā)生碰撞,而是游戲主角與NPC重疊到一定程度時,才判斷發(fā)生碰撞。因此判斷方式設(shè)定為:當(dāng)玩家控制的游戲主角坐標(biāo)在NPC坐標(biāo)上下左右各加游戲圖塊橫縱尺寸的一半時,碰撞生效。游戲主角與NPC的碰撞檢測流程如圖4所示。
圖4 游戲主角與NPC的碰撞檢測流程圖
在新版“吃豆人”游戲中,游戲主角和障礙物的碰撞判斷借助于地圖數(shù)組完成。將游戲主角的橫縱坐標(biāo)分別除以地圖圖塊的橫縱尺寸,可得到主角在數(shù)組中的位置,此時可判斷其上下左右是否有障礙物,即判斷地圖第二層中游戲主角位置的上下左右的元素是否為000,如果是000則不發(fā)生碰撞,否則發(fā)生碰撞。游戲主角與游戲道具的碰撞檢測流程如圖5所示。
圖5 主角與游戲道具的碰撞檢測流程圖
游戲網(wǎng)絡(luò)設(shè)計是新版“吃豆人”游戲的特色,同時也是難點。因為游戲含有關(guān)卡選擇和人物選擇的部分,所以網(wǎng)絡(luò)部分將設(shè)計為兩段:第一段將在進(jìn)入主游戲之前收集并傳遞游戲模式信息、關(guān)卡信息以及人物角色信息;第二段將在進(jìn)入主游戲之后收集和傳遞游戲過程中的信息,這兩段網(wǎng)絡(luò)設(shè)計均采用Socket技術(shù)進(jìn)行。游戲的互聯(lián)網(wǎng)對戰(zhàn)仍在開發(fā)中,現(xiàn)將局域網(wǎng)環(huán)境下對戰(zhàn)的設(shè)計說明如下。
4.1 進(jìn)入游戲前客戶端和服務(wù)器
在進(jìn)入網(wǎng)絡(luò)游戲前,服務(wù)器端將負(fù)責(zé)選擇關(guān)卡和游戲模式,并且從三名人物角色中選擇一名,而客戶端只需選擇人物角色即可。因此,服務(wù)器端要向客戶端發(fā)送關(guān)卡變量stage、游戲模式變量netmode,以及人物角色變量character的鍵值對,并且接收客戶端發(fā)來的人物角色character變量的鍵值對。而客戶端需要發(fā)送人物角色character變量的鍵值對,并且接收服務(wù)器端關(guān)卡變量stage、游戲模式變量netmode,以及人物角色變量character的鍵值對,雙方收集好信息后即可開始游戲。
4.2 進(jìn)入游戲后客戶端和服務(wù)器
在新版“吃豆人”游戲中,網(wǎng)絡(luò)對戰(zhàn)包括分屏和同屏兩種模式。在局域網(wǎng)下,二人作戰(zhàn),兩種模式的網(wǎng)絡(luò)延遲均在1 ms以內(nèi)。
(1) 分屏模式
對戰(zhàn)雙方的屏幕中的內(nèi)容互不影響,雙方在同一時間、同一個關(guān)卡中各自展開游戲,最后哪一方最先通關(guān)哪一方即為勝者。因此,在該模下服務(wù)器和客戶端均需要向?qū)Ψ桨l(fā)送人物的生命值、得分以及剩余豆子數(shù)并接收對方所傳遞的數(shù)據(jù)。
(2) 同屏模式
對戰(zhàn)雙方共享同一屏幕中的內(nèi)容,其中地圖、怪物、道具等游戲資源將完全共享,雙方在同一時間和場景中一同展開游戲,最后分?jǐn)?shù)最高者為勝者。因此,同屏模式下需要傳輸?shù)膬?nèi)容要多于分屏模式。該模式將會以服務(wù)器端為主,服務(wù)器將發(fā)送地圖、怪物以及人物角色數(shù)據(jù);客戶端接收這些數(shù)據(jù),并依據(jù)這些數(shù)據(jù)改變自身的地圖和怪物狀態(tài)。客戶端只發(fā)送人物角色數(shù)據(jù)至服務(wù)器,服務(wù)器將會通過接收到的人物角色數(shù)據(jù)對地圖、怪物等元素進(jìn)行反饋。
此外,新版“吃豆人”游戲開發(fā)出一套微機版,可適應(yīng)Win 7系統(tǒng),支持最高分辨率為1 920×1 080,在微機版游戲中的圖片大小將根據(jù)屏幕分辨率的大小同比例放大和縮小。
5.1 系統(tǒng)碰撞測試
5.1.1 地圖與精靈的碰撞測試
通過上述的碰撞檢測算法進(jìn)行測試后發(fā)現(xiàn),由于人物角色圖片尺寸和繪制尺寸的影響,使得人物顯示的位置有少許偏差。這將會出現(xiàn)人物雖然碰到墻壁后位置不動,但是有一半身子顯示在墻壁之上的情況。解決方法是調(diào)整人物角色兩個方向坐標(biāo)的偏移量,從而微調(diào)人物角色繪制的具體位置。
5.1.2 主角與精靈的碰撞測試
通過上述的碰撞檢測算法進(jìn)行測試后,發(fā)現(xiàn)人物角色與敵人每碰面一次,實際碰撞效果卻為兩次。該問題所影響的只有人物角色生命值的統(tǒng)計量,即每次碰撞后,生命值-2。解決方法是將實際顯示的生命值定義為人物角色的life屬性的值除以2,如人物角色的生命值為5,則life屬性的值應(yīng)該為10。
5.1.3 精靈與道具的碰撞測試
精靈與道具的碰撞和精靈與地圖的碰撞大同小異,因此,該項測試重點關(guān)注與道具碰撞后應(yīng)該觸發(fā)的事件是否能夠正常執(zhí)行。經(jīng)過測試發(fā)現(xiàn),每項道具均能達(dá)到預(yù)期效果。
5.2 真機運行測試
系統(tǒng)開發(fā)完成后,用于不同手機機型中進(jìn)行測試。測試結(jié)果發(fā)現(xiàn),部分圖片與模擬器測試時顯示不一致,經(jīng)過調(diào)試發(fā)現(xiàn),模擬器與真機存在尺寸單位不一致的問題,使得在分割圖片時產(chǎn)生了尺寸上的不匹配。解決方法是將剪裁圖片的代碼中,含有屬于絕對數(shù)值的均改為原圖的百分比來實現(xiàn)。
5.3 運行結(jié)果展示
玩家點擊手機上的應(yīng)用圖標(biāo)時,游戲的主界面如圖6所示。
圖6 游戲主界面
因為游戲有兩種模式,在這里選擇“單人游戲”,則進(jìn)入“單人游戲”界面,如圖7所示。
圖7 游戲選擇界面
如果選擇“闖關(guān)模式”就會直接從第一個關(guān)卡開始游戲。游戲開始運行如圖8所示。會有一張“START”的圖片由小變大充斥屏幕后消失,即意味著游戲開始。
圖8 開始游戲界面
若在圖7中選擇“選關(guān)模式”,就會出現(xiàn)關(guān)卡選擇界面。其中包括四個關(guān)卡,兩種風(fēng)格。第一種是“智力吃豆人”,游戲的地圖運行簡單,但是設(shè)有障礙物,如小門和樹木。這些障礙物阻擋了主角的吃豆任務(wù),需要鑰匙和樹葉解除障礙。玩家需要在不被敵對精靈逮住的情況下,解除障礙吃掉豆子?!?stage001-”和“-stage002-”就采用了這種方法。第二種是“傳統(tǒng)吃豆人”,游戲地圖比較復(fù)雜,主角以吃完所有的豆子為取得勝利的方法。其中可以借助不同的魔法石獲得不同的輔助效果?!?stage003-”和“-stage004-”采取的是這種方法,如圖9和圖10所示。
圖9 “-stage003-”關(guān)卡界面運行圖
圖10 “-stage004-”關(guān)卡界面運行圖
基于Android的新版“吃豆人”游戲借用經(jīng)典“吃豆人”的情懷和“遍歷豆子”的游戲勝利條件,但是游戲的情節(jié)設(shè)計、地圖設(shè)計、人物角色設(shè)計和游戲AI設(shè)計卻有了較大的創(chuàng)新,使得游戲更具有趣味性和耐玩性。其特色主要表現(xiàn)在:操作平臺多樣化,既可以在電腦上運行,也可以在手機上運行;游戲模式升級,實現(xiàn)了單人游戲和網(wǎng)絡(luò)對戰(zhàn)兩大模式;游戲邏輯趣味化,增加了人物角色選擇功能和地圖機關(guān)功能;游戲耐玩性的提升,為游戲量身定制了三個敵對精靈的AI方式;游戲界面更優(yōu)化,全新的游戲情節(jié)與游戲界面;游戲代入感的強化,原創(chuàng)背景音樂與經(jīng)典音效的完美結(jié)合。這些特點使得經(jīng)典得以重現(xiàn),既滿足曾玩過原版“吃豆人”游戲人們的懷舊情懷,同時又適合現(xiàn)代人的娛樂方式。此外基于Android的新版“吃豆人”游戲設(shè)計與開發(fā)對于2D“像素風(fēng)”遍歷整個地圖類Android 游戲開發(fā)具有一定的參考和借鑒意義。
[1] 楊科選. 人工智能尋路算法及其在游戲中的應(yīng)用研究[D]. 長沙:中南大學(xué),2009.
[2] 蔡維華,馬樂,王華,等. 基于IGES文件的艦船航行性能數(shù)值仿真模型[J]. 計算機應(yīng)用與軟件,2012,29(2):192-194,236.
[3] 胡偉. Android系統(tǒng)架構(gòu)及其驅(qū)動研究[J] . 廣州廣播電視大學(xué)學(xué)報, 2010, 10(4):96-101.
[4] 張亮亮, 夏正友. 基于遺傳算法求解游戲關(guān)卡問題[J].信息通信, 2009(6):31-35.
[5] 陳和平,張前哨. A*算法在游戲地圖尋徑中的應(yīng)用與實現(xiàn)[J].計算機應(yīng)用與軟件,2005, 22(12): 118-120.
[6] 劉昌平,范明鈺. Android手機的輕量級訪問控制[J].計算機應(yīng)用研究, 2010, 27(7): 2611-2613.
[7] 靳巖,姚尚朗. Google Android 開發(fā)入門與實戰(zhàn)[M].北京:人民郵電出版社,2009:221-333.
[8] 王向輝,張國印,沈潔. Android應(yīng)用程序開發(fā) [M].北京:清華大學(xué)出版社, 2011:256-290.
[9] 崔浩然. 基于Android平臺的手機游戲的設(shè)計與實現(xiàn)[D].西安:西安科技大學(xué),2011.
[10] 李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2013:30-158.
DESIGN AND IMPLEMENTATION OF A NEW VERSION OF “THE PAC-MAN” GAME BASED ON ANDROID
Chen Manhong Xue Xue
(Teachers’College,BeijingUnionUniversity,Beijng100011,China)
The new version of “the Pac-man” game is adding some modern elements and various rules of game modes on the basis of the original “the Pac-man” game to be more suitable for modern preferences of mobile phone in order to achieve the purpose of casual games. This article shows the function of the game’s overall architecture, and in the realization of the game map optimization, game character design and game AI, on the basis of complete net-play, cross-platform and so on many functions.
“the Pac-man” game Collision detection Game AI Game map
2016-07-20。陳漫紅,副教授,主研領(lǐng)域:數(shù)據(jù)庫及多媒體技術(shù)。薛雪,學(xué)士。
TP3
A
10.3969/j.issn.1000-386x.2017.06.021