- Home /
 
 
               Question by 
               Fred 4 · May 23, 2011 at 12:18 AM · 
                javascriptinputcontrol  
              
 
              Control left + right = up
Hey guys, i'm making a project that i'm creating a physical control, when the user go left with your weight he press the button left, if he go right, he press right and if he press left + right he press up. I done a script but withous this, i need this because i have only 3 buttons on my project.
See the Script
 var gameover=0;
 static var airplaneangley: float=0.0;
 //Rotaton and position of our airplane
 var rotationx=0;
 var rotationy=0;
 var rotationz=0;
 var positionx: float=0.0;
 var positiony: float=0.0;
 var positionz: float=0.0;
 
 var speed:float =0.0;// speed variable is the speed
 var uplift:float =0.0;
 
 function Update () {
     // shadow to the same angle than the airplane
     airplaneangley= transform.eulerAngles.y; 
 
               // Maincode flying ----------------------------------------------------------------------------------------------------------------------------------
 //  Code is active when varwhatmoves is 1
 if(gameover==0){
 //  Rotations of the airplane
     if (speed>595)transform.Rotate(Input.GetAxis("Vertical")*Time.deltaTime*100,0,0); // Up Down, limited to a minimum speed
     transform.Rotate(0,Input.GetAxis("Horizontal")*Time.deltaTime*100,0,Space.World); // Left Right
     if (groundtrigger.triggered==0) transform.Rotate(0,0,Input.GetAxis("Horizontal")*Time.deltaTime*50*-1); // Tilt multiplied with minus 1 to go into the right direction
     
     //limit tilt so that airplane doesn`t fly a roll while flying a curve
     if ((Input.GetAxis ("Horizontal")<0)&&(rotationz >45)&&(rotationz <90)) transform.Rotate(0,0,Time.deltaTime*-50);// the left
     if ((Input.GetAxis ("Horizontal")>0)&&(rotationz <315)&&(rotationz >270)) transform.Rotate(0,0,Time.deltaTime*50);// the right
 // Speed
     transform.Translate(0,0,speed/20*Time.deltaTime);
 
 
 // Turn variables to rotation and position of the object
     rotationx=transform.eulerAngles.x; 
     rotationy=transform.eulerAngles.y; 
     rotationz=transform.eulerAngles.z; 
     positionx=transform.position.x;
     positiony=transform.position.y;
     positionz=transform.position.z;
 
 //Rotate back in z axis , limited by no horizontal button pressed
     if ((rotationz >0) && (rotationz < 90)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*-50);
     if ((rotationz >0) && (rotationz > 270)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*50);
     if ((rotationz >180) && (rotationz < 270)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*-50);
     if ((rotationz <180) && (rotationz > 90)&&(!Input.GetButton ("Horizontal"))) transform.Rotate(0,0,Time.deltaTime*50);
     
     // Rotate back X axis
     
             if ((rotationx >0) && (rotationx < 180)&&(!Input.GetButton ("Vertical"))) transform.Rotate(Time.deltaTime*-50,0,0);
             if ((rotationx >0) && (rotationx > 180)&&(!Input.GetButton ("Vertical"))) transform.Rotate(Time.deltaTime*50,0,0);
     
     
     //Speed driving and flying ------------------------------------------------------------------------------------------
     
     //We need a minimum speed limit in the air. We limit again with the groundtrigger.triggered variable
 
     // Input Accellerate and deccellerate at ground
     if ((groundtrigger.triggered==1)&&(Input.GetButton("Fire1"))&&(speed<800)) speed+=Time.deltaTime*240;
     if ((groundtrigger.triggered==1)&&(Input.GetButton("Fire2"))&&(speed>0)) speed-=Time.deltaTime*240;
     
             // Input Gas geben und abbremsen in der Luft|| Input Accellerate and deccellerate in the air
     if ((groundtrigger.triggered==0)&&(Input.GetButton("Fire1"))&&(speed<800)) speed+=Time.deltaTime*240;
     if ((groundtrigger.triggered==0)&&(Input.GetButton("Fire2"))&&(speed>600)) speed-=Time.deltaTime*240;
     
     
     //When we don`t accellerate or deccellerate we want to go to a neutral speed in the air. With this speed it has to stay at a neutral height. Above this value the airplane has to climb, with a lower speed it has to  sink. That way we are able to takeoff and land then.
     
         // Neutral speed at 700
         // Maximum 800, minimum 600
         //This code resets the speed to 700 when there is no acceleration or deccelleration. Maximum 800, minimum 600
     if((Input.GetButton("Fire1")==false)&&(Input.GetButton("Fire2")==false)&&(speed>595)&&(speed<700)) speed+=Time.deltaTime*240;
     if((Input.GetButton("Fire1")==false)&&(Input.GetButton("Fire2")==false)&&(speed>595)&&(speed>700)) speed-=Time.deltaTime*240;
 
     
     transform.Translate(0,uplift*Time.deltaTime/10.0,0);
             
     // Calculate uplift
     uplift = -700+speed;
 
               //We don`t want downlift. So when the uplift value lower zero we set it to 0 if ((groundtrigger.triggered==1)&&(uplift < 0)) uplift=0; } }
               Comment
              
 
               
              Your answer