using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class PlayerControler : MonoBehaviour {
|
|
|
|
|
|
public Animator animator;
|
|
// Use this for initialization
|
|
void Start () {
|
|
}
|
|
|
|
public float speed;
|
|
public Vector2 jumpVector;
|
|
public int health = 0;
|
|
private int displayedHealth = 0;
|
|
private bool updateHealth = false;
|
|
private float curDirection = -1;
|
|
public GameObject bullet;
|
|
public GameObject heart;
|
|
bool canJump = true;
|
|
public GameObject newConfetti;
|
|
|
|
|
|
|
|
void Update() {
|
|
Vector2 velo = rigidbody2D.velocity;
|
|
velo.x = Input.GetAxis ("Horizontal_P1") * speed;
|
|
rigidbody2D.velocity = velo;
|
|
animator.SetFloat("Velocity",velo.magnitude);
|
|
animator.SetBool ("Fall", !canJump);
|
|
if (curDirection != Input.GetAxisRaw ("Horizontal_P1"))
|
|
applyPlayerDirection (Input.GetAxisRaw ("Horizontal_P1"));
|
|
|
|
if (displayedHealth != health) {
|
|
updateHealth = true;
|
|
}
|
|
if (updateHealth)
|
|
displayHealth (health);
|
|
|
|
if (health == 0)
|
|
death();
|
|
|
|
|
|
if (Input.GetKey (KeyCode.UpArrow)){
|
|
if (canJump == true){
|
|
rigidbody2D.velocity = jumpVector;
|
|
canJump = false;
|
|
}
|
|
}
|
|
|
|
//if (Input.GetKey (KeyCode.Space)){
|
|
//shoot
|
|
//GameObject bulletGO = Instantiate (bullet) as GameObject;
|
|
//bulletGO.transform.position = transform.position;
|
|
//}
|
|
}
|
|
|
|
private void displayHealth(int health){
|
|
GameObject[] hearts = GameObject.FindGameObjectsWithTag("heartUI2");
|
|
foreach (GameObject desHeart in hearts)
|
|
GameObject.Destroy (desHeart);
|
|
|
|
for (int i=1; i<= health; i++) {
|
|
GameObject heartCanister = Instantiate (heart) as GameObject;
|
|
Vector3 heartPos = new Vector3 (1-(i * 0.033f), 0.95f, 0);
|
|
heartCanister.transform.position = heartPos;
|
|
}
|
|
displayedHealth = health;
|
|
updateHealth = false;
|
|
}
|
|
|
|
private void applyPlayerDirection(float moveHorizontal)
|
|
{
|
|
if (moveHorizontal != 0)
|
|
{
|
|
transform.Rotate(0,180,0);
|
|
curDirection = moveHorizontal;
|
|
}
|
|
}
|
|
|
|
private void Confettishoot(Vector3 target,float size){
|
|
Debug.Log ("Creating Confetti");
|
|
|
|
target.y += 1.5f;
|
|
for (int i = 0; i <size; i++) {
|
|
Instantiate (newConfetti, target, transform.rotation);
|
|
}
|
|
}
|
|
|
|
private void death(){
|
|
if (health == 0) {
|
|
Vector3 spawnPos = new Vector3 (Random.Range (-20.0f, 20.0f), 15.0f, 0);
|
|
health = 3;
|
|
transform.position = spawnPos;
|
|
rigidbody2D.velocity = Vector2.zero;
|
|
}
|
|
}
|
|
|
|
void OnCollisionEnter2D(Collision2D col){
|
|
if (col.collider.tag == "ground")
|
|
canJump = true;
|
|
else if (col.collider.tag == "Player") {
|
|
canJump = true;
|
|
if(transform.position.y>col.transform.position.y){
|
|
col.gameObject.GetComponent<player2_controls>().health --;
|
|
Confettishoot(col.gameObject.transform.position,20.0f);
|
|
//health --;
|
|
rigidbody2D.velocity = jumpVector;
|
|
canJump = false;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|