// Start is called before the first frame update // Update is called once per frame public override void FixedUpdate() { if (!LunerGameManager.Instance.HasGameStarted) { return; } if (!LunerGameManager.Instance.IsTransitioning || LunerGameManager.Instance.HasGameEnded) { if (!LunerGameManager.Instance.HasGameEnded) { HandleInput(Time.fixedDeltaTime); } addForce(ForceGenerator2D.GenerateForce_Gravity(Mass, -0.8f, Vector2.up)); base.FixedUpdate(); CheckRotation(Time.fixedDeltaTime); HandleUpdate(Time.fixedDeltaTime); } if (fuel <= 0.0f) { LunerGameManager.Instance.EndGame(); } }
void GenerateRandomParticle() { //Update Time Left timeLeft -= Time.deltaTime; timerText.text = "Time Left Until Next Particle: " + Mathf.Round(timeLeft) + " seconds"; //Get Total Random Particles On Screen totalRandomParticles = GameObject.FindGameObjectsWithTag("RandomParticle"); //Generate Random Particle When Time Hits 0 if (timeLeft <= 0 && totalRandomParticles.Length <= maxParticles) { Debug.Log("Generating Random Particle"); //Create Particle GameObject randomParticleGen = Instantiate(randomParticle); //Set Variables randomParticleGen.GetComponent <Target>().SetTargetVariables(randomParticleGen); //Transform Position randomParticleGen.transform.position = new Vector2(Random.Range(-6, 9), Random.Range(1, 5)); //Force Generator ForceGenerator2D BouyancyGenRandomParticle = forceManager.CreateBouyancyForceGenerator(randomParticleGen, (waterSprite.transform.localScale.y) / 2.0f, 75.0f, 5.0f, -(waterSprite.transform.localScale.y) / 2.0f); forceManager.AddForceGenerator(BouyancyGenRandomParticle); randomParticleGen.GetComponent <Target>().forceGen = BouyancyGenRandomParticle; //Reset Time Left timeLeft = 30.0f; } }
// Start is called before the first frame update void Start() { forceGen = gameObject.GetComponent <ForceGenerator2D>(); //manager = GameObject.Find("Manager").GetComponent<Controls>(); //Set Boundries topBoundry = GameObject.Find("TopBoundry"); bottomBoundry = GameObject.Find("BottomBoundry"); leftBoundry = GameObject.Find("LeftBoundry"); rightBoundry = GameObject.Find("RightBoundry"); }
public Vector2 variable2; //force used for torque equation public void FixedUpdate() { Particle2D comp = GetComponent <Particle2D>(); if (testType == TestType.Gravity) { comp.addForce(ForceGenerator2D.GenerateForce_Gravity(comp.Mass, -9.81f, Vector2.up)); } else if (testType == TestType.Normal) { comp.addForce(ForceGenerator2D.GenerateForce_Normal(new Vector2(0.0f, -9.81f), variable1)); } else if (testType == TestType.Sliding) { comp.addForce(ForceGenerator2D.GenerateForce_Sliding(new Vector2(0.0f, -9.81f), variable1)); } else if (testType == TestType.StaticFriction) { comp.addForce(ForceGenerator2D.GenerateForce_Sliding(new Vector2(0.0f, -9.81f), variable1)); comp.addForce(ForceGenerator2D.GenerateForce_Friction_Static(variable1, -variable1, 0.8f)); } else if (testType == TestType.KineticFriction) { comp.addForce(ForceGenerator2D.GenerateForce_Sliding(new Vector2(0.0f, -9.81f), variable1)); comp.addForce(ForceGenerator2D.GenerateForce_Friction_Kinetic(variable1, comp.getVelocity(), 0.8f)); } else if (testType == TestType.Drag) { //gravity for testing also applied comp.addForce(ForceGenerator2D.GenerateForce_Gravity(comp.Mass, -9.81f, Vector2.up)); comp.addForce(ForceGenerator2D.GenerateForce_Drag(comp.getVelocity(), Vector2.zero, 0.2f, 100, 0.9f)); } else if (testType == TestType.Spring) { //gravity for testing also applied comp.addForce(ForceGenerator2D.GenerateForce_Gravity(comp.Mass, -9.81f, Vector2.up)); comp.addForce(ForceGenerator2D.GenerateForce_Spring(comp.position, Vector2.zero, -4.0f, 10.0f)); } else if (testType == TestType.Torque) { comp.addForceAtPoint(variable1, variable2); } }
public override void OnCollision(CollisionHull2D withObject) { if (LunerGameManager.Instance.HasGameEnded) { return; } if (velocity.magnitude > maxVelocityMagnitudeOnLanding || rotation < -maxRotationOffsetOnLanding || rotation > maxRotationOffsetOnLanding) { LunerGameManager.Instance.ShowTransitionMessage("Game Over"); LunerGameManager.Instance.EndGame(); } else if (withObject is LunerPlatform) { if (velocity.magnitude > maxVelocityMagnitudeOnSafeLanding) { LunerPlatform collidedWith = withObject as LunerPlatform; LunerGameManager.Instance.addToScore(collidedWith.score); ResetAndShowMessage("Shakey landing, but there in one piece"); } else { LunerPlatform collidedWith = withObject as LunerPlatform; LunerGameManager.Instance.addToScore(collidedWith.score * 1.5f); fuel += collidedWith.fuelGained; ResetAndShowMessage("Clean Landing, gained fuel and bonus points"); } } //all collisions happen below, so if collision occured then lerp the rotation addForce(ForceGenerator2D.GenerateForce_Friction_Kinetic(withObject.transform.up, velocity, 2.0f)); if (rotation > 5.0f) { torque = -rotationCorrectionForce * (rotation / 360); } else if (rotation < -5.0f) { torque = rotationCorrectionForce * (-rotation / 360); } else { torque = -rotation * rotationCorrectionForce * Time.deltaTime; } }
//Create Target void CreateTarget(Vector3 targetPosition) { //Create Target & Set Position GameObject newTarget = Instantiate(target); //newTarget.transform.position = new Vector3(-2.75f, 3.26f, 0.0f); newTarget.transform.position = targetPosition; //Set Variables //particleManager.AddParticle(newTarget); newTarget.GetComponent <Target>().SetTargetVariables(newTarget); ForceGenerator2D bouyancyGenerator = forceManager.CreateBouyancyForceGenerator(newTarget, (waterSprite.transform.localScale.y) / 2.0f, 75.0f, 5.0f, -(waterSprite.transform.localScale.y) / 2.0f); forceManager.AddForceGenerator(bouyancyGenerator); newTarget.GetComponent <Target>().forceGen = bouyancyGenerator; //Update score score++; scoreText.text = "Score: " + score; isTarget = true; }
// Start is called before the first frame update void Start() { //Set Boundries topBoundry = GameObject.Find("TopBoundry"); bottomBoundry = GameObject.Find("BottomBoundry"); leftBoundry = GameObject.Find("LeftBoundry"); rightBoundry = GameObject.Find("RightBoundry"); //Set Game Manager gameManager = GameObject.Find("Player"); //Get Components if (forceGen) { forceGen = gameObject.GetComponent <ForceGenerator2D>(); } if (particleLink) { particleLink = gameObject.GetComponent <Particle2DLink>(); } }
//Shooting Bullets Controls void ShootingControls() { //W - Change Bullet if (Input.GetKeyDown(KeyCode.W) == true) { if (bulletNum >= 3) //Reset back to one if reaches 3 { bulletNum = 1; } else { bulletNum += 1; } Debug.Log("Bullet: " + bulletNum); } //Creat Bullet if (Input.GetKeyDown(KeyCode.Return) == true) { switch (bulletNum) { case 1: //Bullet Debug.Log("Bullet"); //Create Bullet GameObject bulletOne = Instantiate(bullet); //bulletOne.transform.position = gunEnd.transform.position; //Set Variables //particleManager.AddParticle(bullet); bulletOne.GetComponent <Bullets>().SetBulletVariables(bulletOne, gunEnd); //Transform Position bulletOne.transform.position = gunEnd.transform.position; bulletOne.transform.rotation = gunEnd.transform.rotation; //Force Generator bulletOne.GetComponent <Bullets>().isForceGen = true; ForceGenerator2D BouyancyGen2 = forceManager.CreateBouyancyForceGenerator(bulletOne, (waterSprite.transform.localScale.y) / 2.0f, 75.0f, 5.0f, -(waterSprite.transform.localScale.y) / 2.0f); forceManager.AddForceGenerator(BouyancyGen2); bulletOne.GetComponent <Bullets>().forceGen = BouyancyGen2; break; case 2: //Spring Debug.Log("Spring"); //Set Value int numSprings = 1; //Create Bullets GameObject springOne = Instantiate(springBullet); springOne.name = "Spring" + numSprings; numSprings++; GameObject springTwo = Instantiate(springBullet); springTwo.name = "Spring" + numSprings; numSprings++; //Set Variables springOne.GetComponent <Bullets>().SetBulletVariables(springOne, gunEnd); springTwo.GetComponent <Bullets>().SetBulletVariables(springTwo, gunEnd); //Transform Position springOne.transform.position = new Vector2(gunEnd.transform.position.x, gunEnd.transform.position.y); springTwo.transform.position = gunEnd.transform.position; springOne.transform.rotation = gunEnd.transform.rotation; springTwo.transform.rotation = gunEnd.transform.rotation; //Force Generator springOne.GetComponent <Bullets>().isForceGen = true; ForceGenerator2D springGenerator = forceManager.CreateSpringForceGenerator(springOne, springTwo, 1.0f, 10.0f); forceManager.AddForceGenerator(springGenerator); springOne.GetComponent <Bullets>().forceGen = springGenerator; springOne.GetComponent <Bullets>().isForceGen = true; ForceGenerator2D BouyancyGenerator = forceManager.CreateBouyancyForceGenerator(springOne, (waterSprite.transform.localScale.y) / 2.0f, 75.0f, 5.0f, -(waterSprite.transform.localScale.y) / 2.0f); forceManager.AddForceGenerator(BouyancyGenerator); springOne.GetComponent <Bullets>().forceGen = BouyancyGenerator; break; case 3: //Rod Debug.Log("Rod"); //Set Value int numRods = 1; //Particle Link GameObject particleLinkRod = new GameObject("ParticleLink"); // Don't forget to make the rod u dumb dumb Particle2DLink tempParticleLink = particleLinkRod.AddComponent <Particle2DLink>(); particleLink = tempParticleLink; //Create Bullets GameObject rodOne = Instantiate(rodBullet); rodOne.name = "Rod" + numRods; numRods++; GameObject rodTwo = Instantiate(rodBullet); rodTwo.name = "Rod" + numRods; numRods++; //Set Variables rodOne.GetComponent <Bullets>().SetBulletVariables(rodOne, gunEnd); rodTwo.GetComponent <Bullets>().SetBulletVariables(rodTwo, gunEnd); //Transform Position rodOne.transform.position = new Vector2(gunEnd.transform.position.x, gunEnd.transform.position.y + 1.0f); //Change y so it doesn't spawn on top of each other rodTwo.transform.position = gunEnd.transform.position; rodOne.transform.rotation = gunEnd.transform.rotation; rodTwo.transform.rotation = gunEnd.transform.rotation; //Particle Link rodOne.GetComponent <Bullets>().isParticleLink = true; Particle2DLink link = particleLink.CreateLink(rodOne, rodTwo, 1.0f); rodOne.GetComponent <Bullets>().particleLink = link; //Force Generator rodOne.GetComponent <Bullets>().isForceGen = true; ForceGenerator2D BouyancyGen = forceManager.CreateBouyancyForceGenerator(rodOne, (waterSprite.transform.localScale.y) / 2.0f, 75.0f, 5.0f, -(waterSprite.transform.localScale.y) / 2.0f); forceManager.AddForceGenerator(BouyancyGen); rodOne.GetComponent <Bullets>().forceGen = BouyancyGen; break; } } }
public static void AddGenerator(ForceGenerator2D gen) { generatorList.Add(gen); }
public void RemoveForceGen(ForceGenerator2D force) { forces.Remove(force); }
public void AddForceGen(ForceGenerator2D force) { forces.Add(force); }
public void DeleteForceGenerator(ForceGenerator2D forceGenerator) { mForceGenerators.Remove(forceGenerator); }
void AddForceGenerator(ForceGenerator2D forceGenerator) { mForceGenerators.Add(forceGenerator); }
void DeleteForceGenerator(ForceGenerator2D forceGenerator) { forceGeneratorsList.Remove(forceGenerator); }
void AddForceGenerator(ForceGenerator2D forceGenerator) { forceGeneratorsList.Add(forceGenerator); }
public void Delete(ForceGenerator2D generator) { mGenerators.Remove(generator); }
public void Add(ForceGenerator2D generator) { mGenerators.Add(generator); }
//Remove Force Generator void RemoveForceGenerator(ForceGenerator2D forceGenerator) { forceGeneratorsAlive.Remove(forceGenerator); }
//Add Force Generator public void AddForceGenerator(ForceGenerator2D forceGenerator) { forceGeneratorsAlive.Add(forceGenerator); }