投稿者 あにす  (社会人) 投稿日時 2008/11/19 16:48:47
>うたひこさん
>これらのオブジェクトは全て単一のクラスからインスタンス化したもの
ということは、オブジェクト固有の振る舞いはどのように表現したのでしょうか?
僕は敵クラス、味方クラス、弾クラスetc...の必要なクラスを継承して、
そこにIGameObjectインターフェースを実装する形を考えています。
オブジェクトの敵味方等の判定は
If TypeOf obj Is 敵 Andalso TypeOf obj Is 弾 Then
    objは敵の弾
End If

のような形での判定をしています。このTypeOf演算子の演算コストがどれくらいかわからないので
オブジェクトの数が増えたときに心配ではあります。

>葉月さん
こちらこそよろしくお願いします。
確かにKeyEventArgsでキーの状態の取得は出来るのですが、
問題はKeyEventArgsがKeyDown,KeyUpイベント発生時にしか利用出来ないことです。
通常のウィンドウズアプリなら、このイベントが.NETフレームワークが自動で生成しているメッセージループから発生するので問題ないのですが、
自前でループを回してメッセージを処理するゲームの場合だと、任意のタイミングでキーボードの状態を取得出来ないと困ってしまいます。
そこで先のコードを思い付いたのですが…上手く行かなくて困ってしまいました。