Фаза 3 имеет значение. Js setVelocity не пикселей в секунду? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть простая демонстрация, когда я хочу сделать спрайт движущимся на 1 пиксель / сек, установив его скорость.Но что-то идет не так, и через 1 секунду достигает + 41 пикселя.

class Test extends Phaser.Scene {
    preload() {
        this.load.image('tank', require('../assets/tank.png'));
    }

    create() {
        this.matter.world.setBounds(-this.game.config.width, -this.game.config.height,
            this.game.config.width as integer * 2, this.game.config.height as integer * 2);
        this.matter.world.disableGravity();

        let t = new Phaser.Physics.Matter.Sprite(this.matter.world, 100, 100, 'tank');
        t.setVelocity(1, 0);

        console.log(t.x, t.y);
        setInterval(() => {console.log(t.x, t.y);}, 100);
    }

    update(time: number, deltaInMs: number) {
    }
}

window.onload = () => {
    let config = {
        type: Phaser.AUTO,
        width: 800,
        height: 600,
        parent: '',
        scene: Test,
        physics: {
            default: 'matter'
        }
    };
    const game = new Phaser.Game(config);
};

Вывод:

100 100
105.79346520930099 100
111.24789770010324 100
116.38313761644142 100
121.21786406008547 100
125.76966303456044 100
130.05509141309238 100
134.08973716316 100
137.88827604671374 100
141.4645250023074 100

Какие единицы измерения используются материей в Phaser?

...