2011-10-21 10 views
2

最近、iPhone/iPadとMac用のcocos2dアプリを作成するための調査を行った。私はiPhone/iPadのルートを行ったことがあるが、Macのターゲットではこれをやっていない。一部の人はそれをターゲットとして追加しているようだが、それは厄介であり、他の人々は同じファイルを使用する別々のCocos2d Macプロジェクトを作ることを提案しているようだ。ここに伝える知恵は?iPhone/iPad/Macを対象とするCocos2d

答えて

2

iOSとMacの両方のターゲットを同じプロジェクトに配置することは絶対に重要だと思います。そうしないと、一方のプラットフォームを他方のプラットフォームと同期させるには時間がかかりすぎますが、最終的には良い(しかしまだ時間がかかる)ワークフローを作成するか、2つのプラットフォームの1つを無視することになります。

理想的には、コードベースはコンパイラマクロの可能な限りの使用を避けるべきです。 iOSとMacコードを1つのプラットフォームで使用していなくてもコンパイルしたいと思うでしょう。したがって、Macには#ifdefの一部のクラスやメソッドがあり、iOSには他のクラスやメソッドがあると、ターゲットの切り替え時にコンパイルエラーが発生することがよくあります。つまり、ラッパークラスは、プラットフォームに関係なく同じコードを書くことができるように、必須です。

現在、Cocos2Dでは、iOS & Macターゲットを同じXcodeプロジェクトに作成することはできません。各ターゲットはBase SDK、SDKルート、デプロイメントターゲット、アーキテクチャー、そしておそらくコンパイラーバージョンのビルド設定を必要とするため、そこに到達する方法はすぐには分かりません。場合によっては、これらのライブラリのiOSとMac固有のターゲットを強制的に作成するため、サードパーティのライブラリ(Box2D、Chipmunkなど)も使用したい場合は悪化しますプロジェクトのターゲットと同じコンパイラを使用してください。そうしないと、最も奇妙なビルドやランタイムの問題に遭遇することがあります。

これらのプラットフォーム固有のターゲットを取得して、1つのXcodeプロジェクト内で動作させることに問題がありました。私はXcode 4.1と4.2でそれを試していません。その時までにビルド設定をホストする.xcconfigファイルを作成しました。 .xcconfigファイルは、最新のXcodeバージョンでは必要な場合とそうでない場合がありますが、複数のプラットフォーム固有のターゲットを簡単に管理できるようになります。

短い話ですが、cocos2d-iphoneを使ってクロスプラットフォーム開発を行う最も簡単で簡単な方法は、Kobold2Dです。

15個のテンプレートプロジェクトのほとんどは、各プロジェクトにiOSとMacターゲットを持っています。対応するスキームを選択するだけで、&ビルドを実行する必要があります。最も一般的に必要なプラットフォーム固有のコード(ユーザー入力の処理)は、プラットフォームに依存しない単純なラッパークラスKKInputにラップされています。

免責事項:私はKobold2Dの開発元です。私が偏っているかもしれないスリムなチャンスがあります。とにかくKobold2Dを試してみてください。 :)

+0

私は実際にあなたの本を予約したので、助けてくれてありがとう!私は数ヶ月前にKobold2Dを好奇心から試してみましたが、xCode 4でうまくコンパイルできませんでした。最新のバージョンに試してみます。スーパーは、それが焼き付けられたマックターゲットでテンプレートプロジェクトを持っていることに役立ちます! – Codezy

+0

それは常にxcode 4のためだけだった、私はあなたが "ビルドに走ったが、実行しない"と思います。これは修正しやすく、次のバージョンでは根絶しました – LearnCocos2D

関連する問題