Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止Libgdx绘制多个对象_Java_Function_Libgdx_Game Engine - Fatal编程技术网

Java 如何防止Libgdx绘制多个对象

Java 如何防止Libgdx绘制多个对象,java,function,libgdx,game-engine,Java,Function,Libgdx,Game Engine,所以,我有一个函数,可以将对象绘制到屏幕上,每当按下鼠标左键时,就会调用这个函数。问题是,由于计算机运行速度非常快,程序认为我一直在按鼠标左键0.5秒,该函数被调用了好几次。我怎样才能防止它发生 提前谢谢 功能: public void drawAll(){ batch.begin(); for( int i = 0; i < 10000; i++){ if( Assets.draws[i].draw == true ){ batch.draw( Assets.draws[i].sprit

所以,我有一个函数,可以将对象绘制到屏幕上,每当按下鼠标左键时,就会调用这个函数。问题是,由于计算机运行速度非常快,程序认为我一直在按鼠标左键0.5秒,该函数被调用了好几次。我怎样才能防止它发生

提前谢谢

功能:

public void drawAll(){
batch.begin();
for( int i = 0; i < 10000; i++){
if( Assets.draws[i].draw == true ){ batch.draw( Assets.draws[i].sprite, Assets.draws[i].x, Assets.draws[i].y); }
}
batch.end();
}

public void pressedLeft(){
float x = Gdx.input.getX();
float y = Gdx.input.getY();
boolean contin = true;
for( int i = 0; i < 10000; i++){
if( contin == true && Assets.draws[i].draw == false ){ Assets.draws[i].draw = true; contin = false; Assets.draws[i].x = x; Assets.draws[i].y = y; }

   } 
}

@Override
public void render(){
.
.
.
drawAll();

if( Gdx.input.isButtonPressed( Input.Buttons.LEFT ) ){ pressedLeft(); }

}

寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。现在好了吗?好多了。您必须记住按下的状态,并且只有在按下的第一次从false变为true时才会做出反应。libgdx甚至可能包含这方面的功能,其中一个功能仅在按下或释放键时触发,而不是在按住键时触发。最终解决了问题。我创建了一个实现InputProcessor的新类,该类有一个名为touchUp的函数,因此我能够使它工作。谢谢你的帮助。下次我提问时会更加谨慎。