0

我试图让加载屏幕在您运行启动游戏的可执行文件后立即弹出,而游戏加载时我想在桌面上显示图像,就像 Gamemaker 允许您拥有加载图像一样。

我环顾四周,大多数人都希望在加载不是我想要的内容时显示图像,或者可能是... =P

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

谢谢。

4

2 回答 2

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
    }

然后在您的内容项目中放置一个加载纹理

于 2013-12-23T18:16:14.433 回答
0

如果我理解正确,您基本上希望打开一个非全屏窗口,该窗口也缺少窗口附带的常规边框和按钮。

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

这里!

我将从创建一个简单的 Game1 类开始,它可以跟踪图像并跟踪计时器的时间。稍后您可以添加实际跟踪主程序中资产加载的逻辑。首先,我只测试它一段固定的时间,比如 3 秒。

于 2012-08-01T17:47:50.127 回答