-1

ウィンフォームを使用してヘビゲームを作成しようとしていて、矢印キーを使用したイベント処理でボタンツールを移動するのに問題がありました。誰かがそれをどのように機能させるかを私に説明できれば非常に役に立ちます

4

1 に答える 1

1

あなたが提供した非常に限られた情報から、一般的にアプローチは、ゲームを含むフォームの KeyDown イベントを処理することです。フォームにフォーカスがある間、キーが押されるたびにこのイベントが発生します。(KeyPress イベントでは、キーが発生する前にキーを押して離す必要があります。同じアクションで KeyDown と KeyUp の組み合わせも発生します)。

KeyDown イベントを処理するときは、KeyEventArgs の KeyData プロパティを調べます。そのプロパティ (読み取り専用) は、フラグ付きの列挙型です (つまり、使用可能な値の組み合わせを持つことができます)。Keys.Up、Keys.Down、Keys.Left、および Keys.Right の 1 つ以上が押されているかどうかを確認する必要があります。これらは矢印キーです。また、異なる Keys 列挙値を持つテンキー キー 8、2、4、および 6 をそれぞれユーザーが使用できるようにすることもできます。KeyData にこれらのいずれかが含まれている場合は、ヘビが移動する方向を変更し、KeyEventArgs の Handled プロパティを true に設定します。これにより、キーの押下に応答する他のコードは続行されません。これにより、矢印キーに関連付けられたデフォルトの動作によって問題が発生するのを防ぐことができます。

ユーザーが複数の矢印キーを押す可能性があることを理解してください。これらのキーが反対方向にある場合、または一方向への移動が許可されていない場合は、この状況をどのように処理するかを決定する必要があります。簡単な解決策は、何もしないことです。より複雑な解決策は、現在押されている矢印キーを追跡することです。複数の矢印キーが押された場合は、1 つ以上のキーが離されたことを通知する KeyUp イベントをリッスンし、現在 1 つのキーが押されているときにのみ方向を変更します。

于 2012-08-14T18:38:04.767 に答える