質問

関連する質問で、IUPを介して入力を取得する方法を尋ねました。これは問題なく動作しますが、システムを通過し、ゲームに最適ではないrepreat率の対象となります。私が本当に望んでいるのは、特定の時間に任意のキーの現在の状態を取得できることです。これを行う方法はありますか(IUPなどを使用)?

役に立ちましたか?

解決

おそらく、適切なWin32 API、DirectX、またはluaモジュールのいずれかへの呼び出しをラップする必要があります。 IUPでキーストロークイベントをキャッチするには、「通常」を介してウィンドウまたはコントロールに配信する必要があります。 Windows Messageメカニズム。ゲームフレームワークでは最適なアプローチではない可能性があります。

IUPタイマーオブジェクトを使用してスケジュールに従って再描画を実行できますが、キーボードの状態を収集する方法が必要です。ゲームパッド、ジョイスティック、またはキーボードとマウス以外のHIDを使用する場合、IUPはどのような場合でも直接助けにはなりません。

これは、DLLにコンパイルされた少量のCコードで簡単に実行できます。

APIの種類によっては、 SWIG を使用すると、かなり簡単に実行できます。他の人は、ラッピングを手作業で簡単に作成できるほど十分なセットアップ/分解作業を必要とします。

純粋なLuaから任意のAPIへの直接呼び出しを可能にするLua用の Alien モジュールもあります。エイリアンは、 Lua for Windows の一部として、またLuaforgeのプロジェクトページを通じて含まれています。 Alien自体はプラットフォーム間で多少移植性さえありますが、一緒に呼び出すことはできません。

このパスを追求する際に検討する必要があるのは、既存のゲームエンジンの1つ以上です。通常、これらはエンジン内のイベントループを非表示にします(IUPと同様)が、デスクトップアプリケーションではなくゲーム構築用に最適化されています。

Luaメーリングリストで噂を聞いたことがあります。かなり頻繁に言及されているために思い浮かぶのは LÖ VE です。

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