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中一样,但只有第一行是缩进的结果。你缺少括号了吗?ı缺少括号了。但它仍然有效。我不知道怎么做。