w、a、s、dをそれぞれ前、左、下、右にしてミニゲームを作ろうとしています。
コントロールは上下左右に移動しますが、1 回だけです。「W」、「S」、「A」、または「D」キーを 2 回または 3 回押すと、コントロールは 1 回だけ上に移動します。
これは、コントロールを右に移動するために現在持っているコードです:
private void moveRight(Button button)
{
// Gets the current position of the control
Point relativePoint = button.TransformToAncestor(parentCanvas).Transform(new Point(0, 0));
// Reason for having relative - relative is that its adding onto the previous point.
Canvas.SetLeft(button, relativePoint.X - relativePoint.X + 5);
button.Content = relativePoint;
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.W)
{
moveUp(button1);
}
else if (e.Key == Key.A)
{
moveLeft(button1);
}
else if (e.Key == Key.S)
{
moveDown(button1);
}
else if (e.Key == Key.D)
{
moveRight(button1);
}
}
この問題を解決する方法を教えてください。
すべての助けをいただければ幸いです。ありがとう