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—),男,湖南桃江人,講師,研究方向:智能嵌入式技術、人機交互技術。

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

主站蜘蛛池模板: 狠狠色香婷婷久久亚洲精品| 欧美高清三区| 四虎成人精品在永久免费| 99色亚洲国产精品11p| 久久综合激情网| 久久人人97超碰人人澡爱香蕉| 粉嫩国产白浆在线观看| 71pao成人国产永久免费视频| 超清人妻系列无码专区| 国产美女一级毛片| 成人午夜久久| 99ri精品视频在线观看播放| 国产拍揄自揄精品视频网站| 精品1区2区3区| 亚洲精品成人片在线观看| 精品国产电影久久九九| 国产精品欧美在线观看| 中文纯内无码H| 亚洲国产在一区二区三区| 亚洲国产天堂久久综合226114| 欧美激情视频二区| 国产欧美性爱网| 国产极品粉嫩小泬免费看| 草逼视频国产| 成色7777精品在线| 欧美中文字幕在线视频| 午夜激情婷婷| 麻豆精品在线| 夜夜操天天摸| 97在线观看视频免费| 国产一级毛片网站| 无码 在线 在线| 色丁丁毛片在线观看| 亚洲天堂精品视频| 91福利在线看| 久久久久久久久久国产精品| 日韩久久精品无码aV| 国产美女精品在线| 亚洲天堂视频在线观看免费| 无码福利日韩神码福利片| 狠狠色综合久久狠狠色综合| 日本国产精品| 浮力影院国产第一页| 国产成人高清在线精品| 午夜不卡福利| 色婷婷电影网| 亚洲第一在线播放| 亚洲 日韩 激情 无码 中出| 国产成人91精品| 狠狠色香婷婷久久亚洲精品| 欧美中文字幕在线播放| 91午夜福利在线观看| 日韩一区二区在线电影| 女同国产精品一区二区| 亚洲国产理论片在线播放| av手机版在线播放| 欧美成人综合视频| 国产尤物在线播放| 国产第一页免费浮力影院| 欧美在线中文字幕| 欧美国产日韩在线| 免费视频在线2021入口| 国产精品久久久久久久久久久久| 欧美国产日韩在线播放| 另类综合视频| 国产人碰人摸人爱免费视频| 免费在线成人网| 国产h视频在线观看视频| 美女无遮挡免费网站| 在线观看国产精品日本不卡网| 亚洲无码日韩一区| 亚洲成人黄色网址| 九九精品在线观看| 日韩无码白| 久操线在视频在线观看| 日本在线免费网站| 欧洲一区二区三区无码| 久久精品一品道久久精品| 国产在线观看精品| 91精品专区国产盗摄| 亚洲中文字幕在线精品一区| 怡春院欧美一区二区三区免费|