亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        石倩倩

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

        0 引言

        目前的智能終端的應(yīng)用開發(fā)技術(shù)作為移動互聯(lián)網(wǎng)鏈上的關(guān)鍵環(huán)節(jié),其關(guān)鍵技術(shù)的突破對于整個產(chǎn)業(yè)鏈健康和快速發(fā)展具有重要意義。智能終端應(yīng)用開發(fā)技術(shù)基本都是針對具體操作系統(tǒng)平臺提供針對性的開發(fā)語言和工具進行開發(fā),開發(fā)者針對一個操作系統(tǒng)開發(fā)應(yīng)用后,需要花費大量的時間和精力進行跨平臺移植工作,導(dǎo)致開發(fā)周期長,開發(fā)門檻高。對于一個公司,甚至?xí)胁煌牟块T去開發(fā)不同操作系統(tǒng)上的應(yīng)用。而對于開發(fā)應(yīng)用的公司來說,這些主流的操作系統(tǒng)都是不能舍棄的,誰也不能預(yù)測未來到底會朝向哪里發(fā)展,同時用戶對于不同操作系統(tǒng)有不同的偏愛,我們無法說明哪一個更好或者更加優(yōu)質(zhì)。以開發(fā)游戲公司為例,要去為每個操作系統(tǒng)分別,單獨的去開發(fā)游戲應(yīng)用來說,代價太高。而基于跨平臺引擎去開發(fā)應(yīng)用能夠大大減少開發(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)中編輯和調(diào)試,也可以很方便的移植進PC,平板,和智能電視中。

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

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

        1.4 Cocos2d-x 游戲引擎的劣勢

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

        2 基于Cocos2d-x 游戲的設(shè)計

        2.1 游戲的目標(biāo)

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

        2.2 中心管理器類

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

        2.2.1 中心管理器類的設(shè)計

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

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

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

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

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

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

        切換到下一個場景。

        場景的返回方法。

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

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

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

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

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

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

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

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

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

        2.3 游戲主體場景中層的設(shè)計

        2.3.1 層的概念

        CCLayer 是處理玩家觸摸事件的CCNode 子類。它隸屬于場景之下的游戲元素,同時知道怎樣渲染自己??梢孕薷乃耐该鞫龋螒蛲婕揖涂梢钥吹疆?dāng)前層下面的其他層。由于CCLayers 在我們定義游戲的外觀和行為方面非常有用,所以,需要花很多編程時間編寫CCLayer 子類。

        2.3.2 游戲中層的設(shè)計

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

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

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

        層次結(jié)構(gòu)如圖2 所示:

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

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

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

        this->addChild(backGroundLayer);

        this->addChild(buttonLayer);

        this->addChild(spriteLayer);

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

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

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

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

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

        2.4.2 其他智能設(shè)備的移植

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

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

        3 總結(jié)與展望

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

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

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

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

        猜你喜歡
        跨平臺引擎智能
        智能前沿
        文苑(2018年23期)2018-12-14 01:06:06
        跨平臺APEX接口組件的設(shè)計與實現(xiàn)
        智能前沿
        文苑(2018年19期)2018-11-09 01:30:14
        智能前沿
        文苑(2018年17期)2018-11-09 01:29:26
        智能前沿
        文苑(2018年21期)2018-11-09 01:22:32
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實現(xiàn)
        基于OPC跨平臺通信的電機監(jiān)測與診斷系統(tǒng)
        基于B/S的跨平臺用戶界面可配置算法研究
        欧美老妇人与禽交| 成人日韩精品人妻久久一区| 一本色道久久88加勒比—综合| 色屁屁www影院免费观看入口| 国产大片黄在线观看| 国产在线 | 中文| 伊伊人成亚洲综合人网7777| 999国产精品视频| 丰满人妻中文字幕乱码| 亚洲精品在线一区二区三区| 国产一级一级内射视频| 国产电影无码午夜在线播放| 亚洲精品无码mv在线观看| 精品欧美在线| 一区二区三区在线视频爽| 在线观看视频日本一区二区| 久久久www成人免费精品| 正在播放亚洲一区| 国产乱老熟视频乱老熟女1| 亚洲成人中文字幕在线视频| 久久无码专区国产精品s| 999精品全免费观看视频| av免费在线观看在线观看| 老女人下面毛茸茸的视频| 亚洲中文字幕一区精品自拍| 国产午夜亚洲精品午夜鲁丝片| 久久99热精品免费观看欧美| 国产精品国产三级国产专播| 在厨房被c到高潮a毛片奶水| 久久国产精久久精产国| 国产自精品在线| 久久本道久久综合伊人| 性高朝大尺度少妇大屁股| 国产精品视频yuojizz| 少妇隔壁人妻中文字幕| 手机在线看片| 性欧美大战久久久久久久久| aⅴ色综合久久天堂av色综合| 国产精品亚洲精品一区二区| 男ji大巴进入女人的视频小说| 国产成人啪精品|