999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

休閑游戲大白版泡泡堂的設計與實現

2017-04-27 14:11:59武思齊
電子技術與軟件工程 2016年15期

武思齊

摘 要 大白版泡泡堂游戲使用Visual C++和MFC開發,游戲畫面精美,用戶體驗良好,達到Q版泡泡堂的基本功能,并且在原有游戲界面上進行一定改進。但是“關于如何判斷玩家當前是否應該運動、當前往哪個方向運動、當前是已經到達目標單元格只需要修正到中間,還是尚未到達目標單元格需要走到目標單元格”的問題未解決。這篇文章針對存在的這些問題,進行了分析,提出了通過設定多個標記變量,像素推導所在單元格的方法的解決問題。最終實現了自動生成地圖、武器數量限制、背景音樂、網格吸附、敵人尋找建筑安放炸彈、敵人遇見我方自動安放炸彈,分數自動累加的功能。游戲推出后,用戶體驗良好。

【關鍵詞】泡泡堂游戲 C++ MFC 炸彈游戲

1 背景

《泡泡堂》是由韓國游戲公司Nexon開發的一款休閑游戲。游戲講述了在哈巴森林的一個村落的村民們利用神奇的水泡來打獵和采集寶石,故事由為拯救村民和奪回被海盜搶去的寶石而展開。游戲畫面精美,功能友好,得到了很多人的歡迎和喜愛,并且風靡一時。我們根據Q版泡泡堂為靈感,以《泡泡堂》為原型,以大白(Baymax)--迪士尼動畫《超能陸戰隊》中的健康機器人為角色,設計開發一款大白版泡泡堂游戲,講述大白通過采集寶石攻擊敵人,摧毀邪惡勢力的故事。游戲更加生動有趣,容易上手,可以滿足玩家的娛樂需求。

2 游戲需求

2.1 功能需求

(1)游戲需要設定游戲元素,擺闊建筑物、人物、地圖、炸彈均為自己構造的類對象;

(2)游戲初始化:以一個二維vector存儲建筑物地圖并繪制,生成電腦玩家和用戶玩家角色的類對象;

(3)安置炸彈:在釋放處生成一個炸彈類對象并根據釋放者角色配置炸彈和顏色等;

(4)炸建筑、敵人:炸彈以所在位置為原點,向上下左右搜索相應的地圖方塊,根據地圖數組判斷攻擊范圍內有無可炸元素,如有,摧毀之,自己的炸彈傷不到自己;

(5)電腦玩家移動:電腦玩家隨機選擇一個方向,在該方向前方無障礙的情況下朝該方向移動,遇障礙物則轉方向,若任意時刻四周有可炸的建筑物或者敵人,則自動安放炸彈;

(6)分數統計:每個人物對象有數據成員記錄分數,炸開一個建筑物+10分,炸死敵人+1000分;

(7)死路規避:生成地圖時,若人物被包圍在不可炸的建筑物中,則人物處于死路里。解決方案:生成人物時,清空以人物為中心的九宮格內的建筑。

2.2 存在難點及解決方式

在制作游戲的過程中,存在著以下六個較難實現的問題,針對這些問題提出了簡單的解決方法。

(1)屏幕上同時需要管理的對象實例很多,比如說有人,建筑物,炸彈等等,但是只要程序邏輯清晰,可以解決;

(2)對象間關系緊密復雜,如炸彈-建筑關系、建筑-人物關系,人物-人物關系,所以要設計好對象之間關聯方式;

(3)電腦用戶需要一定的智能以自己行動,需要簡化行動規律,用簡單代碼寫出活動的算法;

(4)敵我判斷,防止誤傷:可以炸彈記錄主人信息,若是主人則不摧毀;

(5)元素吸附網格、多鍵響應問題:需要多個標記變量解決問題,通過像素推導所在單元格;

(6)電腦玩家遇見我方知道襲擊:通過把我方當做建筑來判斷來解決。

3 游戲設計及實現

3.1 游戲設計

游戲以Flash上 Q版泡泡堂為原型復刻一個BayMax版泡泡堂,開發環境使用Visual C++ 6.0,MFC工程;達到Q版泡泡堂的基本功能,包括安置炸彈、炸開建筑、炸死敵人、敵人自動移動等;大致復制Q版泡泡堂的功能:自動生成地圖、武器數量限制、背景音樂、網格吸附、敵人尋找建筑安放炸彈、敵人遇見我方自動安放炸彈,分數自動累加等功能。

3.2 游戲實現

大白版泡泡堂要實現游戲角色在自動生成的地圖中活動,玩家通過方向鍵控制角色上下左右移動,空格鍵釋放炸彈,炸彈沿上下左右方向釋放爆炸威力,以炸開一些建筑或者炸死敵人。下面介紹游戲主要部分的實現方法。

3.2.1 類及成員

游戲中設置Game、Player、Building、MapOfBuilding、Bomb類,類之間相互聯系、相互制約。

Game類中包括drawScore,getcomputerPlayerPointer,getPlayerPointer,theBomb等成員。

Player類中包括moveToNextUnit,getScore,getXpos,getYpos等成員。

MapOfBuilding類中包括drawMap,theVectorMap等成員。

3.2.2 運行流程圖

如圖1所示。

3.2.3 重點類,函數實現

(1)View類OnDraw函數。為了使貼圖思路清晰,所有會改變畫面的操作都不立即重新貼圖,而是只改變類對象的屬性,當Timer事件觸發,OnDraw函數根據當前所有存在的類對象的屬性值重繪整個畫面。這樣做可以使凡是與繪圖有關的代碼改變,只要改OnDraw函數里的內容就行,不用到處找按鍵消息響應的地方,思路清晰,易于維護。下面介紹函數的實現方法:

Draw Map:

if (玩家用戶存活|| 電腦用戶存活){

if (玩家的炸彈攻擊到電腦){

if (玩家用戶存活)-----顯示玩家勝利

else顯示玩家失敗

Draw Bomb:

如圖2所示。

(2)解決網格吸附的問題。游戲人物每次必定停在10*10的網格中某一個的正中間,這要求人物在一次按鍵響應之后的每次Timer激發移動一定像素,而在到達預定單元格中間位置時停止運動。所以,在Timer激發時,如何判斷當前是否應該運動、當前往哪個方向運動、當前是已經到達目標單元格只需要修正到中間,還是尚未到達目標單元格需要走到目標單元格,就成了很重要的問題。我們可以通過Player類MoveToNextUnit函數解決網格吸附的問題,函數流程圖如圖3所示。

4 總結

泡泡堂游戲的風靡全球不僅因為其游戲充滿故事性,畫面制作精良,還得力于游戲成熟的技術和易于操作的界面。我們開發的大白版泡泡堂借鑒了之中的優點,實現了Q版泡泡堂中的大部分功能,解決了諸如元素網格吸附,多鍵相應,電腦用戶智能運動,以及地圖生成等難題,可以為其他愛好者拿來借鑒。但是在游戲界面的制作上,由于我們的繪圖能力不夠強,在界面的制作上仍有許多改進和完善的地方,我們會繼續改進界面,完善功能。

參考文獻

[1]劉變蓮,劉東波.MFC與Windows程序[J].電腦知識與技術,2015(32).

[2]朱全銀,章慧,孫文杰.基于J2ME及J2EE的移動網絡游戲關鍵技術研究[J].計算機工程與設計,2008(20).

[3]趙麗娟,朱全銀.基于J2ME的移動網絡游戲設計與實現[J].網絡與通信技術,2010(12).

[4]馬棟,邱燁.泡泡堂游戲開發技術淺析[J].硅谷,Silicon Valley,2009(20).

作者單位

四川大學計算機學院 四川省成都市 610225

主站蜘蛛池模板: 欧美区一区| 色亚洲成人| 亚洲日韩精品欧美中文字幕| 无码专区国产精品第一页| 夜夜操天天摸| 日韩高清一区 | 久久五月视频| 欧美日韩国产精品va| 精品国产欧美精品v| 99精品伊人久久久大香线蕉| 99热这里只有免费国产精品| 国产屁屁影院| 97se亚洲综合在线天天| 网友自拍视频精品区| 亚洲国产欧美目韩成人综合| 免费观看国产小粉嫩喷水 | 国产成本人片免费a∨短片| 毛片免费观看视频| 国产69精品久久久久孕妇大杂乱| 国产精品污视频| 久久久久九九精品影院| 日本精品视频一区二区| 人妻丰满熟妇αv无码| 日本欧美视频在线观看| 精品国产aⅴ一区二区三区| 色成人亚洲| aaa国产一级毛片| AV老司机AV天堂| 欧美一级黄片一区2区| 日韩专区第一页| 91精品专区国产盗摄| 国产丝袜啪啪| 黑人巨大精品欧美一区二区区| 老司机aⅴ在线精品导航| 久久午夜夜伦鲁鲁片不卡| 在线欧美日韩国产| 精品1区2区3区| 精品久久久久久成人AV| 台湾AV国片精品女同性| 成人毛片在线播放| 亚洲视频在线观看免费视频| 久久青草热| 激情网址在线观看| 亚洲国产在一区二区三区| 国产无遮挡裸体免费视频| 国产91透明丝袜美腿在线| 国产精鲁鲁网在线视频| 99r在线精品视频在线播放| 久久精品亚洲专区| 亚洲综合片| 久久综合九九亚洲一区| 午夜视频免费一区二区在线看| 亚洲AⅤ永久无码精品毛片| 欧美成人h精品网站| 亚洲国产欧美国产综合久久| 国产激情无码一区二区APP | 国产区免费| 欧美人与牲动交a欧美精品| 一本久道热中字伊人| 国产精品久线在线观看| 色悠久久久久久久综合网伊人| 久久综合干| 国产精品天干天干在线观看| a级毛片毛片免费观看久潮| 欧美a级在线| 综合色婷婷| 国产成人凹凸视频在线| 天堂av高清一区二区三区| 欧美日韩免费| 天天色综合4| 国产白浆一区二区三区视频在线| 色哟哟国产成人精品| 成人免费午夜视频| 成人精品亚洲| 男人天堂亚洲天堂| 亚洲天堂区| 丰满少妇αⅴ无码区| a级毛片在线免费| 亚洲精品视频网| 日韩国产一区二区三区无码| 久久综合色播五月男人的天堂| 视频一区视频二区日韩专区 |