2013-10-13 69 views
3

Here我看到以下內容:Cocos2Dx和Cocos2d-html5的代碼相同嗎?

....的Cocos2D-X的團隊是在一種叫做 「JavaScript進行了cocos2d結合」 的工作。這意味着你在Cocos2d-html5引擎上運行的相同代碼可以在沒有或幾乎沒有修改的情況下在Cocos2d-X和Cocos2d-iPhone上完美地工作。所有這一切都意味着「在移動電話上幾乎本土的快速」。

我不能說的是,如何用一種語言編寫的代碼可以翻譯成另一種語言?它們是否意味着有一種工具可以作爲Cocos2d-html5遊戲的輸入JavaScript代碼並將其轉換爲C++ Cocos2dx代碼或向後? EIDT:我可以輕鬆地將用Cocos2Dx編寫的C++遊戲移植到Cocos2D-html5中嗎?我必須爲此做些什麼?

回答

3

的Cocos2D-X和Cocos2d-HTML5共享相同的JavaScript API,並寫入給開發者使用JavaScript編寫代碼的優勢,它會與這兩個框架的工作。

至於第二個問題,Cocos2d-html5本地運行Javascript,而Cocos2d-x使用SpiderMonkey(由Brendan Eich編寫的C/C++的Javascript引擎)來運行您的Javascript代碼。

雖然,有一件重要的事情要考慮。開發使用本地語言和API的遊戲花費較少的時間,便於調試和易於擴展性和維護。所以,在我看來,如果遊戲僅適用於iOS,應該使用cocos2d-iphone,如果遊戲在多平臺上,則使用cocos2d-x,如果遊戲的主要目標是web,則使用cocos2d-html5。

+0

因此,如果我的目標網頁,iOS和Android,那麼對我來說最好的選擇將是寫在JS的遊戲? – Narek

+0

沒錯。你的大部分JS代碼都可以用於iOS和Android,但像Steffen說的,你仍然需要在某些領域和功能上進行調整。 – nomann

3

這意味着cocos2d-x和cocos2d-html都使用相同的JavaScript API。因此,在理想情況下,相同的JS代碼在html5上運行,而另一次在-x引擎上運行。

但是,仍然可能存在差異,因爲幕後的實現可能與每個引擎有微妙的(或不那麼微妙)不同。並非所有功能(即觸摸輸入,加速計,着色器)都可以在每個引擎上使用。因此,措辭「很少修改」。

但是,如果您的主要目標不是網絡,那麼使用JS API就沒什麼意義了,因爲它增加了一個額外的層,使其更難調試代碼問題,並且與直接編寫相比,整體性能受到影響(使用C++)爲-x。

+0

我還是不明白。我有一個JS代碼的變量定義,因爲在JS中應該(用'var' ...)。下一步是什麼?我的意思是你能想出一個流量的小例子嗎? – Narek

+2

我可以輕鬆將用Cocos2Dx編寫的C++遊戲移植到Cocos2D-html5中嗎?我必須爲此做些什麼? – Narek