您好,登錄后才能下訂單哦!
一、問題
當(dāng)下,使用COCOS2D-X開發(fā)的同學(xué)看上去不少了,但奇怪的是,在中文網(wǎng)絡(luò)搜索中使用EasyNDK-for-cocos2dx的介紹資料見之極少?。?/p>
所謂的跨平臺(tái)開發(fā),COCOS2D-X+Cocos Studio盡管節(jié)約了開發(fā)人員不少時(shí)間,但是大凡被這個(gè)“利器”吸引的人在投入后可能都沒有感覺過輕松。其中一個(gè)主要原因就是,如果你選擇使用C++途徑的COCOS2D-X+Cocos Studio游戲開發(fā),真正要實(shí)現(xiàn)跨多種平臺(tái)時(shí),你還要學(xué)習(xí)使用Android平臺(tái)相關(guān)的Java,iOS平臺(tái)相關(guān)的Objective-C和Windows Phone平臺(tái)相關(guān)的C#。至于需要學(xué)習(xí)這些內(nèi)容的多還是少,則與開發(fā)者的開發(fā)進(jìn)度密切相關(guān)??傊?,當(dāng)然是越熟練越好了。
本文介紹的是基于上述環(huán)境開發(fā)時(shí)后期的集成第三方平臺(tái)時(shí)所要解決的一大難題。我當(dāng)下想集成的是有米積分墻廣告SDK。但遺憾的是,有米官方僅提供了基本方式的集成支持DEMO,即是在Android平臺(tái)這塊,他們僅提供了Andoid平臺(tái)Java平臺(tái)技術(shù)集成有米積分墻廣告SDK有關(guān)示例;而在iOS平臺(tái)這塊,也僅提供了iOS平臺(tái)Objective-C平臺(tái)技術(shù)集成有米積分墻廣告SDK有關(guān)示例。因此,這下慘了!需要開發(fā)人員對(duì)于Andoid平臺(tái)Java技術(shù)和iOS平臺(tái)Objective-C技術(shù)都要有深入了解。
二、辦法
在研究上述問題時(shí),我無(wú)意間搜索到了EasyNDK-for-cocos2dx這個(gè)東西。老實(shí)說(shuō),真是感覺太幸運(yùn)了!
有了EasyNDK-for-cocos2dx,盡管還需要我們了解Java技術(shù)和Objective-C,但是簡(jiǎn)單與省事多了。
(1)老辦法
以Android平臺(tái)為例,要實(shí)現(xiàn)C++與Java代碼的互操作,必須借助于JNI及NDK,操作繁雜,且相當(dāng)容易出錯(cuò)。對(duì)于,iOS平臺(tái),則需要開發(fā)者非常了解Objective-C與C++混合編程技術(shù)。
例如,在Android版本程序中需要從Cocos2d-x的C++端按鈕點(diǎn)擊觸發(fā)Java端的一個(gè)彈出屏幕,這時(shí)需要使用Android端多線程技術(shù)編程--這一塊無(wú)法逃避。相關(guān)的代碼示例,對(duì)于最基本的C++與Java代碼的互操作倒是還不少,但是對(duì)于實(shí)戰(zhàn)中復(fù)雜情況則少得多了(甚至很難找到較完整的示例)。
(2)Easy-NDK新辦法
Easy-NDK開發(fā)者可以說(shuō)為全球cocos2d-x開發(fā)者作出一個(gè)重大貢獻(xiàn),值得大力表?yè)P(yáng)。開發(fā)者正是從上述問題的復(fù)雜中體會(huì)到這一過程的艱難,編寫出這個(gè)工具。具體地說(shuō),他使用大家,無(wú)論在哪一平臺(tái),都易于理解的消息通信機(jī)制,以一種統(tǒng)一方案和極簡(jiǎn)化的代碼徹底地解決了上面基于cocos2d-x開發(fā)后期可能面臨的技術(shù)難題。
更為值得欣慰的是,針對(duì)2.x和3.x都有了版本支持,都發(fā)布在github平臺(tái)上。具體DEMO剖析,先不解決了(不好意思,因?yàn)檫€有其他一些緊急任務(wù)要做)。地址如下:
2.X版本:https://github.com/aajiwani/EasyNDK-for-cocos2dx
3.x版本:https://github.com/alfonsocejudo/EasyNDK-for-cocos2dx3
我現(xiàn)在已經(jīng)成功制作了2.x版本針對(duì)Android平臺(tái)的使用(我的應(yīng)用中集成有米積分墻),對(duì)于iOS平臺(tái),相信也是EASY。所有這些在分析幾遍DEMO后,你需要的僅僅是一些復(fù)制操作而已,再加幾句簡(jiǎn)單的代碼調(diào)用。
無(wú)論老手還是新手,抓緊去試試吧,1個(gè)小時(shí)左右時(shí)間就夠了;否則,你會(huì)很后悔。
三、畫蛇添足
前面我研究Mob的ShareSDK時(shí)發(fā)現(xiàn)他們的跨平臺(tái)方案也相當(dāng)精簡(jiǎn),看出來(lái)其SDK開發(fā)者對(duì)于上述三大語(yǔ)言把握相當(dāng)了得。從其源碼分析來(lái)看,懷疑他們也借用了EasyNDK類似思想!有好事者,去看看吧。
四、參考資料
1,http://www.tairan.com/archives/3333。
2,http://www.tuicool.com/articles/JN3URzr。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。