2016-12-18 9 views
0

ボタンをクリックすると、クリックしたときに実行されるコードが1-5回実行されます(lwjglを使用して長方形を描画します)。カスタムボタンがクリックで3〜4回実行されています

ここでボタンクラスからメソッドです:

public void getInput(){ 
    if(Mouse.next()){ 
     if(Mouse.isButtonDown(0)){ 
      if(b.clicked(Mouse.getX(), Mouse.getY())){ 
       System.out.println("button clicked"); 
      } 
     } 
    } 
} 

ありがとう:

public boolean clicked(float mX, float mY){ 
    if(mX >= x && mX <= x + width && 
      mY <= Display.getHeight() - y && mY >= Display.getHeight() - (y + height)){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

はここでボタンクラスやメソッドを利用してクラスのコードです!

+0

:)を答えることを試みる質問がある場合は、マウスボタンを待ち受けます

boolean prevState; public void update(...){ if(Mouse.isButtonDown(0) && !prevState){ item++; } prevState = Mouse.isButtonDown(0); } 

アップあなたは一度だけクリックを処理する必要がある場合、ユーザーがクリックを保持する場合は、それは毎週のイベントを呼び出すでしょう – Xephi

答えて

0

解決方法は非常に簡単です。マウスボタンが押されていればMouse.isButtonDownが呼び出されます。したがって、マウスを1秒間押すと、このメソッドが約50回呼び出されます(プログラムのティックレートを決定します)。最後のティックで状態を保存するブール値を使用する必要があります。これは、次のようになります。あなたは、私はそれがほとんどのケースで

+0

それは感謝を働いた! – guavadrag0n

関連する問題