4

モノゲームで Windows 8 用のゲームを作成しましたが、問題が発生しました。ようやく Surface RT を手に入れましたが、このデバイスでは読み込み時間が非常に長いことに気付きました。他のいくつかのゲームを調べたところ、これは珍しい問題ではないことがわかりました。リソースの読み込み中のユーザーの退屈と戦うために、読み込みバーといくつかのランダムな事実を画面に描画したいと考えています。問題は、リソースをロードするとゲームの残りの部分がブロックされ、初期化部分でスタックしたままになるため、何も描画できないことです。

Lost Thread の作成を検索しましたが、Windows ストアがそれをサポートしていないことがわかりました。そのため、バックグラウンドでリソースをロードする方法や、ゲーム全体をブロックしない別の方法で Draw( )画面に読み込みバーを描画する機能。

4

1 に答える 1

4

私はこのようなことをしました:

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。バーでは、そのカウンターに関連付ける必要があります。

于 2013-10-04T00:28:25.283 に答える