2016-10-08 13 views
2

私は自分のコースでプロジェクトのためのゲームを作っており、「キャラクター」をダブルジャンプ(2回目の空中ジャンプ)をする方法を考えています。それは、プレイヤーが画面上の固定位置にあり、画面上に表示されているようにジャンプして障害物の下をスライドする無限ランナーのゲームです。私は現在、私のジャンプとスライドの機能は動作していますが、より正確で楽しい使い方をするために微調整が必​​要です。htmlキャンバスを使用せずに「ダブルジャンプ」機能を実装することは可能ですか?

ジャンプアニメーションをキャンセルして別のジャンプを実行するために.stop()を使用してみました。 はここを見てjsbinで私のコードです:

http://jsbin.com/yekarel/edit?html,js,output

は本当にこれだけが可能であるかどうかを確認するために探していると歓迎コードを片付け上の任意の提案はまだですが、どのように、それをやって行くことに。ありがとう。

編集:私はこのプロジェクトでキャンバスの使用を避けようとしているので、キャンバスに関係しない解決策を探しています。

+0

私はChromeでjsbinを実行すると、スペースバーを押すたびに文字がジャンプします。それを十分に押すと、キャラクターは「RUN!」よりも高くジャンプします。テキスト。これはあなたが達成しようとしていることとどのように違いますか?シーケンシャルジャンプを最大2つに制限しようとしていますか? – MJH

+0

@MJH私はそれが起こっていることに気付かなかった。しかし、今、それを知って、はい、正しいジャンプのように2つの最大の音への順次ジャンプを制限します。 –

答えて

0

私はこれが最初で変数宣言にvar jumpCount = 0;を追加した後、(あなたがdoubleJump()fallDown2()機能を削除することができ、その場合には)次の変更を行うことによって達成することができると思う:

// jump function 
$(this).keyup(function(e) { 
    if(jumpCount < 2 && (e.keyCode === 0 || e.keyCode === 32)) { 
    jumpCount++; 
    $($character).animate({ top: '-=120px' }, { 
     duration: 350, 
     easing: 'linear', 
     complete: function() { 
     fallDown(); 
     } 
    }); 
    } 
}); 

function fallDown() { 
    $($character).animate({top: '+=120px'}, { 
    duration: 180, 
    easing: 'linear' 
    }); 
    jumpCount--; 
} 
+0

それはかなりうまくいく、うれしい!アニメーションのすべてのタイミングは、気分が良くなるように調整する必要がありますが、あなたは私に多くの助けをしました。とても感謝しています。@MJH –

関連する問題