我正在用libGDX制作游戏.
我想实现游戏控制,但我的touchDown方法有问题.touchDown方法只运行一次.我想在touchDown中循环,直到调用touchUp.有人能帮我吗 ?
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
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
ps我不喜欢使用主更新方法来做到这一点
您无法在事件回调内"循环"或渲染回调,因为整个系统将停止.获得所需内容的一种方法是在touchDown方法中设置一个标志,清除方法中的标志touchUp,然后将循环的"主体"放入render,由您的标志保护.
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
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |