関連する質問で、 IUP 経由で入力を取得する方法を尋ねました。これは問題なく動作しますが、システムを通過し、ゲームに最適ではない再現率の影響を受けます。私が本当に欲しいのは、特定の時点で任意のキーの現在の状態を取得できる機能です。これを行う方法はありますか (IUP またはその他の方法で)?
1 に答える
おそらく、適切な Win32 API、DirectX、または lua モジュール内の何かへの呼び出しをラップする必要があります。IUP でキー ストローク イベントをキャッチするには、「通常の」Windows メッセージ メカニズムを介してウィンドウまたはコントロールに配信する必要があり、ゲーム フレームワークでは最適な方法ではない可能性があります。
IUP タイマー オブジェクトを使用してスケジュールに従って再描画を実行できますが、キーボードの状態を収集する方法が必要です。ゲームパッド、ジョイスティック、またはキーボードとマウス以外の HID を使用する場合、IUP はどのような場合でも直接には役に立ちません。
これは、DLL にコンパイルされた少量の C コードで簡単に実行できます。
一部の種類の API では、SWIGを使用してかなり簡単に実行できます。他の人は、ラッピングを手作りする方が簡単なだけの十分なセットアップ/ティアダウン作業を必要とします.
純粋な Lua から任意の API を直接呼び出すことを可能にする Lua 用のAlienモジュールもあります。Alien はLua for Windowsの一部として含まれているほか、Luaforge のプロジェクト ページにも含まれています。エイリアン自体は、プラットフォーム間である程度移植可能ですが、それで呼び出すものは何もありません.
この道をたどる際に他に注目すべきものは、1 つまたは複数の既存のゲーム エンジンです。通常、これらはエンジン内のイベント ループを隠しますが (IUP と同様)、デスクトップ アプリケーションではなくゲーム構築用に最適化されています。
Luaメーリングリストで噂を聞いたことがたくさんあります。かなり頻繁に言及されているので思い浮かぶのはLÖVEです。