从Game.cs获取参数的类

时间:2014-10-27 22:31:06

标签: c# xna

我正在写一个简短的节目。我需要的是我想在Game.cs中设置“正确”参数,在我的advTry.cs中,我想使用这个“正确”参数来确定输出。和我的班级advTry.cs一样:

public bool correct { get; set; }

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

在我的GAME.cs中,我将其定义为:

if (messageString == "18")
{
    Console.WriteLine("Main OK");
    advTry.correct = true;
}
else
{
    advTry.correct = false;
    Console.WriteLine("Main not OK");
}

我使用Console.WriteLine来检查布尔参数“正确”的传递。虽然结果原来是“不行”,但是当我开始输入“18”时,它首先发出“Main not OK”,然后“Main OK”(很容易理解,因为输入“1”然后“8”) 。

然而,最大的问题是“OK”永远不会出现,状态“GameState.AnswerNo”无法实现,为什么会这样?请问如何解决?

1 个答案:

答案 0 :(得分:0)

你的问题根本不清楚。除了这两个条件之外,你还没有想到代码的结构。现在回答它是不可能的。但是,我对你在这里写的内容的最好猜测是你在advTry类中将“correct”的值设置为true,但是你没有在该类中运行代码来向控制台输出OK。该代码不会因为您设置“正确”的值而自动运行。你需要在advTry.cs中做这样的事情:

private bool _correct;
public bool correct  
{
    get { return _correct; }
    set 
    {
        _correct = value;
        output();
    }
}
private void output
{
    if (_correct)
    {
       //output "OK"
    }
    else
    {
       //output "Not OK"
    }
}