2012-03-19 40 views
14

我知道cocos2d是非常簡單的API,我可以用它來做簡單而巨大的2D,甚至有時甚至是3D遊戲/應用程序。我也明白OpenGL它更復雜,它是更低層次的API等。OpenGL vs Cocos2d:選擇什麼?

問題:
實施2D/3D遊戲有什麼更好?
爲什麼我們需要學習OpenGL,如果我們有像cocos2d這樣的簡單框架?
你可以用OpenGL做什麼,你不能用cocos2d做什麼?

在此先感謝!

回答

21

什麼是實現2D/3D遊戲更好?

  • 很難說,但更高層次的API總是在那裏讓您更容易。例如,你正在寫一個2D射擊。你可能會使用遊戲循環,你會想要使用精靈並在屏幕上移動。您可能希望發生爆炸等動畫。您最終會編寫自己的更高級別的API來完成這些任務。 Cocos2D已經爲您解決了這些問題。任何其他框架世界都應該解決它。

爲什麼我們需要學習OpenGL,如果我們有像cocos2d這樣的簡單框架?

  • 如果您想要調整框架的標準行爲,特別是繪圖部分,您應該進入openGL。如果有什麼你不喜歡的東西,你可能會發現自己重新實現了一個基礎框架類。例如,查看Cocos2D 2.0中使用的着色器。如果您喜歡某種特殊的混合模式,如調色效果,則不會免費獲得。 CCSprite有一個顏色屬性,但這可能不是您期望的結果。所以你必須編寫你自己的着色器,並將它插入你想以不同方式顯示的精靈。

你可以用OpenGL做什麼,你不能用cocos2d做什麼?

  • 這種比較並沒有真正奏效,因爲cocos2d的方便opengGL的繪圖部分,建立更高層次的API,讓您的生活更輕鬆的遊戲開發商。
+0

非常感謝! – 2012-03-19 10:44:11

13

Cocos2d是圍繞OpenGL的二維特徵(如:http://www.cocos2d-iphone.org/about)的封裝。在其底下,它本身使用OpenGL ES來實現其功能。這很好,因爲這意味着性能開銷會很小,因此您可以開始使用其更簡單的API,而不必沉浸在OpenGL的絕對更大的學習路徑中。

然而,它只有強大的2D支持,如果你打算寫更高版本的3D遊戲,你會失去Cocos2d的所有優點:你爲什麼要用2D引擎重寫3d渲染引擎,引擎蓋下使用了非常強大的3D引擎?你會因爲大量不必要的工作而失去表現。

所以更簡單的答案是:對於2D OpenGL的Cocos2d。

如果你想開始的OpenGL ES,這對於初學者來說是非常好的教程:http://iphonedevelopment.blogspot.it/2009/05/opengl-es-from-ground-up-table-of.html

+0

非常感謝! – 2012-03-19 10:44:21

+0

@MrTJ所以你不會推薦看看Cocos3D? http://brenwill.com/cocos3d/ – 2012-03-20 08:06:55

+0

如果您主要計劃開發2D遊戲,那麼這將是一個好主意,它肯定會爲您提供更快的結果。稍後,當您對遊戲開發有所瞭解並想開發3D遊戲時,您可以尋找其他支持3D的框架,或者直接爲Open GL編寫您自己的框架。 – MrTJ 2012-03-20 09:56:10