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

淺談Cocos2d的塔防類游戲開發

2019-12-09 01:58:52范羚蔡琪瑋
大經貿 2019年10期

范羚 蔡琪瑋

【摘 要】 本文完成一個基于開源性游戲框架Cocos2d的塔防類游戲設計,闡述了游戲設計目的,總體規劃及游戲整體框架設計,并從用戶界面設計和游戲業務邏輯設計兩方面詳細分析了設計過程,實現了塔防類游戲中所需各類管理器的編程,并最終完成游戲開發。

【關鍵詞】 Cocos2d 場景 管理器

一、游戲總體設計

1、設計目的和總體規劃

Cocos2d游戲引擎自帶多種游戲機制,其內部封裝了大量動作和場景方法函數,這些方法對于游戲中使用的各種元素如精靈、場景等的表現形式有較好的實現效果,可以完成游戲元素的展示、碰撞、動作和音樂音效等,在玩法和畫面上,帶給游戲使用者不一樣的體驗。常用的游戲設計方法有:放置方法Place、隱藏方法Hide、顯示方法Show、移動方法MoveTo、跳躍方法JumpTo、放大方法ScaleTo、旋轉方法RotateBy、閃爍方法Blink、速度變化和組合動作等。

Z`在此次游戲機制設計上,采用鼠標進行操作,完成游戲進程中玩家所需的各種功能,比如:建塔、升級、銷毀、控制游戲速度、游戲菜單設計等;在塔種類的設計上,使用盡可能豐富的塔種類,并使不同的塔有不同的素材和屬性,包括建造開銷、血量、攻擊速度和傷害等;不同的敵方怪物也有不同的素材和屬性;在子彈的構造上,將子彈設計為一個單獨的實體類,具有自己的移動和傷害等方法,構造方式相對自由。

2、系統框架設計

本游戲基本系統框架采用Cocos2d進行設計。Cocos2d使用場景樹結構來管理游戲對象,將游戲劃分為不同的場景CCScene,再將場景劃分為不同的層CCLayer。一層可以有任何可見的游戲對象,游戲對象可執行Action來修改其屬性。在游戲進行的每個時刻,都存在獨立運行的場景,并且通過在不同場景間切換來完成游戲進程。Cocos2d還使用引用計數來管理內存,本次使用的類都派生自具有引用計數機制的CCObject。其中CCApplication負責游戲平臺的初始化和消息處理等。CCDirector用來管理場景,切換場景,游戲暫停,初始化等。CCNode是游戲中最重要的節點類對象,任何可見或不可見的游戲邏輯對象都是一個節點。CCAction是動作類,完成修改CCNode相關屬性,如位置,旋轉,縮放等。CCScene是場景類,可獨立運行,包括可見的怪物,地形和不可見的邏輯腳本等。CCLayer是場景中的圖層類,游戲場景包含多個層,如HUD圖層,游戲對象圖層,背景圖層,天空圖層等。圖層是可以繪制的區域,可以添加UI,Sprite和其他對象。此外,該層還接收輸入消息,該消息可以處理圖層類中的輸入消息,與CCScene一樣,CCLayer是CCNode的子類,CCAction也可用于修改其屬性。

二、游戲功能設計

1、用戶界面邏輯設計

本次在設計塔防類游戲用戶界面時,使用用戶界面與業務邏輯分離的思想。用戶界面模塊用來接收用戶輸入及呈現數據,包括有可以實現游戲功能導航的主菜單界面,實現關卡地圖的展示和關卡選擇的關卡界面,用來展示怪物的怪物圖鑒界面,及游戲主界面。業務邏輯模塊功能是根據用戶需求處理數據。

2、游戲業務邏輯設計

一般游戲引擎在對業務邏輯的處理上是使用一個死循環,當游戲運行時,根據游戲實時實現的情況,進行實時顯示,不斷刷新界面,使用update_game()和display_game()函數進行處理。玩家在游戲中所看到的界面,聽到的音樂,以及一些輸入和觸動等,在游戲邏輯實現上就是這樣的一個循環,游戲運行過程中,該循環一直在進行,并同步處理玩家事件。所有游戲邏輯都在這個主循環中實現,使用Cocos2d游戲引擎中Main.cpp的CCApplication:: sharedApplication ()->run()進入游戲循環。Windows系統屬于消息驅動,這個死循環就是用來處理windows消息循環,并在其中處理FPS邏輯,消息分發等。本文使用CCDirector::sharedDirector()->mainLoop()作為Cocos2d的主循環,由導演CCDirector負責維護。從此處進入Cocos2d,一旦進入主循環,程序就開始執行游戲邏輯。

本次設計的游戲邏輯主要有:游戲菜單邏輯,游戲界面邏輯,游戲數據管理器,防御塔管理器,怪物管理器,子彈管理器和卡片管理器(功能管理)。

在游戲菜單邏輯中,一般游戲主要有2條功能分支,單機模式和對戰模式,且單機模式和對戰模式最終都指向游戲界面,本文主要實現單機模式。游戲界面是公共模塊,提取公共模塊,只需要進行數據和類型狀態的區分,就能很好的進行代碼上的規劃。

游戲界面流程從加載游戲數據開始,接下來繪制UI界面,創建各類管理器,進入游戲循環,直至用戶結束游戲。其中,在游戲界面邏輯中最重要的是游戲循環模塊,游戲引擎已經做好了封裝,開發者要關心的是游戲數據管理、UI界面、各類實體管理器(防御塔管理器、敵人管理器等)。

游戲邏輯包括游戲循環、消息機制和定時器,各類實體對象邏輯都離不開這三個部分。本文設計的塔防類游戲的各類實體管理器包括有:用來管理游戲全局數據的游戲數據管理器,通過定時器,獲取子彈接口,發射子彈,及對塔防進行升級、出售等功能性操作的防御塔管理器,對游戲數據和怪物進行管理的怪物管理器,提供獲取子彈接口,管理子彈的容器的子彈管理器,提供防御塔功能性接口,對防御塔進行功能性管理的卡片管理器。

三、具體實現過程

1、防御塔管理器

防御塔類管理器具有成員屬性:攻擊力和攻速;成員方法包括尋找攻擊目標和攻擊等。防御塔也有對應的防御塔管理器,負責存儲管理已建造的防御塔。在防御塔類中,定時器時間間隔就是攻擊速度,定時調用攻擊敵人的一系列方法。

2、怪物管理器

怪物的業務邏輯封裝在怪物管理器中,設計時,需先創建怪物列表,再創建定時器,在游戲場景運行過程中,通過定時器每隔一定時間,產生新的怪物,產生的怪物屬性需從.json文件中讀取并創建,包括怪物ID,血量,移動速度,攻擊力,素材路徑等。

3、卡片管理器(功能管理)

防御塔對應的功能操作在卡片管理器,點擊防御塔,會調用防御塔按鈕回調函數,彈出/隱藏卡片管理器界面,在此界面上實現對防御塔的升級和出售等操作。

4、資源管理器

資源管理器負責存儲和管理游戲所需的游戲信息,在游戲場景創建時,讀取對應的.json 文件。資源管理器是一個單例類,能在任何場景中調用,方便游戲信息的處理。資源管理器應包括游戲地圖信息,敵方怪物信息和防御塔信息等屬性,且具有相應的成員方法:獲取地圖信息,獲取怪物信息,獲取防御塔信息等。

5、游戲場景邏輯

創建游戲場景后,由導演負責執行場景,執行中場景的定時器會生效,定時器定時回調場景update( )函數,并且自定義定時器將調用對象及各管理器的自定義回調函數;游戲的邏輯,包括勝利和失敗條件也是在場景的update函數中進行判定:當擊敗怪物數量達到該地圖關卡指定最大數量時,游戲獲勝;當目標血量小于或等于0時,游戲失敗。

6、游戲運行結果

游戲菜單是游戲的第一個界面,該界面將引導玩家選擇游戲模式及功能,有單機模式、對戰模式等。在單機模式下,玩家在游戲主界面進行選擇關卡,游戲可提供選擇豐富的游戲主題和關卡。在游戲具體場景中,玩家可以通過消耗金幣,建造防御塔,以防御怪物入侵,游戲中使用的地圖則是采用TiledMap格子地圖構建。

在本次游戲開發過程中,較為常見的bug是資源加載問題,程序運行過程中若加載不到對應的資源,一般會導致程序的崩潰,若調用到了空資源,系統就會產生崩潰。出現這類問題時,應通過核對對應模塊的資源加載代碼和對應路徑資源來解決。另一個較為棘手的問題是內存問題,一般這種問題是由內存管理不當引起的。Cocos2d有自己的資源管理系統,通過引用計數的機制,自動管理并釋放內存資源。在手動管理資源中,應考慮系統的自動內存管理機制,加入對應的功能性代碼,以避免和自動內存管理機制起沖突,引發意料之外的bug。針對這種情況,最好是盡量在編碼過程中避免出現邏輯上漏洞,加強對內存的合理管理。

四、小結

本文實現了基于Cocos2d的塔防類游戲設計,主要介紹了系統框架的設計以及游戲功能設計。在系統框架設計中,詳細說明了設計的總體思路,并以此為基礎框架,完成游戲功能上的設計,主要有:用戶界面與邏輯設計,各類管理器設計。基于Cocos2d游戲引擎的游戲業務邏輯設計能比較直觀地展現Cocos2d游戲引擎在游戲開發中的應用,為其他基于Cocos2d的塔防類游戲設計提供參考。

【參考文獻】

[1] [美]Stephen Prata. C++ Primer Plus[M].張海龍,袁國忠譯 北京:人民郵電出版社,2015:340-377.

[2] 張巖林. 基于Cocos2D-x的卡牌類游戲框架的設計與實現[D].吉林大學,2017.

[3] 朱京晶. 基于Cocos2d-x引擎的游戲的尋路算法研究與實現[D].北京交通大學,2017.

作者簡介:范羚(1977-),女,廈門工學院電子信息工程系,講師,,研究方向:信號與信息處理。

主站蜘蛛池模板: 午夜精品区| 国产精品无码AV片在线观看播放| 国产亚洲欧美日韩在线观看一区二区| 日韩视频福利| 永久成人无码激情视频免费| 日韩欧美亚洲国产成人综合| 成人中文字幕在线| 国产区免费| 国产香蕉在线视频| 久久午夜影院| 国内丰满少妇猛烈精品播| 国产精品无码久久久久AV| 亚洲欧美色中文字幕| 美女国产在线| 精品成人一区二区三区电影| 亚洲一区第一页| 精品夜恋影院亚洲欧洲| 91丨九色丨首页在线播放| 亚洲天堂啪啪| 三上悠亚在线精品二区| 污污网站在线观看| 色婷婷亚洲综合五月| 91国内外精品自在线播放| 日本三级黄在线观看| 精品福利一区二区免费视频| 成人免费一级片| 日本在线免费网站| 看看一级毛片| 欧美伊人色综合久久天天| 日本人妻一区二区三区不卡影院| 日韩一区二区在线电影| 色偷偷一区二区三区| 久久久久久久久亚洲精品| 婷婷综合色| 亚洲天堂日韩在线| 亚洲一区波多野结衣二区三区| 国产精品青青| 55夜色66夜色国产精品视频| 国产视频久久久久| 免费又黄又爽又猛大片午夜| swag国产精品| 国产新AV天堂| 久久国产精品电影| 国产综合精品日本亚洲777| 亚洲 欧美 日韩综合一区| 日本不卡在线播放| 国产成人1024精品| 国产91精选在线观看| 91精品免费久久久| 1级黄色毛片| 精品国产女同疯狂摩擦2| 成人毛片在线播放| 熟妇人妻无乱码中文字幕真矢织江 | 国产一区亚洲一区| 国产欧美日韩精品第二区| 无码综合天天久久综合网| 中文一级毛片| 亚洲无码视频一区二区三区 | 日韩精品久久久久久久电影蜜臀| 东京热一区二区三区无码视频| 福利小视频在线播放| 亚洲成人在线免费观看| 99久久亚洲综合精品TS| 国产后式a一视频| 一本色道久久88综合日韩精品| 丁香婷婷久久| 91无码视频在线观看| 欧美午夜理伦三级在线观看| 伊人久久久久久久| 午夜欧美理论2019理论| 国产精品视频第一专区| 久久婷婷六月| 动漫精品啪啪一区二区三区| 亚洲成A人V欧美综合| 国产精品网址你懂的| 国产亚洲男人的天堂在线观看| 青青国产成人免费精品视频| 欧美色香蕉| 欧美日本不卡| 国产欧美日韩在线一区| 91小视频在线观看| 欧美日本不卡|