2013-11-15 3 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

Смежные вопросы