Отключить автоматическое изменение размера в Phaser

Я создаю адаптивную игру с помощью Phaser. Ширина установлена ​​на 360, а высота рассчитывается в соответствии с коэффициентом подгонки.

var height = (360 * screen.height) / screen.width;
var game = new Phaser.Game(360, ratio, Phaser.AUTO, "", {preload: preload, create: create, update: update});

В функции create() я изменяю его размер до 100%, поэтому экран заполняется:

function create () {
   document.querySelector("canvas").style.width = "100%";
   document.querySelector("canvas").style.height = "100%";
   // more stuff...
}

Однако, если я сейчас нажму или сделаю что-нибудь, размер холста снова изменится на 360xheight. Как я могу отключить это?

Спасибо

1 ответ

Решение

Phaser на самом деле имеет возможность масштабировать игру / холст по ширине или высоте встроенного окна.

Попробуйте вместо этого использовать ScaleManager. В твоем случае наверное SHOW_ALL, и это может быть установлено в вашем состоянии загрузки (имеется в виду в начале вашего кода):

this.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;

Вы можете увидеть пример этого на практике в этом уроке о состоянии и официальном примере.

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