2011-10-21 60 views
2

我最近做了一些關於爲iPhone/iPad和Mac製作cocos2d應用程序的研究。我已經完成了iPhone/iPad的路線,但從來沒有用Mac的目標做過。看起來有些人已經將它作爲目標加入,但提到它很挑剔,而其他人則建議製作一個單獨的使用相同文件的Cocos2d Mac項目。任何智慧傳授給這裏?Cocos2d瞄準iPhone/iPad/Mac

回答

2

我認爲在同一個項目中同時擁有iOS和Mac目標是非常重要的。否則,您將花費太多時間讓一個平臺與另一個平臺保持同步,直到最終您創建一個好的(但仍然很耗時的)工作流程 - 或者最終忽略這兩個平臺之一。

理想情況下,代碼庫應儘可能少地使用編譯器宏。即使它不用於一個平臺,您也需要編譯iOS和Mac代碼。因此,有些類別或方法被編輯到Mac,而其他iOS類型的編譯器通常會在切換目標時導致編譯錯誤。這意味着包裝類,所以你可以編寫相同的代碼,而不管平臺,都是必不可少的。

現在,Cocos2D不提供您在同一個Xcode項目中創建iOS & Mac目標。實現目標的方式並不是很明顯,因爲每個目標都需要自己的構建設置:基礎SDK,SDK根目錄,部署目標,體系結構和可能的編譯器版本。如果你還想使用第三方庫(Box2D,Chipmunk等),它會變得更糟,因爲在某些情況下,你將被迫爲這些庫創建iOS和Mac特定的目標 - 如果只是爲了確保構建庫使用與項目目標相同的編譯器,否則可能會遇到最奇怪的構建或運行時問題。

我有問題讓這些平臺特定的目標在單個Xcode項目中工作,而沒有Xcode抱怨或其他行爲不端。我沒有用Xcode 4.1和4.2來試用它。那時我已經創建了.xcconfig文件來託管構建設置。對於最新的Xcode版本,.xcconfig文件可能需要也可能不需要,但它們確實可以更輕鬆地管理多個特定於平臺的目標。長篇小說,使用cocos2d-iphone進行跨平臺開發的最佳和最簡單的方法是使用Kobold2D

大多數15個模板項目在每個項目中都有一個iOS和Mac目標,您只需選擇相應的方案,然後點擊構建&即可運行。最常用的平臺特定代碼(處理用戶輸入)被封裝在一個平臺不可知的,易於使用的包裝類KKInput中。

聲明:我是Kobold2D的開發者。我可能有偏見的可能性很小。無論如何,你應該嘗試Kobold2D。 :)

+0

哈 - 是的,我其實只是預先訂購你的書,所以謝謝你的幫助!我幾個月前曾出於好奇嘗試過Kobold2D,它在xCode 4中沒有很好地編譯,我也沒有時間去搞亂。我會嘗試最近的版本。超級有用,它有一個mac目標烘焙的模板項目! – Codezy

+0

它總是隻用於xcode 4,我假設你遇到了「構建但不運行」,這很容易修復,並在下一個版本中根除 – LearnCocos2D