【发布时间】:2019-05-14 16:21:55
【问题描述】:
我目前正在开发一款单机游戏。游戏很大程度上基于点击按钮,这就是问题发生的地方。每当我按住鼠标左键然后将其移到游戏中的某个按钮上时,该按钮就会立即被点击。
我尝试通过多种方式解决此问题,通过以不同方式重新排列 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;
}
理想情况下,我希望只有在单击按钮之前释放鼠标左键时才能单击按钮。
【问题讨论】: