मैं फेजर 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
Robert Smith 28 अक्टूबर 2019, 06:20

1 उत्तर

सबसे बढ़िया उत्तर

समाधान काफी सरल है। update() फ़ंक्शन में, scoreText वैरिएबल को skater.body.position.x पर इस तरह सेट करें:

function update() {
    scoreText.x = skater.body.position.x;  
}
2
Manuel Abascal 28 अक्टूबर 2019, 04:23