Я сейчас работаю над игрой в моногам.Игра в значительной степени основана на нажатии кнопок, и именно здесь возникает проблема.Всякий раз, когда я удерживаю левую кнопку мыши и затем перемещаю ее по кнопке в игре, эта кнопка нажимается мгновенно.
Я пытался решить проблему многими способами, переставляя операторы if в разныхспособы, добавив дополнительный bool, чтобы проверить, нажата ли кнопка мыши и т. д., но без всякой удачи.Также нигде не найдено никаких решений.
public override void Update(GameTime gameTime)
{
MouseState state = Mouse.GetState();
if (new Rectangle((position - ElementCenter).ToPoint(), sprite.Bounds.Size)
.Contains(state.Position) && oldState.LeftButton == ButtonState.Released)
{
renderColor = Color.LightSlateGray;
if (state.LeftButton == ButtonState.Pressed &&
oldState.LeftButton == ButtonState.Released)
{
switch (button)
{
case "UI/submit":
if (GameWorld.Instance.Team.UserTeamName.Length > 0)
{
GameWorld.Instance.SubmitTeamName();
}
break;
case "UI/teammanager":
GameWorld.Instance.TeamManager();
break;
default:
break;
}
}
}
else
{
renderColor = Color.White;
}
oldState = state;
}
В идеале хотелось бы, чтобы кнопка нажималась только в том случае, если перед нажатием кнопки была отпущена левая кнопка мыши.