]> git.lizzy.rs Git - SuperMouseAdventure.git/commitdiff
Invincibility Frames v0.1
authorKG0104 <76601263+KG0104@users.noreply.github.com>
Sat, 7 Aug 2021 11:39:58 +0000 (13:39 +0200)
committerKG0104 <76601263+KG0104@users.noreply.github.com>
Sat, 7 Aug 2021 11:39:58 +0000 (13:39 +0200)
2DGame/Assets/Scenes/Green_Idyll/green_idyll_1.unity
2DGame/Assets/Scripts/Maus/Health.cs
2DGame/Assets/Scripts/Maus/InvincibilityFrames.cs

index 1f1a4e3db1a029c3b08c28b3b69d71356570d81f..04aafff09d807ea6c0e4c54cb2974f6b12de8f65 100644 (file)
@@ -12734,6 +12734,7 @@ GameObject:
   - component: {fileID: 936765979}
   - component: {fileID: 936765980}
   - component: {fileID: 936765981}
+  - component: {fileID: 936765982}
   m_Layer: 0
   m_Name: maus
   m_TagString: Player
@@ -13169,7 +13170,6 @@ MonoBehaviour:
   - {fileID: 397286150}
   fullHeart: {fileID: 21300000, guid: 46a74d1428d29c342a3d11cb96df7622, type: 3}
   emptyHeart: {fileID: 21300000, guid: f0a4f4e3dcd85cb4cba379c2b8452f70, type: 3}
-  invincible: 0
 --- !u!114 &936765977
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -13250,6 +13250,20 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   levelGeschafft: {fileID: 423319633}
+--- !u!114 &936765982
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 936765968}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 24ecf8abffd3176449dbce52b3f21663, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  invincible: 0
+  invincibilityFramesNumber: 4
 --- !u!95 &936765983
 Animator:
   serializedVersion: 3
index 53773f2decb4822fdf026e6dc7983e21a8b25d71..9d04ef6c85f67fb330016e071e16ec7caa9aad71 100644 (file)
@@ -14,11 +14,12 @@ public class Health : MonoBehaviour
 
     PowerUps powerUps;
 
-    public bool invincible;
+    InvincibilityFrames invincibility;
 
     private void Start()
     {
         powerUps = GetComponent<PowerUps>();
+        invincibility = GetComponent<InvincibilityFrames>();
     }
 
     // Update is called once per frame
@@ -53,11 +54,19 @@ public class Health : MonoBehaviour
     //Bei Ber?hrung mit einem Gegner wird die Gesundheit um 1 verringert
     private void OnCollisionEnter2D(Collision2D collision)
     {
-        if(collision.gameObject.CompareTag("Enemy") || collision.gameObject.CompareTag("Boss"))
+        if(collision.gameObject.CompareTag("Enemy") || collision.gameObject.CompareTag("Boss") && invincibility == false)
         {
             mouseHealth--;
-            invincible = true;
             powerUps.mouseIsGardener = false;
+            invincibility.invincible = true;
+        }
+
+        if(invincibility.invincible == true)
+        {
+            if (collision.gameObject.CompareTag("Enemy") || collision.gameObject.CompareTag("Boss"))
+            {
+                Physics2D.IgnoreCollision(collision.collider, collision.collider);
+            }
         }
     }
 }
index f5484e0ef84cf13eabe02a8f8aa62b83c9705283..c1618f72166be5b200783a412c7bdd93c9cc6e96 100644 (file)
@@ -5,9 +5,13 @@ using UnityEngine;
 public class InvincibilityFrames : MonoBehaviour
 {
     SpriteRenderer spriteRenderer;
-
     Health health;
 
+    public bool invincible;
+
+    public float invincibilityFramesNumber = 2;
+    private float invincibilityFrames;
+
     // Start is called before the first frame update
     void Start()
     {
@@ -18,9 +22,20 @@ public class InvincibilityFrames : MonoBehaviour
     // Update is called once per frame
     void Update()
     {
-        if(health.invincible == true)
+        if(invincible == true)
         {
-
+            invincibilityFrames = invincibilityFramesNumber;
+            invincibilityFrames -= Time.deltaTime;
+            if(invincibilityFrames > 0)
+            {
+                invincible = true;
+            }
+            if (invincibilityFrames == 0)
+            {
+                invincible = false;
+            }
         }
+
+        print(invincible);
     }
 }