Phaser 3 - Как создать эффект плавного масштабирования - PullRequest
0 голосов
/ 24 мая 2019

Как сделать эффект масштабирования вместо мгновенного масштабирования?

Привет, сейчас я занимаюсь разработкой игры, которая будет увеличиваться при выполнении условия. Для этого я перешел по этой ссылке.

https://rexrainbow.github.io/phaser3-rex-notes/docs/site/camera/

camera = this.cameras.main;

if (condition) {
  camera.setZoom(3);
  camera.zoom = 3;
}

Работает, но нет перехода / анимации масштабирования. Просто увеличено.

Как сделать эффект масштабирования вместо мгновенного масштабирования?

1 Ответ

2 голосов
/ 24 мая 2019

Вы можете играть с панорамированием и заменить 'Power2' на:

  • Эластичный
  • Sine.easeInOut
  • Или оставить его пустым

var config = {
    type: Phaser.AUTO,
    parent: 'phaser-example',
    width: 800,
    height: 600,    loader: {
      baseURL: 'https://raw.githubusercontent.com/nazimboudeffa/assets/master/',
      crossOrigin: 'anonymous'
    },
    scene: {
        preload: preload,
        create: create
    }
};

var game = new Phaser.Game(config);

function preload ()
{
    this.load.image('map', 'pics/hyrule.png');
}

function create ()
{
    this.cameras.main.setBounds(0, 0, 1024, 1024);
    
    this.add.image(0, 0, 'map').setOrigin(0);

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

    this.input.on('pointerdown', function () {

        var cam = this.cameras.main;

            cam.pan(500, 500, 2000, 'Power2');
            cam.zoomTo(4, 3000);

    }, this);
}
<script src="//cdn.jsdelivr.net/npm/phaser@3.17.0/dist/phaser.min.js"></script>
...