Mercurial > hg > Members > e085737 > sample
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 } }