我有以下代码作为XNA游戏的一部分:
private void gameOver()
{
if (!m_IsGameOver)
{
string message = String.Format("GAME OVER!!!{0}Your score is: {1}",
Environment.NewLine, GameScore);
if (MessageBox.Show(message, "GameOver", MessageBoxButtons.OK) == DialogResult.OK)
{
this.Exit();
}
m_IsGameOver = true;
}
}
private void gameWon()
{
string message = String.Format("You Won!!!{0}Your score is: {1}",
Environment.NewLine, GameScore);
if (MessageBox.Show(message, "You Won!", MessageBoxButtons.OK) == DialogResult.OK)
{
this.Exit();
}
}
出于某种原因,我收到了以下错误:
"The name 'MessageBox' does not exist in the current context"
"The name 'MessageBoxButtons' does not exist in the current context"
"The name 'DialogResult' does not exist in the current context"
我正在尝试添加"System.Windows…",但似乎"系统"中没有"窗口"…
我该如何解决这个问题?
您似乎正在尝试在XNA中使用WinForms类。然而,根据文档,WinForms不包含在XNA中:从MessageBox
文档中可以看出,MessageBox
方法的第一列中都没有XNA徽标,这意味着XNA中不支持它们。(相比之下,请参阅System.Linq.Enumerable
上的文档,其中所有方法旁边都有X形状的XNA徽标)。
对于游戏中的GUI,存在各种各样的解决方案,比如这个;这个、这个和这个SO问题中包含了更多的链接,这个MSDN论坛帖子包含了另一个链接列表。
好的,我找到了解决方案
非常简单:/
将"System.Windows"添加到项目中的"引用"部分:)
此外,如果您尝试引入System.Windows.Forms,并且您使用的是XNA的键,如keys.Up,则会与System.Windows.Form键发生名称冲突。