如何走楼梯和斜坡?

Nik*_*ntz 5 java 3d model-view-controller game-physics jmonkeyengine

我们使用jme3,setMaxSlope并且没有实现BetterCharacterControl的问题.引擎的开发人员说我们可以使用新的控制器自己解决它:

http://hub.jmonkeyengine.org/forum/topic/setmaxslope-for-bettercharactercontrol/

我真的很喜欢解决方案,因为我的游戏需要它.之前我问过它,但我们没有解决它:

如何改善我的3D游戏角色控制?

你能帮助我们进步吗?我录制了一个有问题的视频:

http://www.youtube.com/watch?v=PF_UzoOXD0E

一些文档在这里:http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advance: walking_character?s [] = bettercharactercontrol#bettercharactercontrol

我努力将功能添加到控制器:

package adventure;

import com.jme3.math.Vector3f;
import com.jme3.bullet.control.BetterCharacterControl;

public class GameCharControl extends BetterCharacterControl {
    protected Vector3f lastlocation = new Vector3f();

    public GameCharControl(float x, float y, float z) {
        super(x, y, z);
    }

    @Override
    public void update(float tpf) {
        super.update(tpf);
        System.out.println("location " + location);
        System.out.println("lastlocation " + lastlocation);

        if (location.equals(lastlocation)) {
            System.out.println("update2");
            this.setHeightPercent(101);
        }
        rigidBody.getPhysicsLocation(location);
        applyPhysicsTransform(location, rotation);
        lastlocation = location;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是上面没有做任何改变,或者如果我将高度设置为101那么对于游戏角色来说就很难移动.你能帮我们看看应该做些什么吗?

clw*_*isk 2

由于动作将角色视为由sPhysicsRigidBody制成PhysicsJoint,因此他的腿或膝盖可能没有足够的向上的魅力。希望那里的参数没有设置来适应楼梯的尺寸。

由于您在走有角度的楼梯时遇到了最大的麻烦,因此次要措施可能是调整行走方向。我怀疑你是否可以信赖,location.equals(lastlocation)但在短距离内可以很好地检查角色是否遇到障碍物。一旦你知道有一个步骤,你想要干净地扩展它或停留在下面。