2

フェイザーでダブルジャンプする方法を知りたいです。

this.jumpCount = 0;
this.jumpkey = game.input.keyboard.addKey(Phaser.Keyboard.UP);
this.jumpkey.onDown.add(jumpCheck, this); 

jumpCheck = function(){
   if (player.jumpCount < 2){
      player.jump();
      player.jumpCount ++;
   }
}

これを試してみましたが、うまくいきませんでした。言葉の意味がよくわかりませんthis.

編集:わかりました、私はこれを自分で解決しようとしましたが、何をすべきかわかりません。

これが私の新しいコードです。2 段ジャンプはできますが、私のプレーヤーは 3 段、4 段などのジャンプで「飛ぶ」ことができますが、その理由はよくわかりません。私たちを手伝ってくれますか ?

//jump
    var jumpCount = 0;
    var jumpKey = game.input.keyboard.addKey(Phaser.Keyboard.UP);
    jumpKey.onDown.add(jumpCheck);

    function jumpCheck() {
        if((jumpCount < 1) && (player.body.touching.down)){
            jump1();
            console.log("jumpCount =" + jumpCount);
            console.log("Vitesse ="+ player.body.velocity.y);
            //  attention, remettre jumpCount à zéro si on touche le sol
//          if(player.body.touching.down){
//              jumpCount = 0;
//          }
        }

    //double jump
        if((jumpCount < 2) && (!player.body.touching.down)){
            jump2();
            console.log("jumpCount =" + jumpCount);
            console.log("Vitesse ="+ player.body.velocity.y);

        }

    }

    function jump1(){
        console.log("jump1");
        jumpCount ++;
        player.body.velocity.y = -250;
    }

    function jump2(){
        console.log("jump2");
        jumpCount ++;
        player.body.velocity.y = -150;

    }

Chrome コンソールは常に jumpCount = 1 を送信します。

4

2 に答える 2