我制作了一个非常简单的游戏,并开始制作每个菜单。连续3个菜单 - 主菜单 - 播放器选择菜单 - 游戏模式菜单,但我面临的问题是在触摸之间添加延迟。我使用的代码Sprite用于按钮,并检测触摸点是否在边界矩形内。
像这样:
if(Gdx.input.isTouched()){
cam.unproject(PlayerMenuTP.set(Gdx.input.getX(), Gdx.input.getY(), 0));
if(Sprites[1].getBoundingRectangle().contains(PlayerMenuTP.x, PlayerMenuTP.y)){
Game.ChangeScreen(2);
}
}
这适用于第一个菜单,但由于按钮在每个菜单上的位置完全相同,如果您将手指放在屏幕上,我会跳过所有菜单。
我不知道如何修改它以等到上一次触摸不再发生,然后继续扫描这个触摸。
任何帮助将不胜感激。
由于
答案 0 :(得分:0)
我强烈建议你将Scene2D用于与UI相关的东西,它不难实现或学习,而且很容易保留。
无论如何,如果你想继续这样做,你可以这样做:
用
替换您的代码 @Override public boolean touchUp (int screenX, int screenY, int pointer, int button) {
cam.unproject(PlayerMenuTP.set(screenX, screenY, 0));
if (Sprites[1].getBoundingRectangle().contains(PlayerMenuTP.x, PlayerMenuTP.y)){
Game.ChangeScreen(2);
}
return true;
}