javascript
(function(){
var Vector3 = laya.d3.math.Vector3;
var KeyBoardManager = laya.events.KeyBoardManager;
var CameraMoveUtils = function(){
}
var _proto = CameraMoveUtils.prototype
_proto.InitCamera = function(camera){
this.camera = camera;
this.cameraRotation = new Vector3();
this._tempVector3 = new Vector3();
this.speed = 0.01;
Laya.timer.frameLoop(2,this,this.onUpdate);
}
_proto.onUpdate = function(){
var elapsedTime = Laya.timer.delta;
KeyBoardManager.hasKeyDown(87) && this.moveForward(-this.speed * elapsedTime);//W
KeyBoardManager.hasKeyDown(83) && this.moveForward(this.speed * elapsedTime);//S
KeyBoardManager.hasKeyDown(65) && this.moveRight(-this.speed * elapsedTime);//A
KeyBoardManager.hasKeyDown(68) && this.moveRight(this.speed * elapsedTime);//D
KeyBoardManager.hasKeyDown(81) && this.moveVertical(this.speed * elapsedTime);//Q
KeyBoardManager.hasKeyDown(69) && this.moveVertical(-this.speed * elapsedTime);//E
}
/**
* 向前移动。
* @param distance 移动距离。
*/
_proto.moveForward = function(distance){
this._tempVector3.x = this._tempVector3.y = 0;
this._tempVector3.z = distance;
this.camera.transform.translate(this._tempVector3);
}
/**
* 向右移动。
* @param distance 移动距离。
*/
_proto.moveRight = function(distance) {
this._tempVector3.y = this._tempVector3.z = 0;
this._tempVector3.x = distance;
this.camera.transform.translate(this._tempVector3);
}
/**
* 向上移动。
* @param distance 移动距离。
*/
_proto.moveVertical = function(distance) {
this._tempVector3.x = this._tempVector3.z = 0;
this._tempVector3.y = distance;
this.camera.transform.translate(this._tempVector3, false);
}
}())