我做了一个简单的按钮类(使用lwjgl渲染矩形),但是当我单击按钮时,被单击时应该运行的代码执行了1-5次。
这是按钮类的方法:
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;
}
}
这是利用按钮类和方法的类中的代码:
public void getInput(){
if(Mouse.next()){
if(Mouse.isButtonDown(0)){
if(b.clicked(Mouse.getX(), Mouse.getY())){
System.out.println("button clicked");
}
}
}
}
谢谢!
解决方案非常简单:如果鼠标按钮按下,则必须调用Mouse.isButtonDown。因此,如果您按下鼠标1秒钟,它将调用此方法大约50次(确定程序的滴答度)。您必须使用布尔值将状态保存在最后一个滴答声中。可能看起来像这样:
boolean prevState;
public void update(...){
if(Mouse.isButtonDown(0) && !prevState){
item++;
}
prevState = Mouse.isButtonDown(0);
}
如果您有问题,我会尝试回答:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句