我正在制作一个简单的拖放游戏,使用libgdx和box2d。 在桌面上它运行良好,对象的运动流动,但在android(Galaxy SIII)是对象和输入之间的延迟,所以对象不在点,输入创建。
在桌面上,一切正常:
Android上的
,延迟:
代码非常简单,所以我不明白,为什么它不起作用......
Character= new Texture(Gdx.files.internal("Character.jpg"));
cam = new OrthographicCamera();
cam.setToOrtho(false, 480, 800);
dx.input.setInputProcessor(this);
public void render(float delta) {
// TODO Auto-generated method stub
Gdx.gl.glClearColor(0.128f,0.128f,0.128f,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
game.batch.setProjectionMatrix(cam.combined);
game.batch.begin();
game.batch.draw(Character, object.x, object.y);
game.batch.end();
cam.update();
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
// TODO Auto-generated method stub
Vector3 touchPos = new Vector3();
touchPos.set(screenX, screenY, 0);
cam.unproject(touchPos);
object.x = touchPos.x - 56 / 2;
object.y=touchPos.y-56/2;
cam.update();
return false;
}
没有libGdx,拖放运动效果更好。但是libGdx对于其他游戏功能是必要的......
任何人都有建议? 问候
答案 0 :(得分:1)
我通过在Android启动器中设置config.touchSleepTime = 16;
看到了一些改进。
public class AndroidLauncher extends AndroidApplication {
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useAccelerometer = false;
config.useCompass = false;
config.touchSleepTime = 16;
initialize(new SomeGame(), config);
}
}
仍有明显的滞后,但希望这会有所帮助。
答案 1 :(得分:0)
你检查了FPS吗? 它常见于S3限制帧速率。 确保停用所有省电模式以达到60 FPS。