Skip to content

Commit

Permalink
js/playerFpsControl.js much cleaner computation
Browse files Browse the repository at this point in the history
  • Loading branch information
jeromeetienne committed Dec 10, 2011
1 parent f7a6e8e commit 3da5c8d
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
4 changes: 2 additions & 2 deletions js/camera.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ Marble.Camera.prototype.tick = function()

if( player.fpsControl().isActivated() ){
camera.position.copy( player.mesh().position );
camera.position.y += 1*Marble.tileSize/2;
camera.position.y += Marble.tileSize/2;

var direction = player.fpsControl().angleY();
var target = camera.position.clone();
target.x += Math.cos(direction);
target.z -= Math.sin(direction);
target.z += Math.sin(direction);
camera.lookAt( target );
}
}
Expand Down
3 changes: 3 additions & 0 deletions js/pageGameLife.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ Marble.PageGameLife.prototype._init = function(){
// for debug
//var mesh = new THREE.Mesh( new THREE.SphereGeometry(75,16,8), new THREE.MeshNormalMaterial() );
//scene.add(mesh);

// for debug
scene.add(new THREE.Axes());

gameLevel = new Marble.GameLevel();

Expand Down
13 changes: 5 additions & 8 deletions js/playerFpsControl.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Marble.PlayerFpsControl = function()
{
this._angleY = 0;
this._angleY = -Math.PI/2;
// bind events
this._$onMouseMove = this._onMouseMove.bind(this);
this._$onFullscreenChange=this._onFullscreenChange.bind(this);
Expand Down Expand Up @@ -66,14 +66,11 @@ Marble.PlayerFpsControl.prototype._onMouseMove = function(domEvent)
{
console.assert( domEvent.movementX !== undefined );
console.assert( domEvent.movementY !== undefined );
console.log("mousemove", "movementX", domEvent.movementX, "movementY", domEvent.movementY);

var speed = 1 / 1024;
var deltaAngle = domEvent.movementX * speed * Math.PI * -1;
var speed = 1 / 1024; // nPixPerPI;
var deltaAngle = domEvent.movementX * speed * Math.PI;
this._angleY += deltaAngle;
this._angleY %= 2*Math.PI;

console.log("angleY", this._angleY/Math.PI*180);
}

//////////////////////////////////////////////////////////////////////////////////
Expand All @@ -100,8 +97,8 @@ Marble.PlayerFpsControl.FpsAccelerator = vphy.Class({
};
// TODO rewrite formula in a controlled manner
var angle = gameLevel.player().fpsControl().angleY();
var accX = - Math.sin(angle) * this.acceleration;
var accZ = - Math.cos(angle) * this.acceleration;;
var accX = Math.cos(angle) * this.acceleration;
var accZ = Math.sin(angle) * this.acceleration;;
for(var i = 0; i < this.bodies.length; i++){
var body = this.bodies[i];
if( key.right ) body.accelerate(-accZ,0,+accX);
Expand Down

0 comments on commit 3da5c8d

Please sign in to comment.