← На главную
Серия руководств

Шаг 6. Физическое тело платформ

Создание платформера с PixiJS • Шаг 6 из 15

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

Что представляет собой физическое тело платформы? По сути, платформа — прямоугольный спрайт.

Чтобы движок обрабатывал платформу, создадим прямоугольник, точно соответствующий её контуру. Размеры и положение можно вычислить из координат и размеров текущей платформы.

В файле Platform.js:

import * as Matter from 'matter-js';

export class Platform {
    constructor(rows, cols, x) {
        // ...
        // specify the speed of the platform
        this.dx = App.config.platforms.moveSpeed;
        this.createBody();
    }

    createBody() {
        // create a physical body
        this.body = Matter.Bodies.rectangle(this.width / 2 + this.container.x, this.height / 2 + this.container.y, this.width, this.height, {friction: 0, isStatic: true});
        // add the created body to the engine
        Matter.World.add(App.physics.world, this.body);
        // save a reference to the platform object itself for further access from the physical body object
        this.body.gamePlatform = this;
    }
}

Для удобной настройки вынесем скорость платформ в глобальную конфигурацию:

export const Config = {
    // ...
    platforms: {
        // ...
        moveSpeed: -1.5
    }
    // ...
};