0

2D 配列があるとします。4 つの行と 4 つの列があります。ここで、最初に配列内の特定の場所にマーカーを配置する必要があります。たとえば、array[x][y] = 1 -> マーカー。ボタンを使用して、このマーカーを配列内で 8 次元で移動したいと考えています。上のように、場所は [x-1][y] です。下は [x+1][y] です。左は[x][y-1]です。そして右は[x][y+1]です。今、私はこれが私がそれを行う方法であるという私の論理を持っています!

第 1 の質問: 上下左右のボタンを関連付けて配列内を移動するにはどうすればよいですか?

2 番目の質問: <^ 2 つのボタンが押され、現在の場所が [x-1][y-1] であるため、他の複雑な 4 の変更場所に 2 つのボタンを使用するので、他の 4 つの次元にどのように取り組みますか?

親切に私に指示するか、ボタンの関連付けを手伝ってください。

4

1 に答える 1

0

キーボード フックを使用して、矢印キーが押されたときにロジックをトリガーできます。次のようなコードを含むコールバック関数を定義します。

if (  WM_KEYDOWN == wParam && VK_UP == lParam )
    //do up logic
else if ( WM_KEYDOWN == wParam && VK_DOWN == lParam )
    //do down logic
else if ....

斜めのボタンについては、キーボードのテンキーのホーム、pgup、pgdn、および終了キーを使用できます (これにはテンキー付きのキーボードが必要です)。これらのボタンは、<^ のような矢印の組み合わせに対応し、実装をシンプルに保ちます。

キーボード フックの使用方法については、次の記事を参照してください: C++ Win32 キーボード イベント

仮想キー コード (VK_UP) のリストについては、次のリンクを参照してください: http://msdn.microsoft.com/en-us/library/ms927178.aspx

于 2012-09-09T13:20:16.037 に答える