From 0819f51529928348b4e90d98cf7bd8735cb4abe6 Mon Sep 17 00:00:00 2001 From: jventalon Date: Thu, 19 Nov 2015 21:24:31 -0500 Subject: [PATCH] Player health --- Assets/Prefabs/Heart.prefab | Bin 7076 -> 7140 bytes Assets/Scripts/Health.cs | 48 ++++++++++++++++++++++++---------- Assets/Scripts/Health.cs.meta | 5 ++-- 3 files changed, 37 insertions(+), 16 deletions(-) diff --git a/Assets/Prefabs/Heart.prefab b/Assets/Prefabs/Heart.prefab index a4a1e5e786323de17c1e5e0830a25c04adb22a12..d06b3338eecbe3e21fbeebf8e4c11add69d93901 100644 GIT binary patch delta 105 zcmZ2t{=}SvfkEOg1B3LFjT}297)v%El!#{%ID6*IUIvB+dl;T9C@DVKUD|T;0!fa^ w8zec@1sNC^a^rpSlM{0S@{2P|GV}BFs(@nLK&-20XaE6*Kz)jnPe}3r0IM(^i2wiq delta 48 zcmaE2zQmk^fkEOg1B3LEjT}297)>@Gl!#}V{6$h|vaqD+WOr%H$qJGpK+H1vgd`6D DarF*j diff --git a/Assets/Scripts/Health.cs b/Assets/Scripts/Health.cs index c3e1654..7a239fc 100644 --- a/Assets/Scripts/Health.cs +++ b/Assets/Scripts/Health.cs @@ -11,42 +11,62 @@ public class Health : MonoBehaviour private ArrayList hearts = new ArrayList(); + // Width (X) and height (Y) of an heart image with additional blank space private float spaceX; private float spaceY; void Start () { - RectTransform r = heartImage.rectTransform; - spaceX = r.rect.width; - spaceY = r.rect.height; - Debug.Log("spaceX : " + spaceX); - Debug.Log("spaceY : " + spaceY); + spaceX = 2.3f; + spaceY = 2.3f; + AddHearts (startingHealth); } - void AddHearts (int n) + public void AddHearts (int n) { for (int i = 0; i < n; i++) { Transform heart = ((Image)Instantiate(heartImage)).transform; - heart.SetParent(GameObject.Find("HeartCanvas").transform, false); + // Add heart image to the canvas + heart.SetParent(GameObject.Find("Canvas").transform, false); + + // Calculate x and y position of the new heart (in number of hearts) int y = Mathf.FloorToInt(hearts.Count/maxHeartsPerRow); int x = hearts.Count - y * maxHeartsPerRow; - Debug.Log("X : " + x); - Debug.Log("Y : " + y); - Vector2 pos = heart.position; pos.x += x * spaceX; - pos.y += y * spaceY; - - Debug.Log("posX : " + pos.x); - Debug.Log("posY : " + pos.y); + pos.y += -y * spaceY; heart.position = pos; + // Add heart hearts.Add(heart); } } + + public void LoseHearts(int n) + { + for (int i = 0; i < n && i < hearts.Count; i++) + { + int lastIndex = hearts.Count - 1; + + // Destroy the image of the last heart + Image heartImage = (Image)((Transform)hearts[lastIndex]).GetComponent("Image"); + Destroy(heartImage); + + // Remove the last heart + hearts.RemoveAt(lastIndex); + } + } + + void OnCollisionEnter2D(Collision2D collision) + { + if( collision.gameObject.tag == "Ennemy" ) + { + LoseHearts(1); + } + } } diff --git a/Assets/Scripts/Health.cs.meta b/Assets/Scripts/Health.cs.meta index 558e382..5d53882 100644 --- a/Assets/Scripts/Health.cs.meta +++ b/Assets/Scripts/Health.cs.meta @@ -1,10 +1,11 @@ fileFormatVersion: 2 guid: 496d8c4c25eff1443b8789ad17b173c5 -timeCreated: 1447945584 +timeCreated: 1447986069 licenseType: Free MonoImporter: serializedVersion: 2 - defaultReferences: [] + defaultReferences: + - heartImage: {fileID: 11427978, guid: 5c6327fc8da56da4e8a5949457d56e76, type: 2} executionOrder: 0 icon: {instanceID: 0} userData: