Phaser Camera. Как заставить камеру приближаться к определенным координатам, а потом возвращаться обратно в исходное положение?

Мне необходимо приблизить камеру в определенную координату (х, у), а потом вернуть камеру в исходное первоначальное положение. Какие мне нужно смотреть свойства камеры или какой метод использовать? Пробовала методы: centerOn, pan, followOffset, setZoom. Не помогает. Может что-то не так делаю. Спасибо) #Phaser #Camera #Zoom


Ответы (1 шт):

Автор решения: Rudi

По клику на карте можно сделать это так..

class Example extends Phaser.Scene {
    constructor () {
        super();

    }

    preload () {
        this.load.image('map', 'assets/tests/camera/earthbound-scarab.png');
    }

    create () {
        this.cameras.main.setBounds(0, 0, 1024, 2058);

        this.add.image(0, 0, 'map').setOrigin(0);

        this.cameras.main.setZoom(1);
        this.cameras.main.centerOn(0, 0);

        this.input.on('pointerdown', function (e) {
            const cam = this.cameras.main;
            cam.pan(e.event.clientX, e.event.clientY, 2000, 'Power2');// e.event.clientX координаты клика
            cam.zoomTo(4, 3000);// приближаем камеру к координатам клика
            
            setTimeout(function(){// Ставим задержку
              cam.pan(e.prevPosition.x, e.prevPosition.y, 2000);// e.prevPosition.x Вставляем предыдущие координаты 
              cam.zoomTo(1, 3000);//  Выставляем нужный зум
            },3500);//Через 3500 ms вернёт камеру на предыдущие координаты
            
        }, this);
    }

    update () {
        const cam = this.cameras.main;
    }
}

const config = {
    type: Phaser.AUTO,
    parent: 'phaser-example',
    width: 800,
    height: 600,
    pixelArt: true,
    physics: {
        default: 'arcade',
    },
    scene: [ Example ]
};
const game = new Phaser.Game(config);

→ Ссылка