From f5533407b9efb36410a0ad7bc5895c1b2758da44 Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 7 Sep 2017 00:50:49 -0500 Subject: [PATCH] Lots of changes --- Game 1/Assets/Art/Items/Rocket.png | Bin 5761 -> 5660 bytes .../Levels/{Level 0.unity => Level0.unity} | 198 +- .../{Level 0.unity.meta => Level0.unity.meta} | 0 Game 1/Assets/Levels/Level1.unity | 93873 ++++++++++++++++ Game 1/Assets/Levels/Level1.unity.meta | 8 + Game 1/Assets/Prefabs/Rocket.prefab | 3387 +- Game 1/Assets/Prefabs/Rocket.prefab.meta | 4 +- Game 1/Assets/Scripts/Explosion.cs | 4 +- Game 1/Assets/Scripts/LevelController.cs | 50 + Game 1/Assets/Scripts/LevelController.cs.meta | 12 + Game 1/Assets/Scripts/PlayerController.cs | 31 +- Game 1/Assets/Scripts/RocketController.cs | 16 +- .../ProjectSettings/EditorBuildSettings.asset | 8 +- 13 files changed, 97468 insertions(+), 123 deletions(-) rename Game 1/Assets/Levels/{Level 0.unity => Level0.unity} (99%) rename Game 1/Assets/Levels/{Level 0.unity.meta => Level0.unity.meta} (100%) create mode 100644 Game 1/Assets/Levels/Level1.unity create mode 100644 Game 1/Assets/Levels/Level1.unity.meta create mode 100644 Game 1/Assets/Scripts/LevelController.cs create mode 100644 Game 1/Assets/Scripts/LevelController.cs.meta diff --git a/Game 1/Assets/Art/Items/Rocket.png b/Game 1/Assets/Art/Items/Rocket.png index 54ad9e2421c63df19b6d1fa23e09e25fe0e5a26b..4e222a6b966e151fcea44bbf6fee50589882e2d7 100644 GIT binary patch delta 2973 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 T{lPLz00000NkvXXu0mjf>r}6m delta 3075 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 - Vector2 force = (playerPos - transform.position).normalized * (MAX_PLAYER_DIST - dist) * 15.0f; + Vector2 force = (playerPos - transform.position).normalized * (MAX_PLAYER_DIST - dist) * EXPLOSION_FORCE; playerBody.AddForce(force, ForceMode2D.Impulse); - Debug.Log(force); } } } diff --git a/Game 1/Assets/Scripts/LevelController.cs b/Game 1/Assets/Scripts/LevelController.cs new file mode 100644 index 0000000..d0a69fb --- /dev/null +++ b/Game 1/Assets/Scripts/LevelController.cs @@ -0,0 +1,50 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.SceneManagement; + +public class LevelController : MonoBehaviour { + + public Text winText; + protected static LevelController levelController; + private bool wonLevel = false; + + void Start () { + if (levelController) + { + Destroy(this); + } + levelController = this; + } + + public static LevelController GetController() + { + if (levelController) + return levelController; + Debug.LogError("A LevelController object is not present in this scene."); + return null; + } + + public void WinLevel() + { + wonLevel = true; + winText.text = "YOU WIN!"; + StartCoroutine(DelayLoadLevel("Level1", 3.0f)); + } + + public void ResetLevel() + { + if (wonLevel) + return; + winText.text = "TRY AGAIN!"; + StartCoroutine(DelayLoadLevel(SceneManager.GetActiveScene().name, 2.0f)); + } + + public IEnumerator DelayLoadLevel(string levelName, float delay) + { + yield return new WaitForSeconds(delay); + SceneManager.LoadScene(levelName); + yield return null; + } +} diff --git a/Game 1/Assets/Scripts/LevelController.cs.meta b/Game 1/Assets/Scripts/LevelController.cs.meta new file mode 100644 index 0000000..72917ac --- /dev/null +++ b/Game 1/Assets/Scripts/LevelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 61cd1d4ed12e73d4d89f6301bb296452 +timeCreated: 1504759397 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game 1/Assets/Scripts/PlayerController.cs b/Game 1/Assets/Scripts/PlayerController.cs index 24327be..54da704 100644 --- a/Game 1/Assets/Scripts/PlayerController.cs +++ b/Game 1/Assets/Scripts/PlayerController.cs @@ -10,27 +10,25 @@ public class PlayerController : MonoBehaviour { public float jumpPower; public GameObject rocketPrefab; - - public Text winText; - - // Use this for initialization - void Start () { - - } + private float reloadTime = 0.5f; + private bool reloading = false; // Update is called once per frame void Update () { - // Basic jumping + /*// Basic jumping if (Input.GetKeyDown (KeyCode.Space)) { GetComponent ().velocity = new Vector2 (0, jumpPower); - } + }*/ - if (Input.GetMouseButtonDown(0)) + if (Input.GetMouseButtonDown(0) && !reloading) { + reloading = true; + StartCoroutine("Reload"); Vector2 rocketPos = transform.position; GameObject rocket = Instantiate(rocketPrefab, rocketPos, Quaternion.identity); rocket.GetComponent().player = this; + Physics2D.IgnoreCollision(rocket.GetComponent(), GetComponent()); } } @@ -38,12 +36,19 @@ public class PlayerController : MonoBehaviour { { //Check the provided Collider2D parameter other to see if it is tagged "PickUp", if it is... if (other.gameObject.CompareTag ("Finish Line")) { - winText.text = "You Win!"; - } + LevelController.GetController().WinLevel(); + } // Deathbox and saws restart level if (other.gameObject.CompareTag ("Deathbox")) { - SceneManager.LoadScene(SceneManager.GetActiveScene().name); + LevelController.GetController().ResetLevel(); } } + + private IEnumerator Reload() + { + yield return new WaitForSeconds(reloadTime); + reloading = false; + yield return null; + } } diff --git a/Game 1/Assets/Scripts/RocketController.cs b/Game 1/Assets/Scripts/RocketController.cs index b5c9b29..6cf7c19 100644 --- a/Game 1/Assets/Scripts/RocketController.cs +++ b/Game 1/Assets/Scripts/RocketController.cs @@ -6,10 +6,12 @@ public class RocketController : MonoBehaviour { public PlayerController player; public GameObject explosionPrefab; - private float ROCKET_SPEED = 20.0f; + private float ROCKET_SPEED = 10.0f; + private float ROCKET_LIFETIME = 5.0f; private void Start() { + StartCoroutine(DestroyAfterTime()); Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector2 playerPos = player.transform.position; Vector2 rocketDir = (mousePos - playerPos).normalized; @@ -24,15 +26,19 @@ public class RocketController : MonoBehaviour { void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.layer == LayerMask.NameToLayer("Player")) - { - Debug.Log("Player Collision Detected"); return; - } - Vector3 explosionPos = transform.position; + Vector3 explosionPos = collision.contacts[0].point; explosionPos.z = 0; GameObject explosion = Instantiate(explosionPrefab, explosionPos, Quaternion.identity); explosion.GetComponent().player = player; Destroy(gameObject); } + + IEnumerator DestroyAfterTime() + { + yield return new WaitForSeconds(ROCKET_LIFETIME); + Destroy(gameObject); + yield return null; + } } diff --git a/Game 1/ProjectSettings/EditorBuildSettings.asset b/Game 1/ProjectSettings/EditorBuildSettings.asset index 6dc24f7..033e7a9 100644 --- a/Game 1/ProjectSettings/EditorBuildSettings.asset +++ b/Game 1/ProjectSettings/EditorBuildSettings.asset @@ -4,4 +4,10 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 - m_Scenes: [] + m_Scenes: + - enabled: 1 + path: Assets/Levels/Level0.unity + guid: 5dc8391a13432fd4bbed301245e9f53f + - enabled: 1 + path: Assets/Levels/Level1.unity + guid: 322c8dfc43ff2b24b926087d36ef357d