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

主站蜘蛛池模板: 一级在线毛片| 超碰免费91| 亚洲无码在线午夜电影| 国产女人爽到高潮的免费视频| 美女国内精品自产拍在线播放 | 免费在线看黄网址| 亚洲精品无码在线播放网站| 爱色欧美亚洲综合图区| 久久99久久无码毛片一区二区| 国产真实乱子伦视频播放| 看你懂的巨臀中文字幕一区二区| 国产伦片中文免费观看| 欧美国产中文| 米奇精品一区二区三区| 国产精品视频免费网站| 欧美中文字幕在线二区| 91丝袜乱伦| 亚洲另类国产欧美一区二区| 无码啪啪精品天堂浪潮av| 手机看片1024久久精品你懂的| 伊人无码视屏| 亚洲日产2021三区在线| 国产成人AV男人的天堂| 国产欧美日韩在线一区| 中文字幕日韩视频欧美一区| 国产精品亚洲专区一区| 国产精品无码制服丝袜| 亚洲精品自拍区在线观看| 欧美日本在线一区二区三区| 国产精品成| 伊人久久大香线蕉aⅴ色| 中文字幕在线看| 免费国产福利| 欧洲免费精品视频在线| 18禁高潮出水呻吟娇喘蜜芽| 精品伊人久久久香线蕉| 亚洲中文字幕日产无码2021| 久久综合亚洲色一区二区三区| 亚洲国产一区在线观看| 日韩在线欧美在线| 久久天天躁狠狠躁夜夜2020一| 欧美日本在线| 性喷潮久久久久久久久| 国产迷奸在线看| 伊人久久福利中文字幕| 成人国产一区二区三区| 欧美视频在线播放观看免费福利资源| 色悠久久久| 国产91蝌蚪窝| 国产精品第一区| 鲁鲁鲁爽爽爽在线视频观看| 精品国产美女福到在线直播| 尤物精品视频一区二区三区| 中文字幕在线不卡视频| 欧美在线导航| 国产成人无码播放| 日本精品一在线观看视频| 日韩AV无码一区| 中文成人在线| 日本爱爱精品一区二区| 五月天久久综合国产一区二区| 女人18毛片久久| 国产在线拍偷自揄拍精品| 国产手机在线观看| 亚洲色中色| 91探花在线观看国产最新| 亚洲天堂区| 亚洲视频四区| 亚洲综合专区| 黄色网址手机国内免费在线观看| 精品一区二区三区视频免费观看| 亚洲无码91视频| www精品久久| 亚洲国产精品成人久久综合影院 | 国产美女在线观看| 72种姿势欧美久久久久大黄蕉| 综1合AV在线播放| 国产美女91视频| 成人va亚洲va欧美天堂| 欧美激情视频一区| 日本免费福利视频| 99精品高清在线播放|