检测鼠标单击

时间:2013-11-15 19:04:50

标签: c# xna mouseevent

我有一个游戏,你点击一个按钮,它会增加一个整数,但是,使用我拥有的当前代码,用户可以按住他们的鼠标并且它会不断增加。

我怎样才能让用户只按一次(每次点击)来增加他们的分数?

这是我目前的代码:

public MouseState mouseState;

protected override void Update(GameTime gameTime)
{
     mouseState = Mouse.GetState();
     if (mouseState.LeftButton == ButtonState.Pressed) 
        Managers.UserManager.OverallScore++; 

     base.Update(gameTime);
}

1 个答案:

答案 0 :(得分:1)

您可以跟踪按钮何时从按下状态更改为已释放状态,并在此时运行您的操作,例如:

bool leftButtonIsDown; // private instance field

// in your update method
if (Mouse.GetState().LeftButton == ButtonState.Pressed) {
    leftButtonIsDown = true;
} else if (leftButtonIsDown) {
    leftButtonIsDown = false;
    Managers.UserManager.OverallScore++;
}

也可以在按下时执行。