@Alecxandrys

Почему не инициализируется поле в Phaser.js?

День добрый.
При инициализации Phaser не происходит рендер компонент.
Код инициализации таков
Template.Battlefield.onRendered(function(){

    game = new Phaser.Game(w, h, Phaser.AUTO, '', { preload: preload, create: create, update: update });

   });

function preload() {
    game.load.image('Grass', 'BattleResource/Grass.png');
    game.load.image('Cover', 'BattleResource/Cover.png');
    game.load.image('Danger', 'BattleResource/Danger.png');
    game.load.image('Diff', 'BattleResource/Diff.png');
    game.load.image('Unreach', 'BattleResource/Unreach.png');
}

function create() {
    var x = 20;
    var y = 12;

    var xStep = Math.floor(w / x);
    var yStep = Math.floor(h / y);

    var tiles = game.add.group();


    for(var i=0;i<y;i++)
    {
        for(var j=0;j<x;j++) {
            var tmp=BS.map[i][j].ground;
            var cell;

            if(tmp==1){cell=tiles.create(xStep*(j),yStep*(i),'Grass');}
            else if(tmp==2){cell=tiles.create(xStep*(j),yStep*(i),'Cover');}
            else if(tmp==3){cell=tiles.create(xStep*(j),yStep*(i),'Danger');}
            else if(tmp==4){cell=tiles.create(xStep*(j),yStep*(i),'Diff');}
            else if(tmp==5){cell=tiles.create(xStep*(j),yStep*(i),'Unreach');}
        }
    }
}

Результат для IE
e1c0cb7a03e74c658b3bc6a38835ae84.jpg
Результат для FF
c4efab217c0943e39624428ad68c2869.jpg

Содержание BS может быть важно, так как с консоль Firebug выбрасывает, что BS[i][j] не определён, но пошаговый проход цикла не выдаёт ошибку. Значение ground определяет какой тип гекса будет отображён.

P.S Cell нужна будет для установки параметров, её удаление ничего не меняет, так же как и вынос инициализации game вне шаблона Meteor для предзагрузки.

P.S.S Наличие зазоров между гексами роли не играет, проблема в динамических параметрах из-за разных экранов и это будет вылечено подгонкой. Кому интересно:
h=$(window).height()-40;//отступ от края
w=$(window).width()-40;
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
@Alecxandrys Автор вопроса
Проблема была в неправильной ориентации массива BS.map, который по факту хранился на боку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы