2016-06-13 4 views
0

私はキーボードを作ろうとしていて、すべて正常に動作します。私はそれぞれのクリックの後にif文を壊して、charの繰り返し性を止めたいだけです。ユーザーが同じ文字を複数回入力することができるため、ブール値を使用する必要はありません。これは画像リスナーブレイクIf文..一度ボタンをクリック

a = new Image(new Texture("Sprites/Keyboard/a.png")); 
    a.addListener(new InputListener(){ 
     @Override 
     public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { 

      apressed = true; 
      return true; 
     } 

     @Override 
     public void touchUp(InputEvent event, float x, float y, int pointer, int button) { 

      apressed= false; 

     } 

    }); 

これは私の活動や状態の中での私の更新にあります。

@Override 
public void handleInput() { 

    if (keyboard.apressed) { 

      builder.append('A'); 
      currentWord = builder.toString(); 
      //break; here doesn't work. says its outside the loop. 

     } 
} 

理論的にはこれは私が望むものですが、使用することはできません。

@Override 
public void handleInput() { 

if (keyboard.apressed) { 

      builder.append('A'); 
      currentWord = builder.toString(); 
      try { 
       TimeUnit.MILLISECONDS.sleep(400); 

      } catch (Exception e) { 
       System.out.println("error"); 
      } 
     } 

前もって感謝します。

+1

あなたが何を求めているのか分かりません。私はあなたが少し明確にする必要があると思う – zapl

+0

あなたは "ループ"を参照しているが、私はあなたのコード内のループを参照していない... InputListenerへのすべてのトリガは、ループではなく、単一の実行です..あなたの質問はない非常にクリア.. – alexbt

+0

最後の例を見て、あなたは私が何をしたいのか理解するでしょう。ボタンをクリックすると、複数のクリックが登録されます。ボタンをタップするたびに1つのチャートを追加したり、タッチダウンしたり、タッチアップしたりしたい。 – Joe

答えて

0

LibGDX TextButtonを使用して自分のキーボードも作成しました。テキストではなくイメージを使用しているので、代わりにImageButtonを使用できます。 ChangeListenerをchanged()メソッドで使用したのは、ボタンを押して離した後にトリガーするだけなので、ボタンが押されている間に繰り返し文字が表示されないためです。

keyButton.addCaptureListener(new ChangeListener() { 
@Override 
    public void changed(ChangeEvent event, Actor actor){ 
     // key logic here 
関連する問題