使用Babylon.js的角色运动

时间:2014-12-19 17:53:07

标签: javascript babylonjs

在我上学的游戏演示中,我需要使用W-A-S-D键和箭头键移动我的角色。我设置了一个功能并设置一个开关盒来监听任何按键操作。这是我的代码片段:

//Handles the player's movement
var PlayerMovement = (function () {
    //Constructor
    function PlayerMovement() {
        this.gameObject = null;
        this.movementSpeed = 0;
        this.rotationSpeed = 0;
    }

    PlayerMovement.prototype.awake = function () {
        console.log("Awake");
    };

    PlayerMovement.prototype.update = function () {
        //console.log(Tools.getFps());
    }

PlayerMovement.prototype.onKeyPressed = function (key) {
        switch(key)
        {
            case KeyType.W:
            case KeyType.UpArrow:
                console.log("Moving up");
                this.gameObject.meshObject.position.z += (BABYLON.Vector3.Up() * this.movementSpeed * Tools.getDeltaTime());
                break;
            case KeyType.A:
            case KeyType.LeftArrow:
                //TODO: Do stuff
                break;
            case KeyType.S:
            case KeyType.DownArrow:
                //TODO: Do stuff
                break;
            case KeyType.D:
            case KeyType.RightArrow:
                //TODO: Do stuff
                break;
        }
    }
 return PlayerMovement;
})();

我的问题是我的角色跳得太远,他从屏幕上消失了。任何人都可以帮我弄清楚我的计算有什么问题吗?

2 个答案:

答案 0 :(得分:4)

一些事情 -

答案 1 :(得分:0)

如果没有剩下的代码,我们几乎不可能帮助你。你能提供完整的自定义JS文件吗?我认为这可能是你的相机角度的一个问题,而不是角色的运动。此外,这是第一人称游戏还是第三人称游戏?

很抱歉,我会留下这个“答案”作为评论,但我没有50个声望点。试图征求更多信息以提供实际答案。