Java libGDX 一砖一瓦平滑移动

标签 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;
        }
    }
}

但是玩家传送 1 个方 block 是行不通的。

最佳答案

它不起作用,因为您在渲染调用之间完全更新了 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;
        }
    }
}

关于Java libGDX 一砖一瓦平滑移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228850/

相关文章:

java - 将 Matlab 图像发送到 Android 平板电脑

Android Libgdx 和碰撞检测

java - Could not get the JAWT interface on mac 错误

java - Android Studio Libgdx 游戏横向转纵向

android - API 方法 9 在 API 方法 3 Android 项目中编译,运行时错误

java - 在 LWJGL 中切换 glGetActiveAttrib 结果中的字节顺序

java - OpenGL 中的纹理随时间变白

java - 如何从合约状态获取stateAndRef?

java - 如何使用scanner和next()但不继续

java - jsp java内联函数调用退出javascript