diff resources/_combat_plane.js @ 0:0b8d8ce99f46 default tip

commit
author Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
date Mon, 14 Feb 2011 17:06:56 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resources/_combat_plane.js	Mon Feb 14 17:06:56 2011 +0900
@@ -0,0 +1,195 @@
+createPlane = function(sgroot, w, h){
+    var combat_plane = new sgroot.createSceneGraph3()
+    combat_plane.xyz[0] = 0 
+    combat_plane.xyz[1] = -5
+    combat_plane.xyz[2] = 0
+    position_xyz[0] = combat_plane.xyz[0]
+    position_xyz[1] = combat_plane.xyz[1] 
+    position_xyz[2] = combat_plane.xyz[2] - 50
+    aim_xyz[0] = position_xyz[0] 
+    aim_xyz[1] = position_xyz[1]  
+    aim_xyz[2] = position_xyz[2] + 1
+    cameraAngle_xyz[0] = 0
+    cameraAngle_xyz[1] = 0
+    cameraAngle_xyz[2] = 0
+    combat_plane.scale = 0.05
+    combat_plane.set_move_collision(plane_move, no_collision_idle)
+    var main = new sgroot.createSceneGraph1("Obj")
+    main.angle[0] = 180
+    main.angle[1] = 90
+    main.set_move_collision(main_move, no_collision_idle) 
+    combat_plane.addChild(main)
+    return combat_plane
+}
+
+rotate_parts = function(node, sgroot, w, h){
+    node.angle[0] += 1
+}
+
+plane_move = function(node, sgroot, w ,h){
+	var move_eye = 1.0;
+	var move_walk = 1.0;
+	var PI = 3.14;
+	var pad = new sgroot.getController();
+	var dx = position_xyz[0] - aim_xyz[0];
+	var dy = position_xyz[1] - aim_xyz[1];
+	var dz = position_xyz[2] - aim_xyz[2];
+	var d = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2) + Math.pow(dz,2));
+	if(pad.left_move_isHold()){
+		var radian = (((theta_xz+90)%360) / 360) * 2 * PI;
+		aim_xyz[0] += move_walk * Math.cos(radian);
+		aim_xyz[2] += move_walk * Math.sin(radian);
+		position_xyz[0] += move_walk * Math.cos(radian);
+		position_xyz[2] += move_walk * Math.sin(radian);
+	}
+	if(pad.right_move_isHold()){
+		var radian = (((theta_xz+90)%360) / 360) * 2 * PI;
+		aim_xyz[0] -= move_walk * Math.cos(radian);
+		aim_xyz[2] -= move_walk * Math.sin(radian);
+		position_xyz[0] -= move_walk * Math.cos(radian);
+		position_xyz[2] -= move_walk * Math.sin(radian);
+	}
+
+	if(pad.front_move_isHold()){
+		var radian = ((theta_xz%360) / 360) * 2 * PI;
+		position_xyz[0] += move_walk * Math.cos(radian);
+		position_xyz[2] += move_walk * Math.sin(radian);
+		aim_xyz[0] += move_walk * Math.cos(radian);
+		aim_xyz[2] += move_walk * Math.sin(radian);
+		move_length++;
+	}
+	if(pad.back_move_isHold()){
+		var radian = ((theta_xz%360) / 360) * 2 * PI;
+		position_xyz[0] -= move_walk * Math.cos(radian);
+		position_xyz[2] -= move_walk * Math.sin(radian);
+		aim_xyz[0] -= move_walk * Math.cos(radian);
+		aim_xyz[2] -= move_walk * Math.sin(radian);
+		move_length--;
+	}
+
+	if(pad.space_isHold()){
+		node.xyz[1] -= 0.8;
+	    position_xyz[1] -= 0.8;
+	    aim_xyz[1] -= 0.8;
+	}else if(pad.space_isRelease() && node.xyz[1] < -5){
+		node.xyz[1] += 0.4;
+		position_xyz[1] += 0.4;
+		aim_xyz[1] += 0.4;
+	}
+}
+
+
+
+main_move = function(node, sgroot, w, h){
+	var move_eye = 1.0;
+	var PI = 3.14;
+	var pad = new sgroot.getController();
+	var dx = node.parents.xyz[0] - position_xyz[0];
+    var dy = node.parents.xyz[1] - position_xyz[1];
+	var dz = node.parents.xyz[2] - position_xyz[2];
+	var d = 50 
+	var radian_xz = ((theta_xz%360) / 360) * 2 * PI;
+    var radian_yz = ((theta_yz%360) / 360) * 2 * PI;
+	var x_rate_xz = Math.sin(radian_xz);
+	var z_rate_xz = Math.cos(radian_xz);
+    var x_rate_yz = Math.cos(radian_yz);
+	var y_rate_yz = Math.cos(radian_yz);
+	var z_rate_yz = Math.sin(radian_yz);
+	if(pad.left_isHold()){
+		theta_xz += move_eye;
+		var mv_x = d * Math.cos(radian_xz);
+        var mv_y = d * Math.sin(radian_yz);
+		var mv_z = d * Math.sin(radian_xz);
+		position_xyz[0] = node.parents.xyz[0] - mv_x;
+        position_xyz[1] = node.parents.xyz[1] - mv_y;
+		position_xyz[2] = node.parents.xyz[2] - (mv_z*Math.cos(radian_yz));
+		aim_xyz[0] = position_xyz[0];
+        aim_xyz[1] = position_xyz[1];
+		aim_xyz[2] = position_xyz[2] + 1;
+        
+		node.angle[0] -= move_eye;
+		cameraAngle_xyz[0] -= move_eye;
+        angleRate_x[0] = x_rate_xz;
+        angleRate_x[2] = z_rate_xz;
+        cameraAxis[0] = 0;
+        cameraAxis[1] = 1;
+        cameraAxis[0] = 0;
+	}
+
+
+	if(pad.right_isHold()){
+		theta_xz -= move_eye;
+		var mv_x = d * Math.cos(radian_xz);
+        var mv_y = d * Math.sin(radian_yz);
+		var mv_z = d * Math.sin(radian_xz);
+        
+		position_xyz[0] = node.parents.xyz[0] - mv_x;
+        position_xyz[1] = node.parents.xyz[1] - mv_y;
+		position_xyz[2] = node.parents.xyz[2] - (mv_z*Math.cos(radian_yz));
+		aim_xyz[0] = position_xyz[0];
+        aim_xyz[1] = position_xyz[1];
+		aim_xyz[2] = position_xyz[2] + 1;
+        
+		node.angle[0] += move_eye;
+		cameraAngle_xyz[0] += move_eye;
+        angleRate_x[0] = x_rate_xz;
+        angleRate_x[2] = z_rate_xz;
+        cameraAxis[0] = 0;
+        cameraAxis[1] = 1;
+        cameraAxis[2] = 0;
+	}
+
+
+	if(pad.up_isHold() && theta_yz > -90){
+		theta_yz -= move_eye;
+        var mv_x = d * Math.cos(radian_xz);
+		var mv_y = d * Math.sin(radian_yz);
+		var mv_z = d * Math.cos(radian_yz);
+       
+        position_xyz[0] = node.parents.xyz[0] - mv_x;
+		position_xyz[1] = node.parents.xyz[1] - mv_y;
+		position_xyz[2] = node.parents.xyz[2] - (mv_z*Math.sin(radian_xz));
+        aim_xyz[0] = position_xyz[0];
+	    aim_xyz[1] = position_xyz[1];
+		aim_xyz[2] = position_xyz[2] + 1;
+      
+
+		node.angle[1] -= move_eye
+        cameraAngle_xyz[0] -= move_eye;
+        angleRate_y[1] = y_rate_yz
+        angleRate_y[2] = z_rate_yz
+        cameraAxis[0] = 1;
+        cameraAxis[1] = 0;
+        cameraAxis[2] = 0;
+	}
+
+	if(pad.down_isHold() && theta_yz < 90){
+		theta_yz += move_eye;
+        var mv_x = d * Math.cos(radian_xz);
+		var mv_y = d * Math.sin(radian_yz);
+		var mv_z = d * Math.cos(radian_yz);
+        
+        position_xyz[0] = node.parents.xyz[0] - mv_x;
+		position_xyz[1] = node.parents.xyz[1] - mv_y;
+		position_xyz[2] = node.parents.xyz[2] - (mv_z*Math.sin(radian_xz));
+        aim_xyz[0] = position_xyz[0];
+		aim_xyz[1] = position_xyz[1];
+		aim_xyz[2] = position_xyz[2] + 1;
+        
+
+		node.angle[1] += move_eye
+        cameraAngle_xyz[0] += move_eye;
+        angleRate_y[1] = y_rate_yz
+        angleRate_y[2] = z_rate_yz
+        cameraAxis[0] = 1;
+        cameraAxis[1] = 0;
+        cameraAxis[2] = 0;
+	}
+}
+
+
+
+
+
+
+