mirror of
https://github.com/ConjureETS/Labo_2_Equ_1_a15.git
synced 2026-03-25 18:40:58 +00:00
Player health
This commit is contained in:
parent
1daff51b46
commit
0819f51529
Binary file not shown.
@ -11,42 +11,62 @@ public class Health : MonoBehaviour
|
|||||||
|
|
||||||
private ArrayList hearts = new ArrayList();
|
private ArrayList hearts = new ArrayList();
|
||||||
|
|
||||||
|
// Width (X) and height (Y) of an heart image with additional blank space
|
||||||
private float spaceX;
|
private float spaceX;
|
||||||
private float spaceY;
|
private float spaceY;
|
||||||
|
|
||||||
void Start ()
|
void Start ()
|
||||||
{
|
{
|
||||||
RectTransform r = heartImage.rectTransform;
|
spaceX = 2.3f;
|
||||||
spaceX = r.rect.width;
|
spaceY = 2.3f;
|
||||||
spaceY = r.rect.height;
|
|
||||||
Debug.Log("spaceX : " + spaceX);
|
|
||||||
Debug.Log("spaceY : " + spaceY);
|
|
||||||
AddHearts (startingHealth);
|
AddHearts (startingHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddHearts (int n)
|
public void AddHearts (int n)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < n; i++)
|
for (int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
Transform heart = ((Image)Instantiate(heartImage)).transform;
|
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 y = Mathf.FloorToInt(hearts.Count/maxHeartsPerRow);
|
||||||
int x = hearts.Count - y * maxHeartsPerRow;
|
int x = hearts.Count - y * maxHeartsPerRow;
|
||||||
|
|
||||||
Debug.Log("X : " + x);
|
|
||||||
Debug.Log("Y : " + y);
|
|
||||||
|
|
||||||
Vector2 pos = heart.position;
|
Vector2 pos = heart.position;
|
||||||
pos.x += x * spaceX;
|
pos.x += x * spaceX;
|
||||||
pos.y += y * spaceY;
|
pos.y += -y * spaceY;
|
||||||
|
|
||||||
Debug.Log("posX : " + pos.x);
|
|
||||||
Debug.Log("posY : " + pos.y);
|
|
||||||
|
|
||||||
heart.position = pos;
|
heart.position = pos;
|
||||||
|
|
||||||
|
// Add heart
|
||||||
hearts.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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 496d8c4c25eff1443b8789ad17b173c5
|
guid: 496d8c4c25eff1443b8789ad17b173c5
|
||||||
timeCreated: 1447945584
|
timeCreated: 1447986069
|
||||||
licenseType: Free
|
licenseType: Free
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences:
|
||||||
|
- heartImage: {fileID: 11427978, guid: 5c6327fc8da56da4e8a5949457d56e76, type: 2}
|
||||||
executionOrder: 0
|
executionOrder: 0
|
||||||
icon: {instanceID: 0}
|
icon: {instanceID: 0}
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user