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

基于Cocos2D—x引擎的Lua消除游戲設計與實現

2014-04-29 07:38:39胡祝華左江洋趙瑤池
電子世界 2014年19期

胡祝華 左江洋 趙瑤池

【摘要】為了實現一個消除類手機游戲,以Cocos2D-x作為游戲引擎,通過Lua腳本語言調用Cocos2D-x引擎接口,利用table結構及重寫的touch函數來實現游戲的核心模塊。測試結果表明:游戲運行流暢,響應用戶觸碰及時準確,達到了設計目標。

【關鍵詞】Cocos2D-x;Lua;消除游戲

1.引言

近年來基于Android的游戲軟件層出不窮,例如耳熟能詳的捕魚達人2,龍之力量以及三國群毆傳等。發布在全球各大應用商城,累計下載量超過5億次。這些游戲的普遍共性是:操作簡單,娛樂性強[1]。

在基于Android的2D游戲開發中,Cocos2D-x是移動平臺中使用最普遍、功能非常強大的游戲引擎[2]。在國內基于Cocos2D-x引擎開發的游戲有很多[3,4],也有基于Cocos2D-x的二次開發工作[5]。本文基于Cocos2D-x引擎利用Lua腳本語言[6]設計和實現了一個消除類游戲,游戲中將800*480的屏幕分為了60個80*80的小方格子。每個格子都有一只會跳動的地鼠并且身上會標有1-8中的任意數字,玩家可以通過記憶地鼠身上的數字來依次的將地鼠消除。通過測試,該游戲具有簡易、好玩、消除動作執行準確及時等特點。

2.Cocos2D-x框架及Lua語言

Cocos2D-x引擎十分強大,里面集成了很多2D手機游戲需要的接口。例如渲染框架,動作功能,用戶交互,內存管理機制等等,通過這些接口可以實現場景的跳轉,精靈的控制和特效的添加等,這為游戲開發提供了十分便利的條件,Cocos2D-x引擎封裝模塊及調用關系[7]如圖1所示。Cocos2D-x引擎中有四個重要的角色:導演,場景,層和精靈。這些角色完成自己的工作從而展現給玩家完美的游戲體驗。Cocos2D-x引擎里面的運行機制和拍電影有很大的類似之處。導演統領全局,控制了多個場景的切換,每個場景上面可能又會有多個層,而演員(也就是精靈)工作在層上面,展現出自己的動作。這樣的流程會使得設計井然有序、分工明確。

圖1 引擎封裝模塊及調用關系

隨著Lua腳本語言的發展,Lua在游戲開發中展現出了自己鮮明的特點,比如語法簡單、易于移植和易于使用等。在Cocos2D-x游戲開發中通過Lua調用引擎中的c++接口函數,二者結合來開發手機游戲即可以大大縮短開發周期,也可以達到預期的游戲開發效果。

3.消除小游戲設計

3.1 流程設計

利用Cocos2D-x的框架,在一個場景中利用Lua寫的邏輯實現地鼠的消除。當用戶進入游戲中時,系統會創建場景和層,加載地鼠精靈,然后便是等待用戶實施touch事件,游戲操作流程圖2所示。

當用戶進入游戲,呈現在用戶眼前的就是標有數字的能夠跳動的八只地鼠,當用戶點擊標有數字1的地鼠后,表明用戶已經將8只地鼠的位置記住,此時,將地鼠精靈身上的數字去掉。然后,當用戶每次觸摸屏幕時候,touch函數就要獲取手指的坐標,通過這個坐標來做出判斷用戶是否點擊到了地鼠精靈上,并且點擊的順序是否正確。最終給出地鼠精靈是否被消除的響應。

圖2 游戲流程圖

3.2 關鍵技術細節

(1)地鼠消除流程

在這個游戲中,用Lua語言基于Cocos2D-x引擎實現了游戲的整個邏輯,其中導演、場景、層和精靈依次被創建出來。這里所用的touch并沒有調用引擎自身提供的Touch事件,而是重新開發了一個函數。其中除了業務邏輯外,也運用了Lua里面的table來存儲數據。

(2)地鼠消除算法

游戲中精靈的消除步驟如下:

1)當用戶進行消除操作時,獲得用戶此時點擊的坐標,用這個坐標和精靈的坐標進行比較,精靈的坐標存儲在table表中。

2)將屏幕分為60塊,用來隨機的放置8個地鼠精靈,當精靈全部顯示出來后,用table紀錄下精靈的x,y坐標。當用戶點擊了第一只地鼠后,其余地鼠身上的數字被覆蓋掉。

3)用戶憑記憶消除其他地鼠。當用坐標確認了用戶點中地鼠精靈后,還需要做出一個點擊順序的判斷,即是否是按著1至8的順序依次點擊的地鼠,如若不滿足這個條件,地鼠當然也不能夠被消除。也就是說在touch里面設定了兩個條件,首先,用戶需要點擊到地鼠精靈。其次,用戶要按照正確的順序點擊才能夠消除地鼠,二者缺一不可。當這兩個條件均已達到時,我們先將地鼠從table表中刪除掉,再將這個精靈從當前層中去掉,如此,則達到了消除的效果。

(3)游戲界面設計

Cocos2D-x以OpenglES為圖形庫,因此使用OpenglES坐標系。GL坐標系原點在屏幕左下角,x軸向右,y軸向上。本游戲將屏幕設置為800*480大小。(0,0)坐標為左下角,設置每個單元格大小為(80*80),用Lua中的table結構來保存位置信息。屏幕分格如圖3所示。

圖3 游戲屏幕分格及坐標示意圖

4.開發環境與配置

軟,硬件環境及必要的設置包括以下幾點:

(1)硬件環境:PC(Inter(R),Core(TM)i5

-3230M CPU @2.60GHZ,2.56GB內存),Andorid手機。

(2)軟件環境:操作系統選用Win7 64位,開發平臺為Visio studio 2013,android ? ? 4.2 SDK,Cocos2D-x 3.2,python 2.7。

(3)開發環境配置:在Cocos2D-x 3.2的版本中取消了Visio studio 2013模板創建項目的方法,而是使用python腳本創建項目,因此需要在計算機中配置python環境。

5.游戲測試效果

游戲開發項目打包成apk文件,安裝到真機上測試效果如圖4、圖5、圖6、圖7所示。

圖4 游戲開始狀態 ? ? ? ?圖5 游戲進行中狀態a

圖6 游戲進行中狀態b ? ? ? ?圖7 游戲結束狀態

6.結語

本文通過Cocos2D-x與Lua結合設計并開發的消除小游戲,展現了Android 2D游戲開發的基本流程,詳細介紹了其中的關鍵技術。這類記憶消除游戲對于開發青少年智力,增添生活樂趣都很有意義,本游戲實現了主要的消除功能。

參考文獻

[1]夏志海.基于Cocos2d-x的手機游戲坦克大戰的設計與實現[D].哈爾濱工業大學,2013.

[2]劉劍卓.cocos2d-x游戲開發技術精解[M].2013.

基金項目:海南省教育廳基金資助項目(項目編號:Hjkj2013-14、HNKY2014-18)。

作者簡介:胡祝華(1979—),男,湖南桃江人,講師,研究方向:智能嵌入式技術、人機交互技術。

通訊作者:趙瑤池,女,講師。

主站蜘蛛池模板: 国产偷国产偷在线高清| 看看一级毛片| 久久综合亚洲色一区二区三区| 性喷潮久久久久久久久| 人人妻人人澡人人爽欧美一区| 亚洲日本一本dvd高清| 国产精品 欧美激情 在线播放| 成年免费在线观看| 国产一区二区三区在线精品专区| 日韩久久精品无码aV| 国产精品露脸视频| 久久精品aⅴ无码中文字幕| 国产精品xxx| 久久精品无码一区二区国产区 | 成人无码一区二区三区视频在线观看| 91视频日本| 国产福利免费在线观看| 国产精品成人免费综合| 免费jizz在线播放| 亚洲天堂成人在线观看| 亚洲AV无码久久精品色欲| 国产一区二区人大臿蕉香蕉| 国产微拍精品| 日本中文字幕久久网站| 中文字幕2区| 91伊人国产| 粉嫩国产白浆在线观看| 伊人久久大线影院首页| 亚洲中文字幕97久久精品少妇| 国产白浆在线| 色亚洲成人| 午夜福利无码一区二区| 久久久受www免费人成| 九色综合伊人久久富二代| 亚洲色成人www在线观看| 精品91自产拍在线| 在线观看热码亚洲av每日更新| 欧美日韩一区二区在线免费观看| 国产亚洲高清在线精品99| 国产麻豆va精品视频| 啦啦啦网站在线观看a毛片| 国产三级a| 自慰高潮喷白浆在线观看| 国产微拍一区二区三区四区| 亚洲欧美成人在线视频| 午夜视频免费一区二区在线看| 午夜精品一区二区蜜桃| 中文国产成人久久精品小说| 亚洲伊人久久精品影院| 99在线视频网站| 五月天久久综合| 91在线免费公开视频| 日韩在线永久免费播放| 亚洲欧洲日产国产无码AV| 亚洲婷婷六月| 国产麻豆福利av在线播放| 毛片在线看网站| 97se亚洲| 欧美国产综合视频| 精品视频91| 亚洲日本一本dvd高清| 天堂av综合网| 日韩欧美综合在线制服| 国产主播喷水| 欧美日韩精品在线播放| 久久国产精品麻豆系列| 久久性视频| 欧美在线观看不卡| 真实国产乱子伦视频| 久久中文无码精品| 98精品全国免费观看视频| 91麻豆精品国产高清在线| 熟女视频91| AV片亚洲国产男人的天堂| 免费va国产在线观看| 亚洲精品在线影院| 无码精油按摩潮喷在线播放| 欧洲在线免费视频| 日韩亚洲综合在线| 国产免费人成视频网| 免费一级成人毛片| 亚洲性视频网站|