using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class PlayersHealth : MonoBehaviour
{
Animator animator;
Rigidbody2D rb;
SpriteRenderer sprite;
public int numOfHearts;
public float health;
public Image[] hearts;
public Sprite fullHeart;
public Sprite emptyHeart;
[SerializeField]
int speed;
[SerializeField]
int JumpForce;
[SerializeField]
Transform groundCheck;
bool isGrounded;
private void Start()
{
animator = GetComponent<Animator>();
rb = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
}
private void FixedUpdate()
{
if (health > numOfHearts)
{
health = numOfHearts;
}
for (int i = 0; i < hearts.Length; i++)
{
if(i < Mathf.RoundToInt(health))
{
hearts[i].sprite = fullHeart;
}
else
{
hearts[i].sprite = emptyHeart;
}
if(i < numOfHearts)
{
hearts[i].enabled = true;
}
else
{
hearts[i].enabled = false;
}
if(health < 1)
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
if (Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground")))
{
isGrounded = true;
}
else
{
isGrounded = false;
}
if (Input.GetKey(KeyCode.D))
{
rb.velocity = new Vector2(speed, rb.velocity.y);
if (isGrounded)
animator.Play("bez");
sprite.flipX = false;
}
else if (Input.GetKey(KeyCode.A))
{
rb.velocity = new Vector2(-speed, rb.velocity.y);
if (isGrounded)
animator.Play("bez");
sprite.flipX = true;
}
else
{
rb.velocity = new Vector2(0, rb.velocity.y);
if (isGrounded)
animator.Play("idle");
}
if (Input.GetKeyDown(KeyCode.Space) && isGrounded == true)
{
rb.velocity = new Vector2(rb.velocity.x,JumpForce);
animator.Play("prigbez");
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
SceneManager.LoadScene("Menu");
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag.Equals("Money"))
{
CrystallCollect.crystallCount += 1;
Destroy(collision.gameObject);
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mob : MonoBehaviour
{
public float speed;
public int positionOfPatrol;
public Transform point;
bool moveingRight = true;
Transform player;
public float stoppingDistance;
bool chill = false;
bool angry = false;
bool goBack = false;
void Start()
{
player = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update()
{
if (Vector2.Distance(transform.position, point.position) < positionOfPatrol && angry == false)
{
chill = true;
}
if (Vector2.Distance(transform.position, player.position) < stoppingDistance)
{
angry = true;
chill = false;
goBack = false;
}
if (Vector2.Distance(transform.position, player.position) > stoppingDistance)
{
goBack = true;
angry = false;
}
if (chill == true)
{
Chill();
}
else if (angry == true)
{
Angry();
}
else if (goBack == true)
{
GoBack();
}
}
void Chill()
{
if (transform.position.x > point.position.x + positionOfPatrol)
{
moveingRight = false;
}
else if (transform.position.x < point.position.x - positionOfPatrol)
{
moveingRight = true;
}
if (moveingRight)
{
transform.position = new Vector2(transform.position.x + speed * Time.deltaTime, transform.position.y);
}
else
{
transform.position = new Vector2(transform.position.x - speed * Time.deltaTime, transform.position.y);
}
}
void Angry()
{
transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
speed = 9;
}
void GoBack()
{
transform.position = Vector2.MoveTowards(transform.position, point.position, speed * Time.deltaTime);
}
}