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

智能設備中跨平臺游戲框架的設計與實現(xiàn)

2014-01-03 06:36:40石倩倩
電子測試 2014年2期
關鍵詞:跨平臺引擎智能

石倩倩

(武漢郵電科學研究院,430074)

0 引言

目前的智能終端的應用開發(fā)技術作為移動互聯(lián)網(wǎng)鏈上的關鍵環(huán)節(jié),其關鍵技術的突破對于整個產(chǎn)業(yè)鏈健康和快速發(fā)展具有重要意義。智能終端應用開發(fā)技術基本都是針對具體操作系統(tǒng)平臺提供針對性的開發(fā)語言和工具進行開發(fā),開發(fā)者針對一個操作系統(tǒng)開發(fā)應用后,需要花費大量的時間和精力進行跨平臺移植工作,導致開發(fā)周期長,開發(fā)門檻高。對于一個公司,甚至會有不同的部門去開發(fā)不同操作系統(tǒng)上的應用。而對于開發(fā)應用的公司來說,這些主流的操作系統(tǒng)都是不能舍棄的,誰也不能預測未來到底會朝向哪里發(fā)展,同時用戶對于不同操作系統(tǒng)有不同的偏愛,我們無法說明哪一個更好或者更加優(yōu)質。以開發(fā)游戲公司為例,要去為每個操作系統(tǒng)分別,單獨的去開發(fā)游戲應用來說,代價太高。而基于跨平臺引擎去開發(fā)應用能夠大大減少開發(fā)的工作量,成本,以及開發(fā)周期。

1 跨平臺引擎介紹

1.1 什么是跨平臺游戲引擎

如果不使用跨平臺的游戲引擎去開發(fā)游戲,那么必須在不同的平臺,例如android,iOS,blackberry,windows phone 上單獨的去編寫代碼。跨平臺的優(yōu)勢就在于,它大大減小了開發(fā)人員的工作量。在開發(fā)過程中,可以只是用一種語言,同時進行一次編寫工作,再在不同的編譯環(huán)境下去編譯,編譯完成后生成不同運行環(huán)境的文件,就可運行在這些操作系統(tǒng)只上了。

1.2 什么是Cocos2d-x 游戲引擎

Cocos2d-x 提供的框架外,游戲可以寫在C++或者LUA 中,使用API 和Cocos2d-iPhone 完全兼容。Cocos2d-x 項目可以很容易地建立和運行在iOS,Android,黑莓Blackberry 操作系統(tǒng)和更多操作系統(tǒng)之上。Cocos2d-x 還支持Windows、Mac 和Linux 等桌面操作系統(tǒng),因此,我們可以編寫的源代碼很容易在桌面操作系統(tǒng)中編輯和調試,也可以很方便的移植進PC,平板,和智能電視中。

1.3 Cocos2d-x 游戲引擎的優(yōu)勢

作為Cocos2d 的C++版本,目前有大量Cocos2d 的經(jīng)驗分享。C++版本對于非本行業(yè)出身的人來說可能是一種福音。支持iOS、Android、Windows 等平臺,跨平臺開發(fā)者的福音。它是開源免費、易學易用、龐大的工具鏈支持。

1.4 Cocos2d-x 游戲引擎的劣勢

每個平臺有自己的特點,因此開發(fā)過程中有很多需要注意的地方。首先對于開發(fā)語言,Cocos2d-x 目前維護三種語言,C++,JS,C#。C#是專門為Windows phone7 設計的,這將導致原本用C++寫的代碼,在移植到Windows phone7 上需要做一個簡單的語言翻譯工作,JS 雖然可以跨平臺,但是HTML5 還不夠成熟,在PC 上效率完全很好,但是在手機,平板,智能電視上上則還有很多難題需要解決。

2 基于Cocos2d-x 游戲的設計

2.1 游戲的目標

這里給出一款游戲,名為“手指手紙”。該游戲基于Cocos2d-x 來設計游戲的框架。其思想是以廁所為主題,主頁面就是廁所的場景,不同的設施就是對于不同的場景的按鈕,當點擊馬桶是進入了模式的選擇。在模式場景中,“小試牛刀”、“娛樂自身”和“挑戰(zhàn)極限”對應于不同的模式。當用戶點擊任意一個模式后將進入游戲主體,出來一定張數(shù)的紙片,“小試牛刀”和“娛樂自身”模式中會記錄消除所有的紙片的時間。時間越少排名將越靠前。在“挑戰(zhàn)極限”模式中是指定的29s 內消除的張數(shù),張數(shù)越多排名越靠前。

2.2 中心管理器類

如上圖所示,一個簡單小游戲,卻有著很復雜的場景切換,例如結束場景,會根據(jù)不同情況切換到不同其他場景。如果這種切換工作都交由當前場景來完成,也就是在當前場景的類的方法中切換到其他場景,調用方法為“pDirector->replaceScene(pScene)”,顯然,這樣會更加復雜。而在這里,“手指手紙”游戲使用了一個負責管理整個游戲的管理器類。中心管理器幫助我們完成所有的工作。每個場景只負責加載層。在每個場景中不需要關心要切換到哪個場景。

2.2.1 中心管理器類的設計

下圖為“手指手紙”游戲主體框架的設計:

圖1“手指手紙”游戲主體框架的設計

游戲進入中心管理后進行的動作順序為:

加載配置文件。得到關于聲音的開或關,游戲模式的默認選擇,和金幣的數(shù)量等等配置。

進入logo 場景。首先需要加載所有的圖片。

根據(jù)用戶的選擇,切換到不同的場景接口方法。

切換到下一個場景。

場景的返回方法。

存儲和更新所有改變的數(shù)據(jù)。

在3 到6 中進行循環(huán),直到用戶退出游戲。

很顯然,在這個設計框架中,中心管理器類相當于調度器或分發(fā)器,同網(wǎng)絡互聯(lián)設備中路由器的功能一樣。它根據(jù)得到的信號或者值,去判斷進入哪個場景。這樣簡化了場景設計的復雜度。也方便了游戲軟件的再度利用。

在AppDelegate.cpp(Cocos2d-x 游戲的通用入口文件)中通過以下代碼進入管理類中,實現(xiàn)進入整個游戲的分發(fā)中心。

在run 方法里面不停的根據(jù)情況調用切換不同的場景。以下是run 方法實現(xiàn)內容:

在這個方法中,首先根據(jù)給定不同的場景ID 去判斷進入不同的場景,然后再在MainScenseRun()等這類方法中進行切換工作。

2.2.2 中心管理器框架設計的優(yōu)點

通過中心管理器類去調度和分發(fā)游戲的場景,實現(xiàn)了游戲的可擴展性。當需要升級游戲版本,或者添加更多的場景時,利用這樣的管理器類,方便了開發(fā)人員的維護。開發(fā)人員不需要再在其他的場景中進行再次添加和修改,只需要在中心管理器中添加場景的切換借口。

同時,由于很多的游戲都有類似處,例如同樣的logo 場景,類似的排行榜,商店等,當開發(fā)另一款游戲時,通過這個中心管理器框架,可以很方便的調用以前已經(jīng)實現(xiàn)好的場景功能,便于后續(xù)游戲的制作,和移植。

2.3 游戲主體場景中層的設計

2.3.1 層的概念

CCLayer 是處理玩家觸摸事件的CCNode 子類。它隸屬于場景之下的游戲元素,同時知道怎樣渲染自己。可以修改它的透明度,游戲玩家就可以看到當前層下面的其他層。由于CCLayers 在我們定義游戲的外觀和行為方面非常有用,所以,需要花很多編程時間編寫CCLayer 子類。

2.3.2 游戲中層的設計

以“手指手紙”游戲為例,場景大致可以分為三層: 背景層:背景圖片

菜單層:中間的各種菜單項

觸摸動作層:實現(xiàn)觸摸以及動作事件

層次結構如圖2 所示:

圖2“手指手紙”游戲場景中層的設計

當手指在屏幕上滑動,如果滑動的是最上面的一個精靈(手指在最上層紙片內滑動),精靈跟隨手指的滑動而滑動,如果是紙片滑動一定距離,它將飛速劃出屏幕,并消失。

在場景中,添加了3 個層,定義backGroundLayer 為背景層,buttonLayer 為菜單層,spriteLayer 為觸摸動作層。如下調用是添加了這三個層次。

this->addChild(backGroundLayer);

this->addChild(buttonLayer);

this->addChild(spriteLayer);

把所有同類型的實現(xiàn)放在同一層次,不同類型的放在不同層次,方便了層與層的隔離。使得了復雜的場景簡單化。

2.4 游戲部分呈現(xiàn)

2.4.1 智能手機中的呈現(xiàn)

“手指手紙”游戲在在經(jīng)過框架的設計,代碼的編寫,以及3大主流平臺的編譯,生成后,可有效的運行在智能設備當中。以下是游戲在智能手機中運行時的呈現(xiàn)畫面,智能電視,和平板中的運行效果并沒有太大差異。圖3 是游戲的最終實現(xiàn)畫面。其他的排行榜和商店這里沒有列出具體呈現(xiàn)。

圖3“手指手紙”游戲呈現(xiàn)

2.4.2 其他智能設備的移植

若要呈現(xiàn)在智能電視中和平板電腦中,不同的只是分辨率上的差異,Cocos2d-x 2.0 以上的版本提供了多分辨率的適應。因此可以不需要使用多套圖片資源,即能自適應進各種分辨率設備。setDesignResolutionSize()。

這個函數(shù)用于指定一個 OpenGL 視圖,然后將這個視圖映射到設備屏幕上。根據(jù)不同的設定,視圖會自動縮放顯示內容,為 Cocos2d-x 自適應多種分辨率提供了基本支持。

3 總結與展望

本文以一款游戲為例,介紹了如何使用跨平臺游戲引擎開發(fā),并且提供了基于它開發(fā)游戲的框架。本文使用的跨平臺引擎為Cocos2d-x 游戲引擎。針對不同類型的游戲,通常只需要單獨實現(xiàn)最上層的游戲邏輯系統(tǒng),而剩余的模塊完全可以復用。本文所提供的游戲框架方便再次使用,同時也更具擴展性。同時還實現(xiàn)了游戲的跨平臺運行,該游戲能良好的運行在iOS, windows phone ,以及android 系統(tǒng)上。讀者可在各平臺應用商店下載。

[1] 陸鋼,朱培軍,李慧云,文錦軍:智能終端跨平臺應用開發(fā)技術研究.電信科學[J],2012,(05)

[2] 百度文庫. 2013Q1 智能手機操作系統(tǒng)的市場排行榜.http://wenku.baidu.com/view/1b9c2e10b52acfc789ebc969.html

[3] 劉劍卓 .Cocos2d-x 游戲開發(fā)技術精解[M].北京:人民郵電出版,2013.105-108F

猜你喜歡
跨平臺引擎智能
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
跨平臺APEX接口組件的設計與實現(xiàn)
測控技術(2018年9期)2018-11-25 07:44:58
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設計與實現(xiàn)
基于OPC跨平臺通信的電機監(jiān)測與診斷系統(tǒng)
基于B/S的跨平臺用戶界面可配置算法研究
主站蜘蛛池模板: 亚洲天堂日韩av电影| 91成人免费观看| 欧美国产三级| 亚洲AⅤ无码国产精品| 中文字幕亚洲第一| 国产亚洲欧美在线中文bt天堂| 色综合久久久久8天国| 日韩欧美国产综合| 色综合网址| 午夜国产在线观看| 亚洲美女一级毛片| 伊人激情综合网| 女人18毛片水真多国产| 日韩一级毛一欧美一国产| 91午夜福利在线观看精品| 日本高清免费不卡视频| 极品尤物av美乳在线观看| 日韩视频免费| 欧美精品v| 老司机aⅴ在线精品导航| 久久久久久久久久国产精品| 亚洲精品视频网| 国产污视频在线观看| 免费久久一级欧美特大黄| 凹凸国产熟女精品视频| 亚洲αv毛片| 成人在线综合| 日韩精品毛片| 亚洲日韩欧美在线观看| 这里只有精品国产| 成人91在线| 久久人搡人人玩人妻精品| 日本亚洲最大的色成网站www| 国产日韩欧美精品区性色| 亚洲高清无码久久久| 国产喷水视频| 国产女人水多毛片18| 亚洲欧美日韩视频一区| 欧美日韩在线国产| 99在线视频网站| 拍国产真实乱人偷精品| 91伊人国产| 欧美精品在线免费| 亚洲综合经典在线一区二区| 久久国产精品国产自线拍| 国产av一码二码三码无码| 88av在线看| 国产成人亚洲毛片| 伊人91视频| 亚洲第一区在线| P尤物久久99国产综合精品| 国产一二视频| 国产精品福利社| 国产成人综合亚洲欧洲色就色| 久操线在视频在线观看| 人妻21p大胆| 欧美精品另类| 波多野结衣一区二区三区四区| h视频在线观看网站| 国产精品lululu在线观看| 久久天天躁夜夜躁狠狠| 激情乱人伦| 欧美一级99在线观看国产| 亚洲国产精品一区二区第一页免 | 污污网站在线观看| 精品自窥自偷在线看| a免费毛片在线播放| 国产成人高精品免费视频| 黄色成年视频| 久久99精品久久久大学生| 国产69囗曝护士吞精在线视频 | 91免费在线看| 九色综合伊人久久富二代| 国产麻豆另类AV| 日韩精品高清自在线| 日韩少妇激情一区二区| 毛片在线看网站| 3344在线观看无码| 欧美国产日韩在线观看| 黑人巨大精品欧美一区二区区| 国产乱人伦AV在线A| 91福利免费视频|