Saya membuat game dengan framework Phaser 3. Permainan saya menggunakan kamera bergulir, jadi menurut apa yang saya cari, cara termudah untuk menampilkan skor adalah dengan wadah. Saya mencoba menggunakan tween untuk memastikan itu mengikuti pemain, tetapi sepertinya saya tidak dapat menemukan properti yang benar.

Saya berharap skor dimulai langsung di atas pemain, dan bergerak ke mana pun dia bergerak.

Jika ada cara yang lebih baik untuk melakukan ini daripada menggunakan wadah, jangan ragu untuk mengubahnya.

//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
    });

CATATAN: Semua kode ini hanya dalam fungsi create().

1
Robert Smith 28 Oktober 2019, 06:20

1 menjawab

Jawaban Terbaik

Solusinya cukup sederhana. Dalam fungsi update(), setel variabel scoreText ke skater.body.position.x seperti ini:

function update() {
    scoreText.x = skater.body.position.x;  
}
2
Manuel Abascal 28 Oktober 2019, 04:23