游戏开始时XNA加载/启动画面

时间:2012-08-01 17:22:33

标签: xna

我正试图在你运行启动游戏的可执行文件时立即弹出一个加载屏幕,同时游戏加载我想在桌面上显示图像,就像Gamemaker允许你加载一样图像。

我有一个简短的环顾四周,大多数人想要一个图像显示,同时他们加载的内容不是我想要的,或者可能是...... = P

我的猜测是在开始时设置无边界的游戏窗口,加载启动画面,绘制它,然后开始所有主要加载(特别是通过SlimDX加载DirectInput需要一段时间)。然而,这种支持是否具有透明/不规则形状的图像? E.G如果我希望在游戏加载时显示无边界圆圈,那可能吗?

感谢。

2 个答案:

答案 0 :(得分:1)

这很简单。只需实施System.Threading即可。

以下是它的工作原理,首先添加:

using System.Threading;

到班级的顶部,然后添加以下内容:

    //the enum for state types
    enum GameState
    {
        Loading,
        StartMenu

    }

    //Init our gameState enum as variable
    GameState gameState;        

    protected override void LoadContent()
    {
        gameState = GameState.Loading; 


        spriteBatch = new SpriteBatch(GraphicsDevice);

        device = GraphicsDevice;

        Window.Title = "Your Window";

        //Other stuff that you had here before, now go in LoadGame()

        loadingscreen = Content.Load<Texture2D>("loading");             

        Thread bgLoad = new Thread(new ThreadStart(LoadGame));
        bgLoad.IsBackground = true;
        bgLoad.Start();

    }
    public void LoadGame()
    {
        //Loading stuff here


        gameState = GameState.StartMenu; //or GameState.Playing
    }

然后在内容项目中加载纹理

答案 1 :(得分:0)

如果我理解正确,你基本上想要打开一个不是全屏的窗口,它也缺少窗口附带的常规边框和按钮。

我无法测试这个,但这应该是一个好的开始。

Here!

我首先要创建一个可以跟踪图像并跟踪计时器时间的裸骨Game1类。 稍后您可以添加实际跟踪主程序中资产加载的逻辑。 首先,我只需要测试3秒钟的固定时间。