gpt4 book ai didi

windows-8 - 创建后台线程单游戏

转载 作者:行者123 更新时间:2023-12-03 06:50:18 24 4
gpt4 key购买 nike

我在单一游戏中为 Windows 8 制作了一款游戏,但遇到了问题。我们终于拿到了 Surface RT,但我们注意到该设备的加载时间非常长。我们查看了其他几款游戏,发现这并不是一个罕见的问题。为了消除用户在加载资源期间的无聊感,我想在屏幕上绘制一个加载栏和一些随机事实。问题是加载资源会阻塞游戏的其余部分,并且不允许我绘制任何内容,因为它停留在初始化部分。

我搜索了创建一个丢失线程,但发现 Windows 应用商店不支持该功能,所以现在我的问题是如何在后台加载我的资源或其他方式来不阻止整个游戏并能够调用句柄我的 Draw() 函数在屏幕上绘制加载栏。

最佳答案

我做了这样的事情:

protected volatile bool ContentLoaded = false;

protected async override void LoadContent()
{
base.LoadContent();

Enabled = false;
await ThreadPool.RunAsync(new WorkItemHandler(LoadAllContent));
}

protected void LoadAllContent(Windows.Foundation.IAsyncAction action)
{
if (action.Status == Windows.Foundation.AsyncStatus.Error)
System.Diagnostics.Debug.WriteLine(action.ErrorCode);

// load your contents

ContentLoaded = true;
Enable = true;
}

Draw 方法的开头:

if (!ContentLoaded)
{
// draw your loading screen

return;
}

如果您想要一个进度条,您需要一个计数器来增加您加载的每个资源,那么在您的 Draw 中,您的进度条必须与该计数器相关。

关于windows-8 - 创建后台线程单游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com