Fullscreen в Phaser 2

Решил рассказать о том, как сделать нормальный Fullscreen mode в игре с учётом нашего менеджера масштабирования игры — ScaleMng.

Дело в том, что в полноэкранном режиме свойства padding и marging нашего родительского DOM объекта всегда равны 0, т.е. он автоматически выставляется в координаты (0, 0). А т.к. мой ScaleMng для подстройки экрана игры пользуется как раз этими свойствами, то в fullscreen он просто не будет работать правильно.

Вот какую картину я получил просто перейдя в полный экран при обычно работающем ScaleMng:

Т.е. изображение экрана игры сдвинуто вправо и выходит за экран от чего получается обрезано. ScaleMng делает всё правильно и если бы fullscreen позволял выставить margin, то экран игры бы центрировался.

Для того, чтобы поправить это дело, я внёс в ScaleMng небольшие изменения:

А именно:

[11]: установка свойства scaleMode для fullScreen;

[30-32]: выход из функции расчёта скейла и сдвига игры во время полноэкранного режима.

Теперь фулскрин работает без касяков и вы сами можете посмотреть это в действии по ссылке или скачав мой шаблон для Phaser2 из репозитория.