Как заставить мой текст следить за моим игроком в Phaser 3? - PullRequest
1 голос
/ 28 октября 2019

Я создаю игру с фреймворком Phaser 3. В моей игре используется прокручивающаяся камера, поэтому в соответствии с тем, что я искал, самый простой способ отобразить счет - это контейнер. Я пытаюсь использовать анимацию, чтобы удостовериться, что она следует за игроком, но я не могу понять правильные свойства.

Я ожидаю, что счет начнется прямо над игроком и будет двигаться везде, где он движется.

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

//Camera to follow the skater
    this.cameras.main.setBounds(0, 0, 3000, gameHeight);
    this.cameras.main.startFollow(skater);

// ...some code in between...

 //Scoreboard
    scoreBoard = this.add.container(skater.x, 50);
    scoreText = this.add.text(skater.x, 50, "SCORE: 0", {fontSize: '56px', color: '#fff'});

    scoreBoard.add(scoreText);

    this.tweens.add({
        targets: scoreBoard,
        x: scoreBoard.x + skater.x,
        ease: 'Linear',
        duration: 1,
        delay: 1,
        yoyo: false,
        repeat: -1
    });

ПРИМЕЧАНИЕ. Весь этот код используется только в функции create().

1 Ответ

0 голосов
/ 28 октября 2019

Решение довольно простое. В функции update() установите для переменной scoreText значение skater.body.position.x следующим образом:

function update() {
    scoreText.x = skater.body.position.x;  
}
...