我有一个游戏,你点击一个按钮,它会增加一个整数,但是,使用我拥有的当前代码,用户可以按住他们的鼠标并且它会不断增加。
我怎样才能让用户只按一次(每次点击)来增加他们的分数?
这是我目前的代码:
public MouseState mouseState;
protected override void Update(GameTime gameTime)
{
mouseState = Mouse.GetState();
if (mouseState.LeftButton == ButtonState.Pressed)
Managers.UserManager.OverallScore++;
base.Update(gameTime);
}
答案 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++;
}
也可以在按下时执行。