libGDX进行接地循环直到接地
我正在用libGDX做游戏 我想实现游戏控制,但我对libGDX进行接地循环直到接地,libgdx,Libgdx,我正在用libGDX做游戏 我想实现游戏控制,但我对着陆方法有问题。着陆方法只运行一次。我想在接地时循环,直到接地结束。有人能帮我吗 class onPlayerGoLeftListener extends InputListener { public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { //start runnable (move pl
着陆方法有问题。着陆方法只运行一次。我想在接地时循环,直到接地结束。有人能帮我吗
class onPlayerGoLeftListener extends InputListener {
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
//start runnable (move player)
return true;
}
public void touchUp (InputEvent event, float x, float y, int pointer, int button) {
//stop runnable
}
}
谢谢
p、 我不喜欢使用main update方法来执行此操作您不能在事件回调或渲染回调中“循环”,因为整个系统将停止。获得所需内容的一种方法是在触地
方法中设置一个标志,清除触地
方法中的标志,然后将循环的“主体”放入渲染
,由您的标志保护
boolean touchActive = false;
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
//start runnable (move player)
touchActive = true;
return true;
}
public void touchUp (InputEvent event, float x, float y, int pointer, int button) {
//stop runnable
touchActive = false;
}
public void render(float delta) {
...
if (touchActive) {
// Do one iteration of your "while" loop
}
...
}
在render()或绘制线程中,您可以使用
if (Gdx.input.isTouched()){
//some thing move()
}
enableRepeatableEvent(true)也是解决方案吗?或者这只是用于键盘事件?我正在使用你上面写的方法,但我想知道其他解决方案是否可行。