繁体   English   中英

C#UWP使用KeyDown仅更改图像一次

[英]C# UWP Change image only once with KeyDown

我正在为学校项目制作一个愚蠢的游戏,每当玩家向左或向右移动时,图像都会随方向变化。 问题是图像明显闪烁,因为单击时始终保持同一图像变化。 我相信我只需要在第一次单击时更改图像,但是我不知道该怎么做。 任何帮助? TIA

这是我用于KeyDown的方法:

private void MoveLeft(Image playerToMove)
    {
        double left = Canvas.GetLeft(playerToMove);
        left -= _step;
        playerToMove.Source = new BitmapImage(new Uri("ms-appx:///Assets/Characters/ShepherdLeft.png"));
        Canvas.SetLeft(playerToMove, left);
    }

您只需要记住玩家移动的先前方向是什么。 这是一些伪代码可以帮助您:

private enum Direction 
{
   Right,
   Left,
   Unknown
}

private Direction lastDirection = Direction.Unknown;

private void MoveLeft(Image playerToMove)
{
  if (lastDirection != Direction.Left)
  {
     playerToMove.Source = "ShepherdLeft.png";
  }
  lastDirection = Direction.Left;
}

private void MoveRight(Image playerToMove)
{
  if (lastDirection != Direction.Right)
  {
     playerToMove.Source = "ShepherdRight.png";
  }
  lastDirection = Direction.Right;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM