Част 3 - Построяване на света
Това, което this.add.image
всъщност прави, е да създаде нов обект на играта (или както се наричат в кода - Game Object) от тип изображение (Image) и да го добави в списъка за показване, принадлежащ на сцената. В този списък присъстват всички обекти на играта. Те могат да бъдат разположени навсякъде по екрана без проблем. Разбира се, ако те са извън района от (0; 0) до (800; 600), няма да ги виждате, защото ще бъдат "извън екрана", но все още ще съществуват в сцената.
Самата сцена няма точен размер и се простира безкрайно във всички посоки. Така наречената камера (в кода - Camera) управлява това, което виждате от сцената. Активната камера може да бъде местена по Ваше желание. Възможно е също да промените и мащаба ѝ, т.е. да я "приближите" до или да я "отдалечите" от сцената. Можете също да създате допълнителни камери, които показват други части от сцената. Тази обширна тема не е в обхвата на този урок, но е достатъчно да споменем, че камерите във Phaser 3 имат в пъти повече възможности от тези във Phaser 2. Неща, които в миналото бяха немислими, са вече възможни.
За сега ще изградим сцената като добавим фоново изображение и няколко платформи. Това е новата функция create
:
var platforms; function create () { this.add.image(400, 300, 'sky'); platforms = this.physics.add.staticGroup(); platforms.create(400, 568, 'ground').setScale(2).refreshBody(); platforms.create(600, 400, 'ground'); platforms.create(50, 250, 'ground'); platforms.create(750, 220, 'ground'); }
При бърз оглед на кода ще видите, че той използва this.physics
. Това означава, че използваме системата за физична симулация Arcade Physics, но първо трябва да променим конфигурацията на играта си, за да кажем на Phaser, че тази система ни е необходима. Ето и новия конфигурационен обект:
var config = { type: Phaser.AUTO, width: 800, height: 600, physics: { default: 'arcade', arcade: { gravity: { y: 300 }, debug: false } }, scene: { preload: preload, create: create, update: update } };
Новото тук е свойството physics
. След като добавите и изпълните този код, който също можете да намерите в part4.html
от архива на урока, ще видите сцена, много повече наподобяваща игра:
Вече имаме фон и няколко платформи, но как работят тези платформи?