5

ゲームでは、特に iPhone のようなリソースに制約のある環境では、Objective-C よりも C++ の方が適しているとよく耳にします。(iPhone サービスと最初に通信するには、Objective-C が必要なことはわかっています。) しかし、最近の 2D ゲーム エンジンは、Objective-C である Cocos2d のようです。

Apple が「Objective-C++」と呼んでいるものを使用すると、C++ と Objective-C のクラスを 1 つのファイルに混在させることができますが、同じクラスまたは関数内で言語の構造を混在させることはできません。

では、C++ ゲームに Cocos2d を使用することは合理的/可能ですか? 「グルー」コードをたくさん書く必要がありますか? 直接の OpenGL-ES アプローチに必要な重労働の一部は避けたいと思います。

4

2 に答える 2

7

Objective-C++ではC++とObjective-Cのコードをかなり自由に組み合わせることができるため、グルーコードを記述する必要はありません。ただし、C ++から始めるのではなく、Objective-Cで記述してから、最適化してそれらの部分をCまたはC ++で書き直す必要がある場合は、プロファイリングすることをお勧めします。Objective-Cは遅い言語ではなく、十分に高速である可能性がある場合にC++を使用するために余分な労力を費やす理由はありません。

于 2009-08-06T15:27:24.337 に答える
3

現在、Cocos2 でゲームのプロトタイプを作成しています。Chipmunk を使用して C++ でゲーム ロジックを作成し、Cocos を使用してビュー レイヤーを実装しています。実際、C++ と Objective-C を同じクラス、関数、およびコード行に自由に混在させることができます。クラスインターフェイスでObjective-CとC++のメソッド定義構文を混在させることはおそらくできないように、制限があると確信していますが(実際に試すことは考えていませんでした)、ほとんどの実用的な目的では自由に混在させることができます。

iPhone のみを対象としている場合は、Objective-C ですべてを記述してもあまり心配する必要はありません。他の人が述べたように、実際にパフォーマンスのボトルネックがあれば、それをプロファイリングして最適化できます。ゲーム コアを C++ で記述しています。他のプラットフォームに展開する必要があるかもしれません。その場合、Objective-C は負担になります。

于 2009-08-06T22:20:36.837 に答える