• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Cocos Creator引擎的游戲開發(fā)技術研究

      2020-07-12 08:02:22閔磊江漢大學
      消費導刊 2020年45期
      關鍵詞:碰撞檢測控件子彈

      閔磊 江漢大學

      一、引言

      伴隨著便攜式硬件技術的進步,基于移動終端的各類應用軟件迎來了新的發(fā)展契機。人們利用手機或平板電腦等移動設備,可以隨時隨地通過各類APP進行學習、購物或是娛樂。在眾多面向移動終端的應用中,游戲軟件具有較大的發(fā)展需求。當今社會高速發(fā)展,人們的生活節(jié)奏日益加快,在碎片化的時間里適當?shù)乩糜螒蜻M行休閑,可以在一定程度上緩解人們緊張的情緒,有益身心健康。此外,游戲產(chǎn)業(yè)集動畫技術、計算機技術、軟件技術于一體,可以有力拉動高新技術產(chǎn)業(yè)的發(fā)展。

      自計算機技術出現(xiàn)以來,游戲工業(yè)就保持著強勁的發(fā)展勢頭,各類相關技術和開發(fā)方法都取得了較大進步。但是,從“PC時代”到“移動互聯(lián)網(wǎng)時代”的轉變,也為傳統(tǒng)游戲產(chǎn)業(yè)帶來了新的挑戰(zhàn)。目前,各類游戲都在積極推出基于手機等移動端的新版本,以適應人們對移動化應用的需求。在眾多游戲開發(fā)引擎中,Cocos系列游戲引擎對于移動設備的支持相對較為完善,可便捷地發(fā)布針對Android、IOS等平臺的應用。Cocos Creator游戲引擎是在Cocos2D-X基礎之上開發(fā)的具備可視化編輯功能的游戲引擎,它在保證Cocos底層引擎功能的基礎之上,以可視化編輯的方式簡化了游戲開發(fā)的過程,非常適合移動互聯(lián)網(wǎng)時代高迭代的效率要求。為深入分析移動端游戲的開發(fā)原理,本文基于Cocos Creator游戲引擎,對一款經(jīng)典的飛機戰(zhàn)斗類游戲的實現(xiàn)機制進行了研究。一體化的開發(fā)流程則能將資源編輯、UI制作、代碼編寫、調試、發(fā)布等各部分工作統(tǒng)一以來,便于團隊合作,從而提高開發(fā)效率。

      目前,Cocos Creator游戲引擎支持JavaScript和TypeScript兩種腳本語言。能夠在項目開發(fā)完成后,通過與不同平臺的SDK對接,實現(xiàn)Android、IOS、Web甚至微信等平臺上的APP發(fā)布,從而真正做到硬件及軟件層面的跨平臺。在本文研究中,使用JavaScript作為開發(fā)語言,研究了相關的游戲邏輯。

      二、CocosCreator游戲引擎介紹

      Cocos Creator游戲引擎是Cocos系列游戲引擎中較新的一款產(chǎn)品,它基于Cocos2D-X,能提供Cocos引擎的大部分核心功能。此外,人性化的編輯界面可將開發(fā)者從繁瑣的界面、動畫等常規(guī)功能中解放出來,使其能專注于游戲邏輯本身的開發(fā)。而

      三、游戲功能及原理分析

      (一)游戲功能

      本文所研究的是一款經(jīng)典飛機大戰(zhàn)游戲,游戲中的己方飛機由玩家操控,敵方飛機由程序邏輯自動生成,可以被視為NPC(非玩家角色)。乙方飛機有一定的生命值,在游戲進行過程中如果被敵方飛機擊中,則生命值降低,降為零時游戲結束。若敵方飛機被己方擊中,則直接爆炸銷毀。為提高游戲的真實性,敵方子彈與己方子彈如果發(fā)生碰撞則相互銷毀,產(chǎn)生爆炸效果。玩家對飛機的操控通過編寫的操控控件來實現(xiàn),該控件可適應手機終端的觸控拖動事件,能通過錨點的拖動來實現(xiàn)飛機飛行方向和速度的控制。每擊中一架敵方飛機,得分分數(shù)增加,游戲結束時的分數(shù)代表本輪游戲的成績。

      (二)工程架構

      不管游戲的邏輯如何,界面上所呈現(xiàn)的無非是飛機子彈的運動、各種特效以及用于用戶交互的UI控件。為了使結構更加清晰,這些元素在架構上可進行分離,構成“界面表現(xiàn)與交互層”。而對于游戲的規(guī)則和邏輯,則主要由程序員通過代碼層面的算法來實現(xiàn)。因此,該層可作為“邏輯運行層”,主要承擔游戲邏輯的運行。而游戲邏輯運行的直接結果,就是游戲中相關數(shù)據(jù)值的改變,例如生命值、得分、時間等,這些數(shù)據(jù)的存儲和維護就依賴于“基礎數(shù)據(jù)層”。

      因此,“界面表現(xiàn)與交互層”、“邏輯運行層”以及“基礎數(shù)據(jù)層”,它們共同構成了游戲工程的主體框架。

      1.界面表現(xiàn)與交互層。負責對各種界面元素進行呈現(xiàn),并承擔基于UI控件的用戶交互。該層的渲染功能、飛機、子彈的運動、動畫,以及爆炸特效等主要借助于Cocos Creator的表現(xiàn)層來實現(xiàn);UI控件則由Cocos Creator中基本的節(jié)點元素通過組合的方式構成,完成用戶對飛機操控的交互功能。

      2.邏輯運行層。該層主要實現(xiàn)游戲的運行邏輯,在本文所述游戲中,子彈的發(fā)射、子彈與飛機之間的碰撞檢測、生命值及游戲得分的變化等,都由此層的邏輯來控制。這些邏輯主要通過游戲開發(fā)者所編寫的腳本語言來實現(xiàn),操控邏輯則通過“交互層”觸發(fā)的事件來激活。

      3.基礎數(shù)據(jù)層。維護游戲運行時的狀態(tài)數(shù)據(jù),包括元素的位置、速度、運動方向、分數(shù)值等。這些數(shù)據(jù)既是邏輯層的輸出,也為邏輯層提供必要的數(shù)據(jù)支撐,同時也是表現(xiàn)層進行數(shù)據(jù)呈現(xiàn)的數(shù)據(jù)基礎。

      (三)實現(xiàn)步驟

      游戲的輸入為用戶的UI交互操作,輸出為游戲的運行狀態(tài)以及呈現(xiàn)給玩家的分數(shù)、成敗等運行結果。

      結合游戲的運行邏輯,可設計如下的實現(xiàn)步驟對游戲的過程進行描述:

      步驟1:根據(jù)元素的圖片創(chuàng)建飛機、子彈、爆炸效果等節(jié)點或動畫,并創(chuàng)建自定義的方向觸控控件等游戲必須的節(jié)點。

      步驟2:針對主場景的運行,創(chuàng)建腳本GameCtrlJs.js,并將其作為腳本組件掛載到主場景中的Canvas下,該腳本負責對游戲主邏輯進行控制。

      步驟3:對于己方飛機、敵機、子彈、爆炸效果、等分別創(chuàng)建對應的腳本,并掛載到對應節(jié)點上,這些腳本負責本節(jié)點的行為邏輯,例如爆炸結束后的實例銷毀、飛機定期發(fā)射子彈等。

      步驟4:當玩家點擊游戲開始時,加載主場景,在GameCtrlJs腳本中通過schedule方法定期調用創(chuàng)建敵機的函數(shù)。同時,敵機依賴自身掛載的控制腳本也定期發(fā)射子彈。敵我雙方的飛機和子彈分別歸屬于不同的分組,不同分組用于碰撞時的對象檢測。

      步驟5:玩家通過觸控控件對己方飛機的方向和速度進行控制,并可觸發(fā)射擊功能。射擊時動態(tài)創(chuàng)建己方子彈,子彈通過cc.moveBy動作進行位置的移動,當接觸到敵方子彈或者飛機時,雙方節(jié)點銷毀并同時播放爆炸的動畫。

      步驟6:通過敵我雙方碰撞處理的邏輯,動態(tài)調整生命值和得分,將其顯示到主場景對應的控件上。如果生命值降為零,則游戲結束,將跳轉到ReadyScene場景的按鈕進行Active激活顯示。

      四、技術實現(xiàn)機制

      (一)碰撞檢測機制

      在本文所述的飛機大戰(zhàn)游戲中,最為關鍵的是敵我雙方的飛機和子彈在運動中相遇時的碰撞檢測,它將直接影響擊毀或是得分的游戲邏輯,游戲通過Cocos Creator內置的物理引擎實現(xiàn)該功能。腳本中利用cc.director類的getCollisionManager()方法取得碰撞檢測管理器,并將其enable屬性設置為true。同時,將敵我雙方的飛機、子彈分別設置為歸屬于不同的分組,對應分組之間設置碰撞檢測標志。編寫碰撞檢測響應函數(shù),實現(xiàn)相應的游戲邏輯。

      (二)觸控方向控件的實現(xiàn)

      移動設備不同于傳統(tǒng)電腦,它更多的是利用觸摸屏而非鍵盤進行UI交互。因此,需要設計觸控控件對飛機的運動方向和速度進行控制。本文在控件中設置錨點,利用節(jié)點(即該錨點)的觸控事件響應錨點的拖動操作。錨點的拖動方向以及偏離中心點的位移大小則用向量來表示,向量的方向和模就代表操作飛機的方向和速度。該自定義控件也可導出為資源,供其他項目復用。

      五、總結

      在移動設備日益普及的背景下,開發(fā)能運行于不同移動終端的游戲產(chǎn)品,是游戲產(chǎn)業(yè)必須面對的問題。本文基于Cocos Creator游戲引擎,以一款飛機大戰(zhàn)游戲為例分析了移動平臺下游戲開發(fā)的實現(xiàn)機制,并對碰撞原理、觸控操作等技術進行了探討,相關研究內容對于移動平臺環(huán)境下的游戲開發(fā)具有一定借鑒意義。

      猜你喜歡
      碰撞檢測控件子彈
      全新預測碰撞檢測系統(tǒng)
      基于BIM的鐵路信號室外設備布置與碰撞檢測方法
      三顆子彈
      學生天地(2019年33期)2019-08-25 08:56:14
      子彈VS防彈
      Karma:讓子彈飛一會兒
      汽車觀察(2019年2期)2019-03-15 06:00:20
      關于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      Unity3D中碰撞檢測問題的研究
      電子測試(2018年1期)2018-04-18 11:53:00
      子彈
      BIM技術下的某辦公樓項目管線碰撞檢測
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      安龙县| 天气| 黄龙县| 民权县| 罗平县| 天台县| 天峨县| 隆尧县| 正镶白旗| 武邑县| 海原县| 正镶白旗| 宽甸| 凤城市| 祥云县| 靖边县| 若尔盖县| 改则县| 鞍山市| 永清县| 措勤县| 南城县| 乐安县| 广安市| 遂平县| 黑山县| 大洼县| 富顺县| 依安县| 广灵县| 读书| 荃湾区| 平昌县| 安顺市| 青海省| 和林格尔县| 都昌县| 焦作市| 黄浦区| 乐平市| 句容市|