Создать фоновый рисунок Моногам
Я сделал игру для 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
ваш бар должен относиться к этому счетчику.