主推 iOS 但是考慮跨平台,可否跳過 Objective-C 而直接學 C++ 和 Cocos2d-X 呢?

完全新人,打算做個人開發者(遊戲開發),也考慮以後求職做程序猿。之前沒編程經驗,所以目前來說只能專攻一門語言。

主要還是考慮做ios開發,但是考慮安卓未來幾年巨大的市場,跨平台是必須的。

是學objective-c然後用cocos2d開發遊戲,熟練之後再學c++來開發安卓版本,

還是跳過objectiove-c和cocos2d,直接學c++和cocos2-x,直接出多平台app呢?

希望達人能給個指引。謝謝。


謝邀,同意1樓的回答。如果是遊戲產品的話,直接學c++和cocos2d-x就可以了。

這個不是大問題,技術隨時在進步和變化,選擇最適合的就行。

真正需要問自己的是,為什麼打算做遊戲開發(個人開發者)?是因為看到現在遊戲很火也想進去試水呢?還是說自己對遊戲開發有濃厚的興趣,想長期做這個事情。如果是前者,建議要慎重,水很深。如果是後者,放手去學吧。

當然,如果是求職目的,就要去了解下僱主的需求了。


不看看Qt?


做遊戲的話,這麼搞肯定沒問題的。

cocos2d-x有自己的界面系統ccMenu/ccLabel之類的,不需要用iOS的那一套。安卓的那一套也不用管,不同平台只要會最基本的工程配置就可以了。

不過,工程配置是省不了的。也花不了多大功夫,不會成為致命障礙。


如果你學過obj-c再學Cocoa2d-x的時候,你會發現這根本就是用c++寫了一個和obj-c幾乎一樣的東西,一點都不像c++


C++是傳統的穩妥的選擇,反而Objective-C比較另類,理解起來需要一些時間。Cocos2d-x目前的社區支持也非常豐富,是非常合理的選擇。

我個人的經驗寫一款iOS遊戲還是要跟OC打交道的,不能100%靠C++。比如付費/廣告/微博/文件管理/截圖/彈出警告窗,諸如此類的,所以建議不要真的覺得可以完全在windows下,完全不碰OC就可以做完一個遊戲了,混合編程肯定是必要的。

呃等等,樓主沒編程經驗……?那為啥要去啃這兩塊硬骨頭呀!從JAVA開始入門好一些吧?


其實就算學了C++, 以後開發的時候還是會用到objc和java的, 畢竟肯定有平台相關的東西需要接入, 所以不用太糾結, 學就是了, 作為主要的使用語言, 在學習精力上的確是可以向C++傾斜一些.


可以的,不過感覺c++學習成本比objective-c高多了?樓主都說以前沒有什麼編程經驗的話,我真真覺得學iOS與cocos2d會好很多= =。初學就別考慮什麼跨平台了,等你學好oc/cocos2d做出自己的遊戲了再去考慮平台移植吧。


完全可以直接學c++和cocos2d-x。現在做2d遊戲cocos2d-x跨平台是主流。

但是學習ios(obj-c)和android是很贊的加分項,特別是團隊中沒有人會的時候。開發cocos2d-x遊戲還是不可避免會需要開發支付、第三方sdk等功能,這時候ios(obj-c)和android是必須的。


專註於遊戲,且你想使用的遊戲引擎就是Cocos2d-X的話,不光可以先不學OC,直接用windows就可以上手

Cocos2d-X本就使用的C++

不過求職的話最好先看看當下主流使用的開發平台是什麼,畢竟有很多遊戲都是iOS首發

但是跨平台的時候,iOS平台的知識也是必需的


如果說你打算做應用而不是遊戲,那樣的話還是要了解ObjC和原生的SDK比較好,如果是開發遊戲真的區別不大,直接學cocos2d-x和直接學cocos2d-iphone學習成本差不多


程序員一年多,覺得C++是每個程序員應該學好的語言。


新手做遊戲開發?那先學cocos2dx和c++吧。這算是你做遊戲開發的敲門磚,而非遊戲開發的技能。至於跨平台?那不是你考慮的,現在遊戲都是用遊戲引擎做的,你做遊戲開發只是做邏輯開發,跨平台這些事,引擎給你做好了,不需要你操心,而且,做開發的時候,你很少會真的寫c++,讓你學c++是因為它很重要,而不是你做遊戲開發的時候會用到它,cocos2dx類似。現在遊戲開發行業,主流的就是cocos2dx和U3D,U3D主要是用c#,也有為了熱更用lua封裝一層,用lua開發的,cocos2dx幾乎都是用lua開發的,也有用Python封裝後開發的。c++寫邏輯是死路一條,沒有遊戲公司會花大量人力物力去用c++開發遊戲的,c++是快速開發的災難。現在幾乎清一色的Python或者lua,開發周期短,可熱更,這就是國內開發的現狀。


推薦閱讀:

路徑追蹤中菲涅爾反射錯誤的問題?
在c++中,靜態的對象的析構順序似乎是不可控的。?
一道阿里實習生筆試題的疑惑?
學數據結構用C還是C++?

TAG:iOS開發 | cocos2d | C | Objective-C | Cocos2d-x |