Мой код якобы создан для отображения двух спрайтов кнопок (ничего ужасно сложного (или это так?), Но ничего не появляется, даже синий экран, который должен отображаться только при создании переменной игры и ее запуске. Весь мой код был сделан в соответствии с официальной документацией Excalibur, так что же происходит?
Код:
var game = new ex.Engine({
width: 1024,
height: 768
});
function loadAssets()
{
var loader = new ex.Loader();
var resources = {
txGameTitle: new.ex.Texture("icons/GUI/final/"),
txStartButton: new.ex.Texture("icons/GUI/final/MenuPlayButton.png"),
txLoadButton: new.ex.Texture("icons/GUI/final/MenuLoadButton.png"),
txOptionsButton: new.ex.Texture("icons/GUI/final/"),
txExitButton: new.ex.Texture("icons/GUI/final/"),
txMenuBackground: new.ex.Texture("icons/GUI/final/"),
txMenuMusic: new.ex.Sound("icons/GUI/final/")
};
for (var loadable in resources)
{
if (resources.hasOwnProperty(loadable))
{
loader.addResource(resources[loadable]);
}
}
}
function startUp()
{
var StartButton = new ex.Actor.extend({
onInitialize: function (engine)
{
this.addDrawing(txStartButton.asSprite());
}
});
var LoadButton = new ex.Actor.extend({
onInitialize: function (engine)
{
this.addDrawing(txLoadButton.asSprite());
}
});
}
function init()
{
loadAssets();
startUp();
}
init();
game.start(loader).then(function () {
console.info("Game started!");
});
извините за плохое форматирование.
Думаю, это могло быть из-за ошибки кода. Я заметил, что прямо в конце файла
game.start(loader)
имеется ссылка на переменную грузчик, но кажется, что она не определена. Есть такая же переменная, созданная внутри функции loadAssets, но она локальная. Вероятно, для того, чтобы его использовать, вам нужно определить его выше.
var loader;
function loadAssets() {
loader = ...
}
...other code
game.start(loader).then(...
Другой вариант - определить загрузчик вне функции loadAssets.
var loader = new ex.Loader();
function loadAssets() {
var resources = {...
}
...other code
game.start(loader).then(...
по-прежнему только белый экран.