Разработка игры на phaserjs - 4: загрузка ресурсов

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

В этом уроке мы сделаем загрузку необходимых ресурсов для нашей игры.

Подготовка к работе

Для начала нам нужно создать отдельную ветку для этой игры в нашем стартовом шаблоне ( если у вас его нет его можно скачать здесь ). Находясь в корне нашего проекта создадим новую ветку:

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Загрузка ресурсов

Для загрузки всех необходимых для нашей игры мы будем использовать метод жизненного цикла сцены preload, для этого переходим по пути src/index.ts находим функцию preload:

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

и заменяем ее содержимое на:

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

данный код осуществляет загрузку ресурсов необходимых нам для работы: 4 изображения и один спрайт с нашим персонажем. Хотя это может показаться очевидным, я бы хотел обратить ваше внимание на первый аргумент метода this.load.image является ключом ( aliase ) с помощью которого мы можем впоследствии получить доступ к загруженному ресурсу. В качестве ключа можно использовать любую допустимую в JavaScript стоку.

Вывод изображения на холст

Чтобы отобразить одно из загруженных нами изображений, поместите следующий код внутри функции create:

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

напоминаю что текущий код разрабатывается в ветке platformer-step-1.

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Значения 400 и 300 это координаты изображения по оси X и Y. Почему 400 и 300? Так происходит потому что по умолчанию Phaser все объекты размещает по по центру холста. Так как размер нашего изображения 800x600, то если мы разместим его по центру ( координаты 0 x 0 ), мы не увидим нижнего-правого угла. Если в качестве оси X и Y мы укажем 400 и 300 мы сможем увидеть все изображение полностью.

Подсказка: для того чтобы изменить это поведение вы можете воспользоватся setOrigin. Например:

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Этот код сделает так что по умолчанию изображение будет выводится в левом-верхнем углу.

Порядок отображения объектов на холсте зависит от того в каком порядке они были объявлены в коде. Таким образом если вам необходимо чтобы звезды отображались поверх фона, вам нужно сначала объявить в коде фон а затем звезды:

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

если звезда будет объявлена до фона то она будет отображаться под ним.

Разработка игры на phaserjs - 4: загрузка ресурсов Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"