私は約10年間ゲームをプログラミングしていません(私の最後の経験はDJGPP + Allegroでした)が、私は週末にXNAをチェックアウトして、どのように形作っているかを見ていきたいと思っていました。ゲームプログラミングとイベントハンドラ
私はかなり感銘を受けたですが、ゲームエンジンをまとめていくと、おそらく基本的な質問があります。
C#のデリゲートとイベントを使って、ゲームをどの程度動かすべきですか?アプリケーションプログラマとして、私は代理人とイベントを頻繁に使用しますが、これに重大なオーバーヘッドがあるかどうかはわかりません。
私のゲームエンジンでは、オブジェクトにアタッチしてオブジェクトに対する相対位置を再計算することができる、「チェースカム」のソートを設計しました。オブジェクトが動くと、チェイスカムを更新する2つの方法があります。
- ゲームのメインループに「UpdateCameras()」メソッドがあります。
- イベントハンドラを使用し、chaseカムにobject.OnMovedをサブスクライブします。
私は後者を使用しています。なぜなら、イベントを一緒に連鎖させ、エンジンの大部分をうまく自動化できるからです。突然、巨大で複雑なものは、一握りの3-5行のイベントハンドラに落ちる...その美しさ。
しかし、1ナノ秒ごとに発生するイベントハンドラが大幅に減速する場合は、それを削除してループアプローチを実行します。
アイデア?
私はそれに気付きました。その小さな小さな世界。 – FlySwat