1

だから私は、プラットフォーム スタイルのゲームの開発に取り組んでいます。C で記述し、グラフィック ツールキットとして GTK を使用しています。現在、画面に 3 つのブロックを配置するプログラムがあります。そのうちの 2 つはプラットフォームで、3 つ目は左右の矢印キーを押して横に移動できます。(まだスプライトを描いていないので、今のところ私のゲームのヒーローは青い四角形です)。また、「z」キーを押してジャンプする機能も実装しており、ジャンプしてプラットフォームに着地することができます。

ただ、ジャンプしながらの横移動はなかなか難しいです。これは、私のプログラムが同時に押された 2 つのキーを認識しないためだと思います。そのため、左または右の矢印を放し、z を押してから z を放し、右または左の矢印をもう一度押して、空中で横方向に移動する必要があります。左または右を押しながら z を同時に押すと、ヒーローが横方向にジャンプできるようになります。

GDK リファレンス マニュアルでは、GDK キー コードのリストについて「gdk/gdkkeysyms.h」(私のシステムでは /usr/include/gtk-3.0/gdk/gdkkeysyms.h にあります) を参照していますが、何も提供していません。 2 つのキーを同時に使用するためのガイダンス。GTK/GDK は、2 つのキーが同時に押されたイベントを認識できますか (GDK、GTK、どちらでも、2 つの間の線がどこにあるのかわかりませんが、それは別の質問のトピックだと思います...)? どのように適用しますか?(単一のキーの場合、次のようなことを行うことでコードを取得します

key = event->keyval;

しかし、これが 2 つのキーの場合にどのようになるかはよくわかりません)。

ご協力いただきありがとうございます!

4

2 に答える 2