質問

まだプログラムゲームの約10年間(前回の私の経験したDJGPP+Allegro)もうと思ってチェックXNAを見つけることができ、週末していませんのでご注意くださった形です。

もっこっこさん結論かに感動として活躍してきましたが、続けた作品を一緒にゲームエンジンって(おそらく)基本的な質問です。

どのくらいきなC#'sの代表イベント駆動のですが---。としてのアプリケーションプログラマは、使用代表者は、イベントがよくわからない場合があり大幅にオーバーヘッドでしょう。

私のゲームエンジン、デザインしています"を追cam"のものにも取り付けることができるオブジェクトとしてrecalculatesその相対位置のオブジェクトです。のオブジェクトの動きは、以下の方法が用意されているの更新を追いません。

  • て"UpdateCameras()メソッドのメインゲームのループを実行します。
  • 利用イベントハンドラの追camをご契約オブジェクトです。OnMoved.

私は後者はできるようにするために、私にはチェーンイベントととも自動化の大型部品エンジン。突然、何をする複雑なくと大きく減少3-5ラインイベントハンドラ...その美しさです。

ただし、イベントハンドラを焼成ナノ秒毎に大きな減速は、取り外すと、ループアプローチ.

アイデア、浮かぶのでしょうか。

役に立ちましたか?

解決

場合を考えるときのイベントとして加入者のリストでコードですべて確認することができます登録契.の指示の達成に必要な可能な限り抑制するとともに軽微であるとのCLRます。

またコードする汎用的な挙動と、それだけチェックをする必要な場合はご契約前の呼び出します。イベント/delegate機構のC#と.純提供することですので非常に少ないコスト(CPU).

いう懸念が毎クロックのサイクルにおい書dev/ダイナミックゲーム。このメモリ効率より処理と保守性/設定可能なコードの切ります。

記述も、私は賛成でイベントの代表者までいることによっています。

みん真に合わせて行きはプロファイリングコードをするべきなんせゲーム。

他のヒント

で重要なこのイベントクライアントまで、フルのC#ない状態を非同期のイベント(例えば、Windowsメッセージキュー).そのリストの関数ポインタ.ん達のイベントなパフォーマンスが悪い影響以上の繰り返し処理のリストの関数ポインタと呼びます。

同時に、ここのため、イベント同期.場合はイベント リスナー を表明するものではなく、いくのクラス 調達 見舞いを申し上げます。

主要な問題はこう:"何がオーバーヘッドの利用にC#の代表者とするんですか。

イベントにおいて重要なオーバーヘッドとの比較を通常の機能ます。

利用代表者を暗黙的には、このように隠れた場合のみです。ゴミの大きな原因のパフォーマンスに問題を中心にXBox360.

次のコード生成に約2000バイトでのゴミの量で60fps)のEntityVisitorオブジェクト

    private delegate void SpacialItemVisitor(ISpacialItem item);

    protected override void Update(GameTime gameTime)
    {
        m_quadTree.Visit(ref explosionCircle, ApplyExplosionEffects);
    }

    private void ApplyExplosionEffects(ISpacialItem item)
    {
    }

とを回避するための発生生ごみ、代表者が十分速く、余裕があります。です。その隠れた危険も避けて使用界面です。

私の時間を離れてから実際の仕事において学習XNAです。

まぁいいえば私の仲間)のオーバーヘッドを取り扱う圧倒されその他の要素をゲームなどのrendering.さらに重用のイベント。Netプログラミングはいつのコードで最適化されています。

正直、と思いをUpdateCameras方法ですが、早期の最適化。のイベントシステムはおそらくり以外の用途のカメラです。

XNAを促進しインタフェース、イベントに委譲ドライブなんか記述します。のGameComponentに関連したクラスを設定します。

その答えは、"ご協力お願いいたします安心"のこと。

を凝らし、少しの場合は、まと継承のためのgamecomponentスクラスcameracontrollerクラスに追加してください。Componentです。それを構築することが可能ですカメラの授業について楽しく学び、おcameracontroller.

この原因になりまcameracontrollerと呼ばれるよう定期的にできることを選択の適切なカメラまたは複数のカメラがとう。

ここでは例えば、全てのチュートリアルに優れた):ReoCode

ちなみにされることもありますので、興味のある ショーンHargreaves, 原開発 Allegro, の主要開発者のXNAチーム:-)

に入る前に、何の影響もイベントでパフォーマンスをすることができますので評価ではなかったとが必要です。

といっていチェイスカムの更新、そしてだけではなく、何かを探していないイベントにもイベントなんだけど)場合には、以下のアバターの可能性はますので移動になっています。

その際の一つのアプローチから極めて有効では階層の変化を実装する場合にはこれを効率的にカメラな唯一のオブジェクトの恩恵なので、システムを目標にするにはカメラ内の座標空間のオブジェクトではトラッキングが可能です。

このアプローチは、最高の一つまた一部の弾力性のあるカメラのカナダマギル大学モントリオールのオブジェクトで使用更新通話が参考に、いくつかの基本加速度および耐性物理学

イベントをより便利なものについてのみ起こるのから時間に影響を与える多くの異なる側面をアプリケーションのように文字で亡くなれば更に多くの異なるシステムのような認識し、殺統計の制御にAI、その場合には、身体の安全を確保するためのすべてのオブジェクトをいて、常にチェックこのオペレーションに使用するこ起こったことであればより効果的な投イベントを、関心のある物通知される時だけなどが挙げられる。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top