У меня проблема, когда растровые изображения, похоже, загружаются после их создания и добавления на сцену. Вы можете увидеть весь этот код, работающий right here. Вы можете посмотреть журнал консоли для операторов журнала, которые я получаю (также показано ниже).Растровые изображения EaselJS, не показывающие
Я создаю растровые изображения в функции здесь (я знаю, что этот код работает исправно - вам не обязательно это читать, но обратите внимание, что в конце игры значение true.).
for (i = -r; i <= r; i++){
var min = Math.max(-r, -r - i);
var max = Math.min(r, r - i);
for (j = min; j <= max; j++){
k = -1 * (i + j);
//var a = length)Math.floor(Math.random() * t_imgs.;
//var a = mountain;
var a;
if(game.grid[i][j].height == null){
a = mountain;
} else if (game.grid[i][j].height > .5){
a = plain;
} else{
a = water;
}
var b = Math.floor(Math.random() * (game.t_imgs[a].length));
if(game.t_imgs[a][b] == null){
console.log("NULL:", a, b);
}
bitmap = new createjs.Bitmap(game.t_imgs[a][b]);
container.addChild(bitmap);
bitmap.regX = game.hexwidth/2;
bitmap.regY = game.hexheight/2;
bitmap.x = game.xcenter + game.hexwidth * .75 * i;
bitmap.y = game.ycenter + game.hexheight * .5 * (j - k);
game.grid[i][j].termap = bitmap;
}
}
document.getElementById("loader").className = "";
createjs.Ticker.addEventListener("tick", tick);
console.log("finished loading images and creating bitmaps. Game update set to true");
game.update = true;
}
Моя проблема заключается в функции галочки, которая называется 60 раз в секунду. Я хочу, чтобы карта обновлялась, если что-то изменилось (когда game.update == true).
function tick(event) {
if(game.update == true){
game.update = false;
var i,j,k;
var r = game.radius;
for (i = -r; i <= r; i++){
var min = Math.max(-r, -r - i);
var max = Math.min(r, r - i);
for (j = min; j <= max; j++){
k = -1 * (i + j);
if(game.grid[i][j].termap != null){
game.grid[i][j].termap.x = game.xcenter + game.hexwidth * .75 * i;
game.grid[i][j].termap.y = game.ycenter + game.hexheight * .5 * (j - k);
} else {
console.log("A bitmap is null.");
game.update = true; //still needs to be updated
}
}
}
game.stage.update(event);
console.log("UPDATED!");
}
}
game.update установлен только в true после создания всех растровых изображений. Как вы можете видеть, загружается ли сайт, (here - это ссылка снова), журнал консоли показывает все растровые изображения, которые должны быть созданы до обновления сцены. Это также отображается в консольных отчетах печати. Если вы щелкнете по центру экрана и перетащите указатель мыши, вы можете принудительно выполнить обновление, перемещая карту, которая меняет значение game.update на true и правильно заставляет сцену обновляться. Я не могу понять, почему растровые изображения не отображаются сразу, так как game.update явно вызывается только после их создания и добавления на сцену. Растровые изображения имеют видимое свойство, но значение по умолчанию равно true.