2014-10-28 16 views
0

我正在用用户输入和按钮编写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将出现在其正下方。任何更好的想法来完成这个功能?

+0

为什么不给这两个按钮相同的位置? – 2014-10-28 15:07:48

+0

感谢您的回复。不管输入如何,在相同位置使用这两个按钮只会返回一个答案。 – 2014-10-28 15:12:05

+0

这听起来像您可能正在查看代码的错误部分。这听起来像你的solveButton没有被正确地重新分配/重绘,但很难确切地知道给出的代码。 – 2014-10-28 15:55:59

回答

0

我想你是看错了问题。

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

  1. 用户输入值,并按下按钮。
  2. 按钮调用函数,检查值是否正确。
  3. 根据结果设置活动状态。
相关问题