我正在创建一个 XNA 应用程序,我想在启动 XNA 应用程序之前添加一个 Windows 表单,询问用户他的用户名和密码登录,我创建了所有这些但是当我运行我的程序时它直接打开 XNA 窗口。请告诉我如何使用 Windows 窗体运行 XNA?
问问题
1850 次
1 回答
1
您希望如何在游戏中创建表单取决于您,但在开始游戏之前检查某些内容的最佳方法可能是放入您的 Program.cs 文件。
我做的一个例子是这样的:
using System.Windows.Forms;
static class Program
{
static void Main(string[] args)
{
#if WINDOWS
if (MessageBox.Show("Do you wish to start?", "Start Game", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
#endif
}
}
这会提示用户是否应该开始游戏。如果您随后使用自己的表单对其进行自定义,该表单会检查一些数据并返回有效的 DialogResult。如果 DialogResult == DialogResult.OK,那么用户是有效的,也许对话框可以存储登录信息,以便游戏可以获取它(如果需要)并且可能在 game.Run() 之后执行此操作;
在创建自定义 InputDialog 时,非常简单。我有一个我刚刚为此定制的动态输入框。那么这个简单的布局就变成了:
using System.Windows.Forms;
static class Program
{
static void Main(string[] args)
{
#if WINDOWS
XNASignIn signinDialog = new XNASignIn();
DialogResult result = DialogResult.Abort;
while (result == DialogResult.Abort)
{
result = signinDialog.ShowDialog();
if (result == DialogResult.Abort)
MessageBox.Show("You entered the wrong username and password");
}
if (result == DialogResult.Cancel)
MessageBox.Show("You cancelled the login, the game will exit");
else if (result == DialogResult.OK)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
#endif
}
我的登录对话框的完整源代码:
只需创建一个类并将其复制进去。
请记住为您的 XNA 项目添加对 System.Windows.Forms 的引用。
于 2013-04-24T10:44:53.587 回答