Создать фоновый рисунок Моногам

Я сделал игру для Windows 8 в одноигровой, но столкнулся с проблемой. Наконец-то мы взялись за Surface RT, но заметили, что время загрузки на этом устройстве очень велико. Мы посмотрели несколько других игр и заметили, что это не редкость. Чтобы бороться со скукой пользователя во время загрузки ресурсов, я хочу нарисовать полосу загрузки и некоторые случайные факты на экране. Проблема в том, что загрузка ресурсов блокирует остальную часть игры и не позволяет мне что-либо рисовать, потому что она застревает в инициализирующей части.

Я искал создание проигрышной темы, но обнаружил, что Windows Store не поддерживает это, поэтому теперь мой вопрос к вам, как я могу загрузить свои ресурсы в фоновом режиме или каким-либо другим способом, чтобы не блокировать полную игру и иметь возможность вызывать обработать мою ничью () функция, чтобы нарисовать полосу загрузки на моем экране.

1 ответ

Решение

Я сделал что-то вроде этого:

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 ваш бар должен относиться к этому счетчику.

Другие вопросы по тегам