使用XNA应用程序连接Windows窗体

时间:2013-04-24 09:52:12

标签: winforms forms xna connection window

我正在创建一个XNA应用程序,我想在启动XNA应用程序之前添加一个Windows窗体,它要求人员输入用户名和密码,我创建了所有这些但是当我运行我的程序时它会直接打开XNA窗口。请告诉我如何使用Windows窗体运行XNA?

1 个答案:

答案 0 :(得分: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
    }

我的登录对话框的完整源代码:

http://pastebin.com/yVZbtxH8

只需创建一个类并将其复制。

请记住为XNA项目添加对System.Windows.Forms的引用。