亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        新版“吃豆人”游戲的AI設(shè)計與實現(xiàn)

        2016-02-23 03:40:48陳漫紅
        關(guān)鍵詞:游戲設(shè)計

        陳漫紅,薛 雪

        (北京聯(lián)合大學(xué) 師范學(xué)院, 北京 100011)

        新版“吃豆人”游戲的AI設(shè)計與實現(xiàn)

        陳漫紅,薛 雪

        (北京聯(lián)合大學(xué) 師范學(xué)院, 北京 100011)

        新版“吃豆人”游戲在原版“吃豆人”游戲的基礎(chǔ)上,增加了一些現(xiàn)代元素和多種游戲規(guī)則模式,以達到成為現(xiàn)代人喜好的手機休閑游戲的目的。展示了該游戲的總體功能架構(gòu),其中重點介紹了游戲人物的碰撞檢測和游戲人工智能的設(shè)計,所展示的新版“吃豆人”游戲開發(fā)的整個過程和提出的開發(fā)框架對Android游戲開發(fā)具有一定的參考意義。

        “吃豆人”游戲;碰撞檢測;游戲人工智能

        0 引言

        提到“吃豆人”游戲,大家不禁會想起三十多年前由日本游戲公司南夢宮(Namco)推出的一款有史以來最為成功的街機游戲——吃豆人。這個“吃豆人”形象是日本著名游戲設(shè)計師巖谷徹(ToruIwatani)所創(chuàng),曾在電子游戲領(lǐng)域叱咤三十多年。現(xiàn)如今“吃豆人”已經(jīng)成為流行文化的一部分,其主要人物是一個圓形的黃色小人,簡約而不失創(chuàng)意,深受大眾喜愛,并且多次出現(xiàn)于各種包裝或卡通節(jié)目中,甚至之后的很多游戲都有其身影。原版的“吃豆人”游戲是跨平臺的,無論在微軟、索尼還是任天堂的主機以及帶有游戲功能的電視機上,人們都能玩到“吃豆人”游戲。

        但隨著時代的發(fā)展,使用游戲機、電視機甚至是PC玩游戲已成為歷史,原版“吃豆人”游戲也已逐漸淡出公眾視野,主要是因為沒有跟上當今手機App時代的潮流。新版吃豆人游戲開發(fā)目的在于優(yōu)化經(jīng)典游戲,即在不破壞原版“吃豆人”游戲精髓的前提下,大大提高其耐玩性,使其成為具有故事背景、游戲模式多樣化,經(jīng)過測試可以在Android系統(tǒng)上運行的且符合現(xiàn)代人喜好的手機休閑游戲,使曾風(fēng)靡一時的經(jīng)典“吃豆人”游戲以新的形式重現(xiàn)于人們的生活。同時對開發(fā)2D“像素風(fēng)”遍歷整個地圖類游戲及游戲的地圖具有管道特點的游戲AI設(shè)計與實現(xiàn)起到一定的借鑒作用。

        1 基于Android新版“吃豆人”游戲功能設(shè)計

        1.1 新版“吃豆人”游戲總體設(shè)計[1]

        新版“吃豆人”游戲分為系統(tǒng)基礎(chǔ)與游戲主體兩層結(jié)構(gòu),如圖1所示。

        圖1 新版“吃豆人”游戲總體設(shè)計圖

        其中,系統(tǒng)基礎(chǔ)層包含聲音控制、圖像處理、網(wǎng)絡(luò)傳輸,這三個模塊貫穿程序始終,起到根基作用;游戲主體模塊以用戶所見即所得為主,包含游戲選擇模塊和游戲過程模塊這兩大部分,其中游戲選單模塊業(yè)務(wù)邏輯是給游戲過程模塊傳值;游戲過程模塊是整個游戲中最為關(guān)鍵的部分,業(yè)務(wù)邏輯相對復(fù)雜,因此又將其細分為人機交互、游戲繪圖、人工智能、邏輯處理四部分。

        1.2 游戲過程模塊設(shè)計

        游戲過程模塊是實現(xiàn)新版“吃豆人”游戲的主要部分,展示出地圖、人物角色、敵人、道具等游戲內(nèi)容,并實現(xiàn)人機交互,使用戶能夠真正體驗新版“吃豆人”游戲的樂趣。所以又包括:

        (1)人機交互:實現(xiàn)用戶的控制,新版“吃豆人”游戲設(shè)計采用觸屏方式,當用戶輕觸屏幕時,用戶控制的人物移動方向?qū)淖儭?/p>

        (2)游戲繪圖:負責將處理完成的圖片繪制到屏幕上,其中包括地圖、主角、怪物、計分板的繪制方法和實際繪制指令。游戲中的尺寸單位將根據(jù)手機機型不同進行調(diào)整。通過此模塊先獲取設(shè)備的屏幕分辨率,再根據(jù)分辨率計算單位尺寸,最終通過單位尺寸的倍數(shù)將所有內(nèi)容繪制在屏幕上。游戲繪圖模塊將每20s執(zhí)行一次,起到刷新屏幕繪制內(nèi)容的作用。

        (3)人工智能AI:賦予游戲中敵人行動的規(guī)則。在游戲過程中,每個敵人擁有一個初始的人工智能,但不是一成不變的,通過時間的推移或是道具的拾取,敵人的AI將會不斷變化。

        (4)邏輯處理:是游戲中至關(guān)重要的一部分,它決定著游戲中勝敗的條件、碰撞的發(fā)生、分數(shù)、生命值以及各種單位屬性的變化。該模塊定義在MainGame類中,其中又包含了獲得道具的函數(shù)、與敵人發(fā)生碰撞的函數(shù)以及游戲勝敗的函數(shù)等。

        2 新版“吃豆人”游戲人物與情節(jié)設(shè)計

        新版“吃豆人”游戲選取《東方project》作為游戲背景,《東方Project》是一個日本同人游戲社團(上海愛麗絲幻樂團)所制作的一系列動畫和漫畫,曾風(fēng)靡一時,其二次創(chuàng)作經(jīng)常應(yīng)用于游戲、動畫、漫畫、音樂、文學(xué)等諸多領(lǐng)域。

        2.1 游戲人物外觀設(shè)計

        游戲?qū)⑦x取博麗靈夢、霧雨魔理沙和十六夜咲夜這三名代表性人物作為主角,她們將被困于奇幻的魔法迷宮之中,游戲玩家將控制她們一步步破解魔法封印,逃離魔法迷宮。

        (1)主角設(shè)計

        游戲主角共設(shè)定三種,可供玩家選擇。她們的形象、速度、生命值都不一樣。具體如下:

        主角一:十六夜咲夜,生命值7、速度4。她是完全灑脫的從者。其特點是速度最慢但生命值極高。適合操作不熟練的玩家選擇。

        主角二:博麗靈夢,生命值3、速度5。她是樂園的美妙巫女,各項能力均衡,是整個故事的核心人物。其特點是速度最慢但生命值極高。適合新玩家選擇。

        主角三:霧雨魔理沙,生命值1、速度6。她是普通的魔法使,其特點是生命值最少但速度最快。適合高級玩家選擇。

        (2)怪物精靈(NPC)設(shè)計

        NPC1:當游戲主角吃到綠色魔法石頭后,所有怪物將會變?yōu)閯游锊适Ч粜?,NPC1將會變身為可愛的小兔子。

        NPC2:當主角吃到綠色魔法石頭后,NPC2會變身為憨厚老實的小烏龜。

        NPC3:當主角吃到綠色魔法石頭后,NPC3會變身為無攻擊力的小貓。

        2.2 游戲人物的屬性設(shè)置

        為了使游戲更適合現(xiàn)代人的特點,同時達到2.1節(jié)人物外觀的設(shè)計要求,對新版“吃豆人”游戲人物設(shè)計了18個屬性,其中整型變量占大多數(shù),一共有11個;布爾型變量有4個用來判斷人物的移動方向;Bitmap數(shù)據(jù)類型有3個,主要負責游戲人物狀態(tài)顯示的圖片來源。具體如下[2]:

        intcharacter:游戲人物角色變量,變量的值為1~3,值為1時,匹配人物為“博麗靈夢”;值為2時,匹配人物角色“霧雨魔理沙”;值為3時,匹配人物為“十六夜咲夜”。

        intlife:游戲主角的生命值。因為該游戲碰撞算法的特點,實際顯示的生命值為此變量的1/2。

        intscore:游戲主角的得分。即玩家獲得的分數(shù),該屬性會在游戲過程中不斷變化。

        intstep:游戲人物的步長。表示人物角色的移動速度,由于不同手機機型的屏幕尺寸和分辨率不同,該屬性的值采用相對坐標表示。

        intstayBean:剩余豆子數(shù)。表示主角通關(guān)還需吃掉的豆子數(shù)。

        intx與inty:游戲人物的橫、縱坐標。表示主角位于屏幕中橫、縱向的位置。

        intxP與intyP:游戲人物橫、縱坐標的偏移量。該變量負責微調(diào)游戲人物實際繪制在屏幕中的橫、縱向位置。

        intx():主角橫向的偏移坐標。表示主角實際繪制在屏幕中的橫向位置,該屬性的值為x+xP。

        inty():主角縱向的偏移坐標。表示主角實際繪制在屏幕中的縱向位置,該屬性的值為y+yP。

        BitmapresourceBmp1:主角跑步狀態(tài)的圖片來源,數(shù)據(jù)類型為Bitmap。該變量負責獲取主角跑步狀態(tài)的圖片。

        BitmapresourceBmp2:主角站立狀態(tài)的圖片來源,數(shù)據(jù)類型為Bitmap。該變量負責獲取主角站立狀態(tài)的圖片。

        BitmapplayerBmp:主角顯示在地圖上的圖片。該屬性表示人物角色實際顯示在地圖上的圖片,該圖片由resourceBmp1和resourceBmp2分割而成。

        booleanup,booleandown,booleanleft,booleanright:游戲人物角色是否向上、下、左、右移動。

        2.3 游戲人物的方法設(shè)置[3]

        游戲主角的方法有4種,其中publicvoidmoveUD()和publicvoidmoveLR()分別控制主角上下和左右移動;publicvoidrun是主角的多線程方法;publicvoiddrawPlayer是繪制主角的方法。

        (1)publicvoidmoveUD():主角上下移動的方法。當up屬性為true時,up1屬性在0~20內(nèi)循環(huán)自增,其中0到4、4到10、10到14、14到20這四種情況下,playerBmp屬性分別匹配主角向上移動的四幅圖片,并且實時判斷人物角色上方是否有障礙物,若沒有障礙物,則主角的坐標屬性y減去步長屬性step;否則主角的坐標不變。當down屬性為true時,down1屬性在0~20內(nèi)循環(huán)自增,其中0到4、4到10、10到14、14到20這四種情況下,playerBmp屬性分別匹配主角向下移動的四幅圖片,并且實時判斷人物角色下方是否有障礙物,若沒有障礙物,則主角的坐標屬性y加上步長屬性step;否則主角的坐標不變。

        (2)publicvoidmoveLR():主角左右移動的方法。當left屬性為true時,left1屬性在0~20內(nèi)循環(huán)自增,其中0到4、4到10、10到14、14到20這四種情況下,playerBmp屬性分別匹配主角向左移動的四幅圖片,并且實時判斷人物角色左方是否有障礙物,若沒有障礙物,則主角的坐標屬性x減去步長屬性step;否則主角的坐標不變。當right屬性為true時,right1屬性在0~20內(nèi)循環(huán)自增,其中0到4、4到10、10到14、14到20這四種情況下,playerBmp屬性分別匹配主角向右移動的四幅圖片,并且實時判斷人物角色右方是否有障礙物,若沒有障礙物,則主角的坐標屬性x加上步長屬性step;否則主角的坐標不變。

        (3)publicvoidrun():主角的多線程方法。當主角的一個實例的線程開啟時,運行此方法。在此方法中定義了循環(huán)運行moveLR()和moveUD()的語句,并定義為每隔20ms循環(huán)一次。

        (4)publicvoiddrawPlayer(Contextcontext,Canvascanvas,intplotSizeX,intplotSizeY):主角的繪制方法。該方法是通過up、down、left、right和up1、down1、left1、down1八個變量的值來綜合判斷人物角色的移動狀態(tài),從而匹配到相應(yīng)的圖片,然后根據(jù)主角橫向和縱向的偏移坐標繪制到屏幕相應(yīng)的位置上。

        3 碰撞檢測

        新版“吃豆人”游戲?qū)儆?D像素風(fēng),游戲的地圖是以矩形圖塊為基本單位,所以其碰撞檢測選用矩形碰撞檢測方法[4]。

        3.1 矩形碰撞檢測原理

        在2D游戲中,矩形碰撞的前提是所有實體碰撞單位如障礙物、道具、人物等都以矩形的形式存在。矩形碰撞檢測原理示意圖如圖2所示。

        圖2 矩形碰撞原理示意圖

        判斷兩個物體橫向是否發(fā)生碰撞,可比較p1和p2的x坐標之間距離和w1/2+w2/2的大小,當p1和p2的x坐標之間距離大于w1/2+w2/2時,兩物體橫向不發(fā)生碰撞,否則,兩物體橫向發(fā)生碰撞。

        判斷兩個物體縱向是否發(fā)生碰撞,可比較p1和p2的y坐標之間距離和h1/2+h2/2的大小,當p1和p2的y坐標之間距離大于y1/2+y2/2時,兩物體縱向不發(fā)生碰撞,否則,兩物體縱向發(fā)生碰撞。

        判斷兩個物體是否發(fā)生碰撞需要結(jié)合橫向和縱向兩部分,這兩部分同時為真,才能確定兩物體發(fā)生碰撞。

        3.2 新版“吃豆人”游戲中的碰撞設(shè)計[5]

        游戲中主角與敵對精靈的碰撞采用矩形碰撞檢測原理,但判斷方法與上述的方法有所不同。因為新版“吃豆人”游戲設(shè)定所有游戲主角與NPC的大小全部相同,并且只有游戲主角和敵人之間會發(fā)生碰撞,因此可以選取游戲主角的坐標和NPC坐標直接的關(guān)系進行碰撞判斷。

        游戲中主角和NPC的坐標都在其中心位置,通過判斷游戲主角的坐標是否到達NPC坐標周邊的某一位置來判斷它們是否發(fā)生碰撞,碰撞的判斷并非設(shè)定成人物邊緣發(fā)生重疊即為發(fā)生碰撞,而是游戲主角與NPC重疊到一定程度時才判斷發(fā)生碰撞。因此判斷方式設(shè)定為:當玩家控制的游戲主角坐標在NPC坐標上下左右各加游戲圖塊橫縱尺寸的一半時,碰撞生效。游戲主角與NPC的碰撞檢測流程如圖3所示。

        圖3 游戲主角與NPC的碰撞檢測流程圖

        在新版“吃豆人”游戲中,主角和障礙物的碰撞判斷借助于地圖數(shù)組完成,將主角的橫縱坐標分別除以地圖圖塊的橫縱尺寸,可以得到主角在數(shù)組中的位置,此時可以判斷其上下左右是否有障礙物,即判斷地圖第二層中,游戲主角位置的上下左右的元素是否為000,若為000則不發(fā)生碰撞,否則發(fā)生碰撞。游戲主角與游戲道具的碰撞檢測流程如圖4所示。

        圖4 主角與游戲道具的碰撞檢測流程圖

        4 游戲中AI的設(shè)計與實現(xiàn)

        游戲AI是游戲中至關(guān)重要的一部分,游戲的趣味性與難度很大程度上取決于游戲AI。所以在編寫游戲的時候,需要從游戲的難易度、可玩度等多方面去設(shè)計游戲人物的AI方式。新版“吃豆人”游戲在原版“吃豆人”游戲的敵人行動方式的基礎(chǔ)上進行了創(chuàng)新,制作出全新的、具有趣味性的AI。游戲AI有三種,分別是隨機移動AI、追擊AI和逃亡AI[6]。這三個游戲AI都是基于直線移動AI實現(xiàn)的。

        4.1 直線移動AI

        設(shè)置此AI的敵人將直線移動,直到撞到障礙物才會更改移動方向。如當游戲人物向上移動時,實時判斷游戲人物上方是否有障礙物,若有障礙物則生成一個隨機數(shù),當隨機數(shù)為0時,游戲人物將改為向下移動;當隨機數(shù)為1時,游戲人物將改為向左移動;當隨機數(shù)為2時,游戲人物將改為向右移動。

        4.2 隨機移動AI

        隨機移動AI是原版游戲中橙色幽靈Clyde的行動方式,但也并非是完全隨機的,試想如果是完全隨機,該幽靈將可能會原地打轉(zhuǎn),或是在直線移動中折返,這會使得游戲難度大幅度增加,因此對該AI的隨機性設(shè)計應(yīng)該設(shè)置在轉(zhuǎn)彎時。

        在隨機移動AI設(shè)計中,首先判斷敵人當前的移動方向,然后實時判斷其左右是否可轉(zhuǎn)彎,當接近轉(zhuǎn)彎點時,在到達之前生成一個隨機數(shù),根據(jù)該隨機數(shù)決定人物角色是否轉(zhuǎn)彎。例如,當人物角色向上移動時,實時判斷人物左右是否可通過,如果可以通過,則生成一個隨機數(shù),如果人物左邊可以通過并且隨機數(shù)為0,則人物改為向左移動,如果人物右邊可以通過并且隨機數(shù)為1,則人物改為向右移動,其他情況則不改變移動方向,繼續(xù)向上移動。

        4.3 追擊AI

        新版“吃豆人”游戲中追擊主角AI借鑒了原版游戲中紅色幽靈Blinky的行動方式,設(shè)置此AI的怪物會努力讓自己跑到主角的位置。同時會實時判斷自身與主角的相對位置,從而改變其移動的方式。因為游戲的地圖具有管道式特點,當怪物縱向移動時,判斷自身與游戲人物主角橫縱距離的差值,如果縱向距離大于橫向距離,怪物保持縱向移動,否則,怪物行動方向?qū)⒏臑闄M向。怪物的移動方向?qū)⑹冀K縮短與主角的相對距離。

        4.4 逃亡AI

        新版“吃豆人”游戲中主角逃亡AI借鑒了原版游戲中主角吃到大力丸后怪物的行動方式,設(shè)置此AI的怪物會努力讓自己遠離主角的位置。因為游戲的地圖具有管道式的特點,因此當敵人縱向移動時,判斷自身與人物角色橫縱距離的差值,如果縱向距離小于橫向距離,則敵人保持縱向移動,否則,敵人的行動方向改為橫向。敵人的移動方向?qū)⑹冀K遠離主角。因為每個敵對精靈都涉及到逃亡AI。

        5 結(jié)論

        新版“吃豆人”游戲借用經(jīng)典“吃豆人”的情懷和“遍歷豆子”游戲的勝利條件,但是游戲的情節(jié)設(shè)計、游戲地圖設(shè)計、游戲人物角色設(shè)計、游戲AI設(shè)計都有了較大的創(chuàng)新,使得游戲更具有趣味性和耐玩性。在開發(fā)基于Android新版“吃豆人”游戲中用到許多關(guān)鍵技術(shù),主要包括Android游戲開發(fā)中通過Handler機制實現(xiàn)各個界面的控制調(diào)度,通過地圖類提前標注游戲中NPC的運動路線,Android游戲開發(fā)中通過SurfaceView雙緩沖繪圖機制來實現(xiàn)視圖界面,加載界面進度條技術(shù)的設(shè)計實現(xiàn)[7],本文重點介紹了2D游戲開發(fā)中AI和碰撞算法的具體實現(xiàn)?;贏ndroid的新版“吃豆人”游戲設(shè)計與開發(fā)對于2D“像素風(fēng)”遍歷整個地圖類Android游戲開發(fā)具有一定的參考和借鑒意義。

        [1] 胡偉.Android系統(tǒng)架構(gòu)及其驅(qū)動研究[J] .廣州廣播電視大學(xué)學(xué)報,2010, 10(4):96-101.

        [2] 靳巖,姚尚朗.GoogleAndroid開發(fā)入門與實戰(zhàn)[M].北京:人民郵電出版社,2009.

        [3] 王向輝,張國印,沈潔.Android應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2011.

        [4] 楊科選.人工智能尋路算法及其在游戲中的應(yīng)用研究[D].長沙:中南大學(xué),2009.

        [5] 陳和平,張前哨.A*算法在游戲地圖尋徑中的應(yīng)用與實現(xiàn)[J].計算機應(yīng)用與軟件,2005,22(12):118-120.

        [6] 張亮亮,夏正友.基于遺傳算法求解游戲關(guān)卡問題[J].信息通信,2009(6):31-35.

        [7] 崔浩然.基于Android平臺的手機游戲的設(shè)計與實現(xiàn)[D].西安:西安科技大學(xué),2011.

        Design of high performance mass data storage simulator

        ChenManhong,XueXue

        (Teachers’College,BeijingUnionUniversity,Beijng100011,China)

        Thenewversionof“thepac-man”gameisbasedontheoriginal“thepac-man”,addingsomemodernelementsandvariousrulesofthegamemodeltoit,inordertoaddsomemodernpreferencesofmobilephonecasualgames.Thisarticleshowsthefunctionofthegame’soverallarchitecture,amongthemthekeyistorealizethegamecharactercollisiondetectionandthedesignofartificialintelligence.ThisarticleshowstheAndroidgamedevelopmentofthewholeprocessandputsforwarddevelopmentframeworkfor“thepac-man”.Thegamedevelopmenthascertainreferencesignificance.

        “thepac-man”game;collisiondetection;gameAI

        TP

        ADOI: 10.19358/j.issn.1674- 7720.2016.22.013

        陳漫紅,薛雪. 新版“吃豆人”游戲的AI設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2016,35(22):47-50,60.

        2016-07-20)

        陳漫紅(1969-),女,碩士,副教授,主要研究方向:數(shù)據(jù)庫、多媒體技術(shù)。

        薛雪(1995-),女,本科,主要研究方向:計算機科學(xué)與技術(shù)。

        猜你喜歡
        游戲設(shè)計
        何為設(shè)計的守護之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        瞞天過?!律O(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        游戲
        數(shù)獨游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        第八章直接逃出游戲
        亚洲精品乱码久久久久久蜜桃不卡| 强迫人妻hd中文字幕| 国产在线观看自拍av| 成人国产精品一区二区视频| 漂亮人妻被黑人久久精品| 久久久调教亚洲| 国产精品一区二区久久久av| 扒开腿狂躁女人爽出白浆| 久久精品亚洲乱码伦伦中文| 久久亚洲精品成人综合| 亚洲av色福利天堂久久入口| 人妻丰满熟妇岳av无码区hd| 77777亚洲午夜久久多人| 无码高潮少妇毛多水多水免费| 国产精品熟女视频一区二区三区| 国产又爽又大又黄a片| 成年男女免费视频网站| 中文字幕偷拍亚洲九色| 少妇被黑人嗷嗷大叫视频| a级毛片免费完整视频| 日韩高清无码中文字幕综合一二三区 | 久久精品蜜桃美女av| 十八禁视频网站在线观看| 国产美女在线精品免费观看网址 | aaaaaa级特色特黄的毛片| 久久99亚洲网美利坚合众国| 天堂网日韩av在线播放一区| 青春草在线视频免费观看 | 日韩少妇无码一区二区免费视频 | 魔鬼身材极品女神在线| 国产一区二区视频免费在| 国产在线精品成人一区二区三区| 国产精品av在线一区二区三区| 午夜视频在线观看国产19| 巨人精品福利官方导航| 国产精品免费久久久免费| 国产高清自产拍av在线| 国产精品无码素人福利不卡| 亚洲国产av一区二区三区四区 | 日本一区二区在线播放视频 | 国产精品美女久久久浪潮av|