diff Pants_FPS/resources/human.js @ 17:bf87fe5a9797

ver3
author <e085737>
date Fri, 10 Dec 2010 20:19:03 +0900
parents 9367d87879ee
children 931ad40d56f5
line wrap: on
line diff
--- a/Pants_FPS/resources/human.js	Fri Dec 10 16:42:24 2010 +0900
+++ b/Pants_FPS/resources/human.js	Fri Dec 10 20:19:03 2010 +0900
@@ -80,6 +80,7 @@
     var move_eye = 1.0 
     var PI = 3.14
     var pad = new sgroot.getController()
+    var d = 30
 
     if(pad.left_isHold()){
 	cameraAngle_xyz[0] -= move_eye
@@ -88,7 +89,13 @@
 	var radian = ((theta%360) / 360) * 2 * PI
 	var x_rate = Math.sin(radian)
 	var z_rate = Math.cos(radian)
-
+        var mv_x = d * Math.cos(radian)
+	var mv_z = d * Math.sin(radian)
+         
+	position_xyz[0] = node.parents.xyz[0] - mv_x
+	position_xyz[2] = node.parents.xyz[2] - mv_z	
+	aim_xyz[0] = position_xyz[0] 
+	aim_xyz[2] = position_xyz[2] + 1
 	node.angle[0] -= move_eye 
 	angleRate_xyz[0] = x_rate
 	angleRate_xyz[2] = z_rate
@@ -102,7 +109,13 @@
 	var radian = ((theta%360) / 360) * 2 * PI
 	var x_rate = Math.sin(radian)
 	var z_rate = Math.cos(radian)
+	var mv_x = d * Math.cos(radian)
+	var mv_z = d * Math.sin(radian)
 
+	position_xyz[0] = node.parents.xyz[0] - mv_x
+	position_xyz[2] = node.parents.xyz[2] - mv_z
+	aim_xyz[0] = position_xyz[0]
+	aim_xyz[2] = position_xyz[2] + 1
 	node.angle[0] += move_eye
 	angleRate_xyz[0] = x_rate
 	angleRate_xyz[2] = z_rate
@@ -133,7 +146,7 @@
     var d = Math.sqrt(Math.pow(dx,2) + Math.pow(dz,2))
 
 
-    if(position_xyz[0] >= 0 && position_xyz[2] >= 0){
+    if(node.xyz[0] >= 0 && node.xyz[2] >= 0){
         if(pad.left_move_isHold()){
   	    var radian = (((theta+90)%360) / 360) * 2 * PI
           
@@ -224,14 +237,33 @@
 
 
 body_collision = function(node, sgroot, w, h){
-    if(position_xyz[0] < 0){
-        position_xyz[0] = 0
-	aim_xyz[0] = 0
+    var d = 30
+    var PI = 3.14
+    var radian = ((theta%360) / 360) * 2 * PI
+    if(node.xyz[0] < 0){
+        node.xyz[0] = 0
+	position_xyz[0] = -d * Math.cos(radian)
+	aim_xyz[0] = position_xyz[0]
     }
 
-    if(position_xyz[2] < 0){
-	position_xyz[2] = 0
-	aim_xyz[2] = 1
+    if(node.xyz[0] > 350){
+	node.xyz[0] = 350
+        position_xyz[0] = 350 + (-d * Math.cos(radian))
+	aim_xyz[0] = position_xyz[0]
+    }
+
+
+
+    if(node.xyz[2] < 0){
+	node.xyz[2] = 0
+	position_xyz[2] = -d * Math.sin(radian)
+	aim_xyz[2] = position_xyz[2] + 1
+    }
+
+    if(node.xyz[2] > 350){
+	node.xyz[2] = 350
+	position_xyz[2] = 350 + (-d * Math.sin(radian))
+	aim_xyz[2] = position_xyz[2] + 1
     }
 }