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

问题描述 投票:0回答:1

我正在为学校项目做一个愚蠢的游戏,每当玩家向右或向左移动时,图像随方向变化。问题是图像明显闪烁,因为它在点击时始终不断变换相同的图像。我相信我只需要在第一次点击时更改图像,但我不知道该怎么做。任何帮助? 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);
    }
c# xaml uwp keydown
1个回答
0
投票

你只需要记住玩家前一个方向是什么。这是一些伪代码来帮助:

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.