changeset 3:aa7abf13d3f5 draft default tip

fix bug
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Wed, 16 May 2012 21:56:12 +0900
parents 47399f2f3a80
children
files .DS_Store fps/fps.html fps/resources/keyboard.js fps/resources/keyboard.js~
diffstat 4 files changed, 75 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
--- a/fps/fps.html	Wed May 16 17:53:54 2012 +0900
+++ b/fps/fps.html	Wed May 16 21:56:12 2012 +0900
@@ -136,35 +136,34 @@
 
 
 function setCamera(ctx){
-	ctx.viewport(0, 0, width, height);
+    ctx.viewport(0, 0, width, height);
 
     var t = width/height;
 
     ctx.perspectiveMatrix.makeIdentity();
     ctx.perspectiveMatrix.frustum(-0.5, 0.5, -0.5 / t, 0.5 / t, 1, 100000);
 
-    ctx.perspectiveMatrix.translate(-xPos,-yPos,-zPos);
-    ctx.perspectiveMatrix.rotate(xRool,0,1,0);
-
-	ctx.perspectiveMatrix.multiply(cameraMatrix);
-
+    var x = Math.cos((angle+90)*Math.PI/180 );
+    var z = Math.sin((angle+90)*Math.PI/180 );
 
-    cameraMatrix.translate(-xPos,-yPos,-zPos);
-    cameraMatrix.rotate(xRool,0,1,0);
+    cameraX += x * speedZ;
+    cameraZ += z * speedZ;
 
-	if(countX < 10)
-		countX += 0.01;
+    ctx.perspectiveMatrix.rotate(angle,0,1,0);
+    ctx.perspectiveMatrix.translate(cameraX,0,cameraZ);
+
 }
 
-countRool = 0;
-countX = 0;
+angle = 0;
+cameraX = 0;
+cameraZ = 0;
 
 FILPCOUNT = 0;
 function loop(ctx, ortho)
 {
         ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);	
 
-		setCamera(ctx);
+	setCamera(ctx);
 
         PutSpriteV(ctx, cube_X, cube_Y, cube_Z, 1, matrix, object);
         PutSpriteV(ctx, cube_X2, cube_Y2, cube_Z2, 1, matrix, object2);
@@ -199,8 +198,6 @@
         var ortho = {left:0, right:200, bottom:140, top:0}
         matrix = new J3DIMatrix4(); // global variable 
         matrix2 = new J3DIMatrix4(); // global variable 
-		cameraMatrix = new J3DIMatrix4(); // global variable 
-		cameraMatrix.makeIdentity();
 
 
         cube_X = 0; 
--- a/fps/resources/keyboard.js	Wed May 16 17:53:54 2012 +0900
+++ b/fps/resources/keyboard.js	Wed May 16 21:56:12 2012 +0900
@@ -8,19 +8,19 @@
     switch(String.fromCharCode(event.keyCode)) {
 	case 'w':
 		//Z+=d;
-		speedZ = 0.006;
+		speedZ += 0.1;
 		break;
 	case 'a':
 		//X-=d;
-		speedX = -0.006;
+		speedX = -0.1;
 		break;
 	case 's':
 		//Z-=d;
-		speedZ = -0.006;
+		speedZ -= -0.1;
 		break;
 	case 'd':
 		//X+=d;
-		speedX = 0.006;
+		speedX = 0.1;
 		break;
 
 	case 'i':
@@ -42,13 +42,14 @@
 
 function keyboardUp()
 {
-	xPos = 0;
-	zPos = 0;
+//	xPos = 0;
+//	zPos = 0;
 
 	xRool = 0;
-	speedX = 0;
+//	speedX = 0;
 	speedZ = 0;
 	
+        yaw = 0;
 	yawRate = 0;
 	//rotateX = 0;
 	//rotateY = 0;
@@ -60,19 +61,19 @@
     switch(String.fromCharCode(event.keyCode)) {
 	case 'w':
 		//Z+=d;
-		speedZ = 0.006;
+		speedZ += 0.1;
 		break;
 	case 'a':
 		//X-=d;
-		speedX = -0.006;
+		speedX = -0.1;
 		break;
 	case 's':
 		//Z-=d;
-		speedZ = -0.006;
+		speedZ -= 0.1;
 		break;
 	case 'd':
 		//X+=d;
-		speedX = 0.006;
+		speedX = 0.1;
 		break;
 
 	case 'i':
@@ -93,7 +94,10 @@
 function move(){
         //if(speedX != 0) xPos += speedX;
         //if(speedZ != 0) zPos -= speedZ;
-        console.log(xRool);
+//        console.log(xRool);
+        console.log("speedZ = "+ speedZ);
+        console.log("angle = "+ angle);
+
         /*
         if(speedX != 0) xPos += Math.sin(degToRad(yaw)) * speedX;
         if(speedZ != 0) zPos -= Math.cos(degToRad(yaw)) * speedZ;
@@ -104,11 +108,12 @@
         */
 		
 		
-		if(speedX != 0) xPos += Math.sin(degToRad(yaw)) * speedX;
-        if(speedZ != 0) zPos -= Math.cos(degToRad(yaw)) * speedZ;
-        if(yawRate != 0) xRool = degToRad(yaw);
+	if(speedX != 0) xPos += Math.sin(degToRad(yaw)) * speedX;
+        if(speedZ != 0) zPos += Math.cos(degToRad(yaw)) * speedZ;
+        if(yawRate != 0) xRool += degToRad(yaw);
+        yaw += yawRate;
 
-        yaw += yawRate;
+        angle += xRool;
 }
 
 function degToRad(degrees) {
--- a/fps/resources/keyboard.js~	Wed May 16 17:53:54 2012 +0900
+++ b/fps/resources/keyboard.js~	Wed May 16 21:56:12 2012 +0900
@@ -1,3 +1,6 @@
+var x = 0;
+var z = 0;
+
 function keyboardDown()
 {
     //var d=-Z/20;
@@ -6,7 +9,6 @@
 	case 'w':
 		//Z+=d;
 		speedZ = 0.006;
-		
 		break;
 	case 'a':
 		//X-=d;
@@ -22,16 +24,16 @@
 		break;
 
 	case 'i':
-		rotateY = 0.006;
+
 		break;
 	case 'j':
-		rotateX = -0.006;
+		yawRate = -0.1;
 		break;
 	case 'k':
-		rotateY = -0.006;
+
 		break;
 	case 'l':
-		rotateX = 0.006;
+		yawRate = 0.1;
 		break;
 	default:
 		break;
@@ -40,15 +42,16 @@
 
 function keyboardUp()
 {
-	
 	xPos = 0;
 	zPos = 0;
-	xEye = 0;
-    yEye = 0;
+
+	xRool = 0;
 	speedX = 0;
 	speedZ = 0;
-	rotateX = 0;
-	rotateY = 0;
+	
+	yawRate = 0;
+	//rotateX = 0;
+	//rotateY = 0;
 }
 
 function keyboardPress()
@@ -73,18 +76,43 @@
 		break;
 
 	case 'i':
-		rotateY = 0.006;
 		break;
 	case 'j':
-		rotateX = -0.006;
+		yawRate = -0.1;
 		break;
 	case 'k':
-		rotateY = -0.006;
 		break;
 	case 'l':
-		rotateX = 0.006;
+		yawRate = 0.1;
 		break;
 	default:
 		break;
     }
 }
+
+function move(){
+        //if(speedX != 0) xPos += speedX;
+        //if(speedZ != 0) zPos -= speedZ;
+        console.log(xRool);
+        /*
+        if(speedX != 0) xPos += Math.sin(degToRad(yaw)) * speedX;
+        if(speedZ != 0) zPos -= Math.cos(degToRad(yaw)) * speedZ;
+        if(yawRate != 0) xRool += degToRad(yaw);
+
+        if(speedX != 0 || speedZ != 0) yaw += yawRate;
+        //if(rotateY != 0) yRool -= degToRad(yaw);
+        */
+		
+		
+		if(speedX != 0) xPos += Math.sin(degToRad(yaw)) * speedX;
+        if(speedZ != 0) zPos -= Math.cos(degToRad(yaw)) * speedZ;
+        if(yawRate != 0) xRool = degToRad(yaw);
+
+        yaw += yawRate;
+}
+
+function degToRad(degrees) {
+    return degrees * Math.PI / 180;
+}
+
+