2013-11-15 172 views
0

我有一个游戏,点击一个按钮,它将一个整数增加一个,但是,使用当前代码,用户可以按住鼠标不断增加。检测鼠标点击

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

下面是当前的代码,我有:

public MouseState mouseState; 

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

    base.Update(gameTime); 
} 

回答

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++; 
} 

或者当它被按下时做。

+0

嗨,感谢您的建议!我尝试了代码,但是,即使按钮未按下,值也会持续增加。 – Jarrod

+0

刷新页面,我有一个错误! – radical

+0

谢谢你的帮助!完美的答案 – Jarrod