C# 鼠标单击XNA

C# 鼠标单击XNA,c#,xna,mouse,C#,Xna,Mouse,我正试图通过鼠标点击更新我的播放器。我在玩家身上尝试了不同的更新动作,比如自由拖动。他们工作。但是鼠标点击不起作用。有人能帮我吗 有关更多详细信息,我的播放器类保存动画纹理及其位置。我正在尝试将另一个纹理更改为当前纹理 它起作用了。我的意思是:当我拖动播放器时,它的动画会改变。这意味着我的类功能没有问题。但是当我用鼠标点击尝试同样的事情时,它不起作用 //initialize method player.Initialize(player1, player1.Position); //upd

我正试图通过鼠标点击更新我的播放器。我在玩家身上尝试了不同的更新动作,比如自由拖动。他们工作。但是鼠标点击不起作用。有人能帮我吗

有关更多详细信息,我的播放器类保存动画纹理及其位置。我正在尝试将另一个纹理更改为当前纹理

它起作用了。我的意思是:当我拖动播放器时,它的动画会改变。这意味着我的类功能没有问题。但是当我用鼠标点击尝试同样的事情时,它不起作用

//initialize method 
player.Initialize(player1, player1.Position);

//update method
protected override void Update(GameTime gameTime)
{
    currentMouseState = Mouse.GetState();

    UpdatePlayer(gameTime);
    _bgLayer1.Update(gameTime);
    _bgLayer2.Update(gameTime);

    base.Update(gameTime);
}

//update player method
void UpdatePlayer(GameTime gameTime)
{
   player.Update(gameTime);

   // Touch inputs
   while (TouchPanel.IsGestureAvailable)
   {
       GestureSample gesture = TouchPanel.ReadGesture();

       if (gesture.GestureType == GestureType.FreeDrag)
           player.Position += gesture.Delta;
           player.PlayerAnimation = player2;   
   }

   // Get Mouse State
   if (previousMouseState.LeftButton == ButtonState.Released && currentMouseState.LeftButton == ButtonState.Pressed)
   {
       player.PlayerAnimation = player2; 
   }
   previousMouseState = currentMouseState;
}

不起作用
信息不足。请更加具体和详细。您应该使用断点调试代码,以查看程序是否输入该断点。但如果你确信它能工作,请记住它只持续一个更新周期,也许它太快了,看不见。你用鼠标更新的代码是正确的。实际上,当单击左键时,应该将playerImation设置为player2。确保不要将playerImation更改回其他位置(例如Draw()方法或player.Update()方法)。另外,您的代码中有一个bug。行“player.PlayerAnimation=player2”将在所有手势上执行,而不仅仅是在自由拖动时。(在我看来,这就是为什么你应该总是在if条件后加括号。)我不明白你在哪里有
if(signature.GestureType==GestureType.FreeDrag)
,你在它下面的代码是缩进的,就像在if中一样,但只有第一行是缩进的结果。你缺少括号了吗?ı缺少括号了。但它仍然有效。我不知道怎么做。