You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

114 lines
2.7 KiB

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;
}
}
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;
}
}
}
}