view map/resources/combat_plane.js @ 20:d322eed6e1c7

add
author <e085737>
date Thu, 13 Jan 2011 21:37:23 +0900
parents
children
line wrap: on
line source

createPlane = function(sgroot, w, h){
    var combat_plane = new sgroot.createSceneGraph3()
    combat_plane.xyz[0] = 0 
    combat_plane.xyz[1] = 0
    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("chest_center_B")
    main.angle[0] = 180
    main.angle[1] = 90
    main.set_move_collision(main_move, no_collision_idle) 



    var parts1  = new sgroot.createSceneGraph1("chest_center_B.001")
    var parts2  = new sgroot.createSceneGraph1("chest_center_B.002")
    var parts3  = new sgroot.createSceneGraph1("chest_center_B.003")
    var parts4  = new sgroot.createSceneGraph1("chest_center_B.004")
    var parts5  = new sgroot.createSceneGraph1("chest_center_B.005")
    var parts6  = new sgroot.createSceneGraph1("chest_center_B.006")
    var parts7  = new sgroot.createSceneGraph1("chest_center_B.007")
    var parts8  = new sgroot.createSceneGraph1("chest_center_B.008")
    var parts9  = new sgroot.createSceneGraph1("chest_center_B.009")
    var parts10 = new sgroot.createSceneGraph1("chest_center_B.010")
    var parts11 = new sgroot.createSceneGraph1("chest_center_B.011")
    var parts12 = new sgroot.createSceneGraph1("chest_center_B.012")
    var parts13 = new sgroot.createSceneGraph1("chest_center_B.013")
    var parts14 = new sgroot.createSceneGraph1("chest_center_B.014")
    var parts15 = new sgroot.createSceneGraph1("chest_center_B.015")
    var parts16 = new sgroot.createSceneGraph1("chest_center_B.016")
    var parts17 = new sgroot.createSceneGraph1("chest_center_B.017")
    var parts18 = new sgroot.createSceneGraph1("chest_center_B.018")
    var parts19 = new sgroot.createSceneGraph1("chest_center_B.019")
    var parts20 = new sgroot.createSceneGraph1("chest_center_B.020")
    var parts21 = new sgroot.createSceneGraph1("chest_center_B.021")
    var parts22 = new sgroot.createSceneGraph1("chest_center_B.022")
    var parts23 = new sgroot.createSceneGraph1("chest_center_B.023")
    var parts24 = new sgroot.createSceneGraph1("chest_center_B.024")
    var parts25 = new sgroot.createSceneGraph1("chest_center_B.025")
    var parts26 = new sgroot.createSceneGraph1("chest_center_B.026")
    var parts27 = new sgroot.createSceneGraph1("chest_center_B.027")
    var parts28 = new sgroot.createSceneGraph1("chest_center_B.028")
    var parts29 = new sgroot.createSceneGraph1("chest_center_B.029")
    var parts30 = new sgroot.createSceneGraph1("chest_center_B.030")
    var parts31 = new sgroot.createSceneGraph1("chest_center_B.031")
    var parts32 = new sgroot.createSceneGraph1("chest_center_B.032")
    var parts33 = new sgroot.createSceneGraph1("chest_center_B.033")
    var parts34 = new sgroot.createSceneGraph1("chest_center_B.034")
    var parts35 = new sgroot.createSceneGraph1("chest_center_B.035")
    var parts36 = new sgroot.createSceneGraph1("chest_center_B.036")
    var parts37 = new sgroot.createSceneGraph1("chest_center_B.037")
    var parts38 = new sgroot.createSceneGraph1("chest_center_B.038")
    var parts39 = new sgroot.createSceneGraph1("chest_center_B.039")
    var parts40 = new sgroot.createSceneGraph1("chest_center_B.040")
    var parts41 = new sgroot.createSceneGraph1("chest_center_B.041")
    var parts42 = new sgroot.createSceneGraph1("chest_center_B.042")
    var parts43 = new sgroot.createSceneGraph1("chest_center_B.043")
    var parts44 = new sgroot.createSceneGraph1("chest_center_B.044")
    var parts45 = new sgroot.createSceneGraph1("chest_center_B.045")
    var parts46 = new sgroot.createSceneGraph1("chest_center_B.046")
    var parts47 = new sgroot.createSceneGraph1("chest_center_B.047")
    var parts48 = new sgroot.createSceneGraph1("chest_center_B.048")
    var parts49 = new sgroot.createSceneGraph1("chest_center_B.049")
    var parts50 = new sgroot.createSceneGraph1("chest_center_B.050")
    var parts51 = new sgroot.createSceneGraph1("chest_center_B.051")
    var parts52 = new sgroot.createSceneGraph1("chest_center_B.052")
    var parts53 = new sgroot.createSceneGraph1("chest_center_B.053")
    var parts54 = new sgroot.createSceneGraph1("chest_center_B.054")
    var parts55 = new sgroot.createSceneGraph1("chest_center_B.055")
    var parts56 = new sgroot.createSceneGraph1("chest_center_B.056")
    var parts57 = new sgroot.createSceneGraph1("chest_center_B.057")
    var parts58 = new sgroot.createSceneGraph1("chest_center_B.058")
    var parts59 = new sgroot.createSceneGraph1("chest_center_B.059")
    var parts60 = new sgroot.createSceneGraph1("chest_center_B.060")
    var parts61 = new sgroot.createSceneGraph1("chest_center_B.061")
    var parts62 = new sgroot.createSceneGraph1("chest_center_B.062")
    var parts63 = new sgroot.createSceneGraph1("chest_center_B.063")
    var parts64 = new sgroot.createSceneGraph1("chest_center_B.064")
    var parts65 = new sgroot.createSceneGraph1("chest_center_B.065")
    var parts66 = new sgroot.createSceneGraph1("chest_center_B.066")
    var parts67 = new sgroot.createSceneGraph1("chest_center_B.067")
    var parts68 = new sgroot.createSceneGraph1("chest_center_B.068")
    var parts69 = new sgroot.createSceneGraph1("chest_center_B.069")
    var parts70 = new sgroot.createSceneGraph1("chest_center_B.070")
    var parts71 = new sgroot.createSceneGraph1("chest_center_B.071")
    var parts72 = new sgroot.createSceneGraph1("chest_center_B.072")
    var parts73 = new sgroot.createSceneGraph1("chest_center_B.073")
    var parts74 = new sgroot.createSceneGraph1("chest_center_B.074")
   

    combat_plane.addChild(main)
    main.addChild(parts1)
    main.addChild(parts2)
    main.addChild(parts3)
    main.addChild(parts4)
    main.addChild(parts5)
    main.addChild(parts6)
    main.addChild(parts7)
    main.addChild(parts8)
    main.addChild(parts9)
    main.addChild(parts10)
    main.addChild(parts11)
    main.addChild(parts12)
    main.addChild(parts13)
    main.addChild(parts14)
    main.addChild(parts15)
    main.addChild(parts16)
    main.addChild(parts17)
    main.addChild(parts18)
    main.addChild(parts19)
    main.addChild(parts20)
    main.addChild(parts21)
    main.addChild(parts22)
    main.addChild(parts23)
    main.addChild(parts24)
    main.addChild(parts25)
    main.addChild(parts26)
    main.addChild(parts27)
    main.addChild(parts28)
    main.addChild(parts29)
    main.addChild(parts30)
    main.addChild(parts31)
    main.addChild(parts32)
    main.addChild(parts33)
    main.addChild(parts34)
    main.addChild(parts35)
    main.addChild(parts36)
    main.addChild(parts37)
    main.addChild(parts38)
    main.addChild(parts39)
    main.addChild(parts40)
    main.addChild(parts41)
    main.addChild(parts42)
    main.addChild(parts43)
    main.addChild(parts44)
    main.addChild(parts45)
    main.addChild(parts46)
    main.addChild(parts47)
    main.addChild(parts48)
    main.addChild(parts49)
    main.addChild(parts50)
    main.addChild(parts51)
    main.addChild(parts52)
    main.addChild(parts53)
    main.addChild(parts54)
    main.addChild(parts55)
    main.addChild(parts56)
    main.addChild(parts57)
    main.addChild(parts58)
    main.addChild(parts59)
    main.addChild(parts60)
    main.addChild(parts61)
    main.addChild(parts62)
    main.addChild(parts63)
    main.addChild(parts64)
    main.addChild(parts65)
    main.addChild(parts66)
    main.addChild(parts67)
    main.addChild(parts68)
    main.addChild(parts69)
    main.addChild(parts70)
    main.addChild(parts71)
    main.addChild(parts72)
    main.addChild(parts73)
    main.addChild(parts74)


    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(node.xyz[0] >= 0 && node.xyz[2] >= 0){
	if(pad.left_move_isHold()){
		var radian = (((theta_xz+90)%360) / 360) * 2 * PI;

		if(!pad.zoom_in_isHold()){
			node.xyz[0] += move_walk * Math.cos(radian);
			node.xyz[2] += move_walk * Math.sin(radian);
		}

		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;

		if(!pad.zoom_in_isHold()){
			node.xyz[0] -= move_walk * Math.cos(radian);
			node.xyz[2] -= move_walk * Math.sin(radian);
		}

		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;

		if(!pad.zoom_in_isHold()){
			node.xyz[0] += move_walk * Math.cos(radian);
			node.xyz[2] += move_walk * Math.sin(radian);
		}

		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;

		if(!pad.zoom_in_isHold()){
			node.xyz[0] -= move_walk * Math.cos(radian);
			node.xyz[2] -= move_walk * Math.sin(radian);
		}

		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.start_isHold()){
		var bullet_speed = 20;
		var radian_xz  = ((theta_xz%360)/360) * 2 * PI;
		var radian_yz  = ((cameraAngle_xyz[1]%90)/90) * (PI / 2);
		var bullet = new sgroot.createSceneGraph1("yellow");
		bullet.xyz[0] = position_xyz[0] + Math.cos(radian_xz) * 200;
		bullet.xyz[1] = position_xyz[1] + Math.sin(radian_yz) * 200;
		bullet.xyz[2] = position_xyz[2] + Math.sin(radian_xz) * 200;
		bullet.dx = Math.cos(radian_xz) * bullet_speed;
		bullet.dy = Math.sin(radian_yz) * bullet_speed;
		bullet.dz = Math.sin(radian_xz) * bullet_speed;
		bullet.scale = 0.3;
		bullet.set_move_collision(bullet_move, no_collision_idle);
	}


	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 = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2) + Math.pow(dz,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);


    //node.angle[0] += 1.0;
    //node.angle[1] += 1.0;
    //node.angle[2] += 1.0;
	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_xyz[0] = x_rate;
        //angleRate_xyz[1] = y_rate;
		//angleRate_xyz[2] = z_rate;
        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[1] -= move_eye;
        cameraAngle_xyz[0] -= move_eye;
        //angleRate_xyz[0] = x_rate
        //angleRate_xyz[1] = y_rate 
        //angleRate_xyz[2] = z_rate
        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[1] += move_eye;
        cameraAngle_xyz[0] += move_eye;
        //angleRate_xyz[0] = x_rate
        //angleRate_xyz[1] = y_rate
        //angleRate_xyz[2] = z_rate
        angleRate_y[1] = y_rate_yz
        angleRate_y[2] = z_rate_yz
        cameraAxis[0] = 1;
        cameraAxis[1] = 0;
        cameraAxis[2] = 0;
	}

}