Отключить автоматическое изменение размера в 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;
Вы можете увидеть пример этого на практике в этом уроке о состоянии и официальном примере.