[英]Java libGDX one tile smooth movement
I have little question how I can do smooth movement in Java LibGDX ?. 我几乎没有疑问如何在Java LibGDX中进行平滑移动? Something like this:
像这样:
if(walk_right) {
if(map[cords.x][cords.y] == 1){
for(float i = 0f; i < 2f; i += 0.001f){ //1 tile 2f;
cords.x += 0.001f;
}
}
}
But that doesn't work's player teleporting 1 tile. 但这对玩家传送1个图块无效。
It doesn't work cause you fully update x coordinate between render calls. 它不起作用,因为您在渲染调用之间完全更新了x坐标。 You need to smoothly update x coordinate in main game loop.
您需要在主游戏循环中平滑更新x坐标。
Simple example: 简单的例子:
private float velocity = 2f; //2 units per second
private float walkedDistance = 0f;
private boolean walkRight;
public void walkRight() {
walkRight = true;
}
public void update(float delta) {
if(walkRight) {
float xMovement = delta * velocity;
walkedDistance += xMovement;
cords.x += xMovement;
if (walkedDistance >= 2) {
cords.x -= walkedDistance - 2;
walkRight = false;
walkedDistance = 0;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.