using System.Collections; using System.Collections.Generic; using UnityEngine; public class carController : MonoBehaviour { public WheelJoint2D frontWheel; public WheelJoint2D rearWheel; JointMotor2D motorFront; JointMotor2D motorBack; public float[] SpeedF,SpeedB; public float[] Torque; public float[] RotationSpeed; public float speedF; public float speedB; public float torqueF; public float torqueB; public bool TractionFront = true; public bool TractionBack = true; public float carRotationSpeed; public static bool isAlive = true; public static void GameOver(){ if(!isAlive){return;} isAlive=false; instance.gameOverPanel.SetActive(true); if(PlayerPrefs.HasKey("best")){ if(PlayerPrefs.GetInt("best") < GameManager.distanceTravelled){ PlayerPrefs.SetInt("best", GameManager.distanceTravelled); } }else{ PlayerPrefs.SetInt("best", GameManager.distanceTravelled); } instance.setBest(GameManager.distanceTravelled); } public void setBest(int best){ if(SentBestReq){return;} SentBestReq=true; int earnings = (int)(GameManager.distanceTravelled/10f); DataManager.Money+=earnings; StartCoroutine(SetBest(best)); } bool SentBestReq=false; IEnumerator SetBest(int best){ WWWForm form = new WWWForm(); form.AddField("username", DataManager.Username); form.AddField("best", best); WWW req = new WWW(DataManager.API_Endpoint + "set_best.php", form); yield return req; Debug.Log(req.text); } public GameObject gameOverPanel; public static carController instance{get; private set;} void Awake() { instance = this; isAlive=true; CameraFollower.Target = transform; speedF = SpeedF[DataManager.SpeedLevel]; speedB = SpeedB[DataManager.SpeedLevel]; torqueF = torqueB = Torque[DataManager.SpeedLevel]; carRotationSpeed = RotationSpeed[DataManager.inAirLevel]; } // Update is called once per frame void FixedUpdate() { if(!isAlive){ rearWheel.useMotor = false; frontWheel.useMotor = false; return; } if (Input.GetAxisRaw("Horizontal") > 0) { if (TractionFront) { motorFront.motorSpeed = speedF * -1; motorFront.maxMotorTorque = torqueF; frontWheel.motor = motorFront; } if (TractionBack) { motorBack.motorSpeed = speedF * -1; motorBack.maxMotorTorque = torqueF; rearWheel.motor = motorBack; } } else if (Input.GetAxisRaw("Horizontal") < 0) { if (TractionFront) { motorFront.motorSpeed = speedB * -1; motorFront.maxMotorTorque = torqueB; frontWheel.motor = motorFront; } if (TractionBack) { motorBack.motorSpeed = speedB * -1; motorBack.maxMotorTorque = torqueB; rearWheel.motor = motorBack; } } else { rearWheel.useMotor = false; frontWheel.useMotor = false; } if (Input.GetAxisRaw("Horizontal") != 0) { GetComponent().AddTorque(carRotationSpeed * Input.GetAxisRaw("Horizontal") * 1); } // CameraFollower.UpdateFrame(); } }