0

グラフィックレイヤーを使用するときに抽象レイヤーを使用することについて質問があります。

たとえば、SFML 2.0 を使用して C++ でいくつかのゲームを作成しました。私が自分のゲームを書いたとき、私が使用する純粋な仮想クラスを書きました。たとえば、クラス SfSprite は純粋なクラス Sprite から継承されます。

これを使用する利点は、グラフィックライブラリを非常に簡単に切り替えることができることです。私は純粋なクラス (この例では "Sprite") のみを扱います。

今はIOSでゲームを開発しています。だから私の質問は:

  • Objective C のプロトコルでこのパターンを実装できますか?

  • iOS ゲームでこのパターンを実装することをお勧めしますか?

4

1 に答える 1

0
  1. はい、プロトコルを使用できます。プロトコルはインターフェイスを宣言します。抽象クラスもそれを行います。同じ目的でプロトコルを使用することもできますが、技術的には抽象クラスと同じではありません。
  2. このパターンはゲームとは関係ありません。ゲーム プログラミングにおいて、プロトコルの使用を推奨または推奨しない特別なことは何もありません。

Cocos2D-iphone 自体は、多くのクラスでプロトコルを使用します。

ライブラリを切り替えるという目標があるのはなぜですか? ゲームの作成よりも抽象化に多くの時間を費やすことになりますが、それでもライブラリを変更する作業は簡単ではありません。ライブラリが異なれば、インターフェイスも大きく異なります。

1 つのゲーム プロジェクトの期間中は 1 つのエンジンに固執し、本当に必要な場合は別のエンジンでやり直す方がよいでしょうか? 複数のプラットフォーム (iOS、Android など) をサポートできる可能性は、独自のコードをあるライブラリから別のライブラリに切り替えるよりも重要です。

于 2013-09-11T15:02:36.767 に答える