5

押されたキー(矢印)に応じてキャラクターが動くスプライトを使った小さなゲームをしています。キーが離される.KeyDown()までメソッドが呼び出され続けることに気付きました。

たとえば、ユーザーが上矢印を押している場合、 のメソッド.KeyDown()が呼び出され続けます。上矢印を押したまま下矢印を押すと、KeyEventArgsは下矢印からの入力を受け取るようになります。最後に、上矢印が離されると、下矢印がまだ押されていても.KeyDown()、イベントの呼び出しが停止します。

入力を「リセット」し、コンパイラーに呼び出し続けるように指示するにはどうすればよい.KeyDown()ですか?

4

2 に答える 2

3

非常に良い質問です-このデフォルトの動作をオーバーライドする方法はないと思いますが、キーの押下を自分で追跡することでこの影響を回避することは確かに可能です-つまり、.KeyDown()が呼び出されたときに、キーを何らかのタイプに追加しますそれを追跡する構造の-そして、.KeyUp()呼び出されたときに、その構造からキーを削除します。

次に、現在押されているキーの構造を繰り返しチェックし、あなたに伝えていることではなく、その.KeyDown()に基づいて動きます。

于 2012-11-29T00:26:22.027 に答える
0

KeyUpキーが離されたことを検出するために使用してみることができます。KeyUp次に、が呼び出されるまで、キーがまだ押されていると想定できます。

于 2012-11-29T00:26:15.647 に答える