2016-05-29 23 views
2

私はLibgdxでJavaを使用して私の研究のためのプロジェクトとして小さなゲームを作成しています。 ゲームは本当にシンプルです:2D、サイドビュー、矢板で制御され、すべてが単位で分けられたグリッドのように見えます(プレイヤーは1ユニットの高さ、環境の潮は1ユニットの高さです...)。 問題は、キャラクターの動きが素早く(そしてそうでなければならない)、1ユニットだけを左または右に移動するのが本当に難しいことです。 キーボードからの2つの入力の間に遅延を作ることができるのだろうかと思っていたのですが、動きの部分が「更新」メソッドにあるので、キーを押すたびに5または10の入力を作成します。 私はキーを押す度に起こったjavaタイマー(0.2秒や0.3秒のような)で処理しようとしましたが、タイマーが終了するまでキーボードを聴くことができませんでした。しかし、私はそれが本当に汚れていることを知っているので、私はこれを行うためのよりまともな方法で私を導くためにあなたの助けを求めています。ありがとう。2つの入力間の遅延java

+0

あなたはGUIゲームをするときにゲームループを考える。あなたの人生を楽にしてくれるでしょう。 http://gameprogrammingpatterns.com/game-loop.html –

答えて

0

最後の使用時間を現在の時間と比較することで、クールダウンの種類のものを簡単に実装できます。

double coolDownInMillis = 1200; 
double lastTime = 0; 

public void move() { 
    double now = System.currentTimeMillis(); 
    if(lastTime - now > coolDownInMillis && pressingTheRightKey()){ 
     //do what you want 
     lastTime = System.currentTimeMillis(); 
    } 
} 

またはこのようなものです。

+0

私はそれをするだろうと思う。ありがとうございました。 – Herawo

+0

@Herawoもしそうなら、私の答えを実用的な解決策としてマークしてください。 – eldo

関連する問題