在同一位置加载多个按钮

时间:2014-10-28 14:57:06

标签: c# xna

我正在编写一个带有用户输入和按钮的UI界面。我需要让用户输入一些数字,然后按下标有“解决”的按钮,这需要确定数字是否正确。我尝试在开始时只使用一个按钮来解决它。这是我的代码:

if (correct)
{
    solveButton = new MenuButton(contentManager.Load<Texture2D>("solve"), 
        buttonCenter, GameState.AnswerNo);
}
else
{
    solveButton = new MenuButton(contentManager.Load<Texture2D>("solve"),
        buttonCenter, GameState.AnswerYes);
}

加载时,在draw方法下,我使用以下代码:

solveButton.Draw(spriteBatch);

此处,GameState.AnswerNoGameState.AnswerYes分别代表正确和错误答案的不同页面。但是,它没有像我想象的那样起作用 - 无论“正确”值是什么,它总是进入GameState.AnswerNo页面。

因此,我正在考虑使用两个按钮(按钮数字相同,但稍微移动位置):

solveButton = new MenuButton(contentManager.Load<Texture2D>("solve"),
    buttonCenter, GameState.AnswerNo);

buttonCenter.Y -= 40;

solveButton2 = new MenuButton(contentManager.Load<Texture2D>("solve"),
    buttonCenter, GameState.AnswerYes);

加载时:

if (correct)
{
    solveButton.Draw(spriteBatch);
}

if (!correct)
{
    solveButton2.Draw(spriteBatch);
}

哪种方法很好,但尴尬的是,当用户输入正确的数字时,button1将消失,button2将出现在其下方。有没有更好的想法来完成这个功能?

1 个答案:

答案 0 :(得分:0)

我认为你看错了。

不是使用两个不同的按钮,为什么不只是使用一个按钮,然后通过函数设置状态?

  1. 用户输入值,然后按按钮。
  2. 按钮调用功能,检查值是否正确。
  3. 根据结果,设置活动状态。