私のプロジェクトでは、ゲームのレイアウトを変更するためにこの既製のコードを変更する必要があります。だから私は、蛇を動かすためにボタンを使うのではなく、WASDへのナビゲーションのために私のフォームにキーイベントを追加したい。しかし、ここでの問題は、フォームに関数を追加してコンソールに表示するようにテストすると、イベントエラーではなく何も得られないということです。私はこれについて専門家ではないので、私は正しい道に私を導くのに十分親切な誰かが、ありがとう。winformの主なイベントの問題C#
これは私のプロジェクトのコードとスクリーンショットです。
public Form1()
{
InitializeComponent();
backgroundMusic.PlayLooping();
this.AutoSize = true;
boardPanel.AutoSize = true;
//Set up the main board
mainBoard = new Board(this);
//Set up the game timer at the given speed
clock = new Timer();
clock.Interval = speed; //Set the clock to tick every 500ms
clock.Tick += new EventHandler(refresh); //Call the refresh method at every tick to redraw the board and snake.
duration = 0;
score = 0;
level = 1;
modeLBL.Text = mode;
gotoNextLevel(level);
}
private void keyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.W)
{
Console.WriteLine("W is pressed");
}
}
}
:
Form
子コントロールにフォーカスがあるときにキーが押されたときKeyDown
イベントを発生させるあなた有効にするには、trueにごForm
のKeyPreview
プロパティを設定しますthis.KeyDown = new KeyEventHandler(keyDown); ' –