-3

私は学校でプログラミング 2 を受講しており、Visual Studio 2010 Professional を使用しています。

矢印キーを使用してキャラクターを制御し、ジャンプして前後に移動するためにキャラクターを移動できるゲームを作ろうとしています。

私はすべてのグラフィックスをすべて完成させてセットアップしましたが、キーを使用して変数を変更してキャラクターを動かしたり、物と相互作用させたりして制御できるようにする必要があります。

押されたキーをプログラムに登録させるにはどうすればよいですか?

これは私がこれまでに持っているものです:

namespace keypress2 
    { 
    public partial class Form1 : Form 
        { 
        public Form1() 
        { 
            InitializeComponent(); 
            this.textBox1.KeyDown += textBox1_KeyDown; 
        } 

        private void textBox1_KeyDown(object sender, KeyEventArgs e) 
        {

        } 
    } 
}
4

3 に答える 3

1

キーの押下をキャプチャするには、「PreviewKeyDown イベント」を使用する必要があります。

ボタンである「ヒーロー」をフォーム内に移動したいとしましょう。

Public Class Form1
    Private Hero As New Button
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Hero.Parent = Me
        Hero.Enabled = False
    End Sub
    Private Sub Form1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown
        Select Case e.KeyCode
            Case Keys.Left
                Hero.Left -= 5
            Case Keys.Right
                Hero.Left += 5
            Case Keys.Down
                Hero.Top += 5
            Case Keys.Up
                Hero.Top -= 5
        End Select
    End Sub
End Class

W、A、S、D などの他のキーを、キャラクターを移動するための代替キーとしてキャプチャしたり、Control+S (ゲームを保存するため) にキャプチャしたりすることもできます。:D

于 2013-02-09T00:55:26.963 に答える
1

c# でのノンブロッキング キーボード入力の処理に関するブログ アイテムがここにあります。

http://www.dutton.me.uk/2009/02/24/non-blocking-keyboard-input-in-c/

また、コンソールのキーボード入力に関する別のスタック オーバーフロー記事

ユーザーが押したキーを読み取ってコンソールに表示する方法は?

もちろん、コンソール アプリを使用していると仮定しています。WinForm アプリを使用している場合、答えは異なります。

于 2013-02-08T22:59:27.863 に答える
0

コントロールのイベントを追加するには、F4 キーを押してプロパティ ウィンドウを表示し、Lightning Bolt アイコンをクリックします。

ここに画像の説明を入力

于 2013-02-09T21:34:41.720 に答える