Java libGDX一块平铺平滑移动
我对如何在Java LibGDX?中实现平滑移动没有什么疑问?。大概是这样的:Java libGDX一块平铺平滑移动,java,libgdx,lwjgl,Java,Libgdx,Lwjgl,我对如何在Java LibGDX?中实现平滑移动没有什么疑问?。大概是这样的: 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; } } } if(向右行走){ 如果(映射[cords.x][cords.y]==1){ 对于(浮
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;
}
}
}
if(向右行走){
如果(映射[cords.x][cords.y]==1){
对于(浮点数i=0f;i<2f;i+=0.001f){//1瓦片2f;
跳线x+=0.001f;
}
}
}
但这不起作用的玩家传送1个磁贴。它不起作用,因为在渲染调用之间完全更新x坐标。 你需要在主游戏循环中平滑地更新x坐标 简单的例子:
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;
}
}
}
嗯,我做了一些比这更重要的事情:对于(float I=0f;I<2f;I+=0.01f){}cords.x+=0.001f;和renderPlayer()