-1
我有一個小問題,我想閱讀c#中的鍵輸入,鍵A和D工作,但Z,空間和C不?繼承人我的代碼:Windows窗體自定義控件按鍵事件不能正常工作
private async void RaceSelection_KeyDown(object sender, KeyEventArgs e)
{
if (movable == true)
{
if (e.KeyCode == Keys.A)
{
Character.Left -= 3;
playerpos = Character.Location;
}
if (e.KeyCode == Keys.D)
{
Character.Left += 3;
playerpos = Character.Location;
if (Character.Bounds.IntersectsWith(pictureBox6.Bounds))
{
if (Character.Bounds.IntersectsWith(pictureBox4.Bounds))
{
pictureBox4.Location = new Point(999999, 9999999);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 9;
await Task.Delay(100);
Character.Top += 5;
this.Controls.Clear();
this.Controls.Add(GapFiller1);
dungeonone();
}
}
if (e.KeyCode == Keys.Space)
{
Character.Top -= 25;
await Task.Delay(125);
Character.Top += 25;
}
if (e.KeyCode == Keys.C)
{
if (Character.Bounds.IntersectsWith(pictureBox5.Bounds))
{
TownOne();
}
}
if (e.KeyCode == Keys.Z)
{
if (Character.Bounds.IntersectsWith(pictureBox6.Bounds))
{
if (EntityVar.DraugarHealth == 1)
{
Engine.EntityVar.Draugartakesdamage = false;
this.Controls.Remove(pictureBox6);
LastKill = "Draugar";
label3.Text = "Well Done! but what is that ladder over there???";
}
else
{
Engine.EntityVar.DraugarHealth -= 1;
if (Engine.EntityVar.Draugartakesdamage == true)
{
this.Controls.Add(HitMarker);
HitMarker.BringToFront();
await Task.Delay(250);
this.Controls.Remove(HitMarker);
}
}
}
}
}
}
}
任何人都知道我在做什麼錯???順便說一下,我正在製作一款遊戲,我非常清楚,即使不是最好的方式,但是我知道如何做到這一點:D,無論如何,如果你知道爲什麼它不起作用,我會非常樂意。
你怎麼確定它不起作用?你能描述一下你的測試嗎? – quantdev