Se creo un segundo PickUp que otrorga mas punto al jugador
Este Pick Up esta programado de manera simiral anterior, cambia su tamaño como el de su Collider, las animaciones son distintas y esta distribuido por el mapa con menos frecuencia; en codigo tiene un puntaje otrogado diferente asi como su tag para que no se confunda con el otro Pick Up.
Animacion del segundo Pick Up
Se hizo la animacion del PickUp de cinco(5) puntos implementada al juego.
Elementos y componentes del PickUp2
Tiene lo basico, un animador,un collider y su tag propia para evitar errores.
Animator del Pick Up
Codigo del segundo Pick Up
Las siguientes imagenes son las lineas que se agregaron al codigo del movimiento del jugador para que de un puntaje diferente y colisione con este al tener otra tag .
Se declara e inicializa la variable para los puntajes que otorgaran cada uno de los pick ups.
Se agrega un if que desactive el Pick Up al colisionar con el y que sume el puntaje del Pick Up correspondiente.
Adjunto tambien el codigo del movimiento del jugador actualizadocon este codigo.
Code: Select all
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerController : MonoBehaviour
{
public int Puntaje = 1;
public int Puntaje2 = 5; //Puntajes para los PickUps
public float speed = 2f; //Permite elegir la velocidad
public float maxSpeed = 5f; //Establece un valor maximo de velocidad
public bool grounded; // booleanos que permite muestra si se encuentra o no en "el suelo"
public float jumpPower = 6.5f;//Permite elegir la distancia del salto
private Rigidbody2D rb2d;
private Animator anim; //Permite la animacion
private bool jump;
private Vector2 pos_0;
//public const string MUERTE = "Muerte";
// Start is called before the first frame update
void Start()
{
pos_0 = this.transform.position;
rb2d = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
anim.SetFloat("Speed", Mathf.Abs(rb2d.velocity.x)); //Determina si se encuentra o no en el suelo y permite o no realizar un salto
anim.SetBool("Grounded", grounded);
if (Input.GetKeyDown(KeyCode.UpArrow) && grounded)
{
jump = true;
}
}
private void FixedUpdate()
{
float h = Input.GetAxis("Horizontal");
rb2d.AddForce(Vector2.right * speed * h); //Determina las direcciones con respecto a la velocidad
if (rb2d.velocity.x > maxSpeed)
{
rb2d.velocity = new Vector2(maxSpeed, rb2d.velocity.y);
}
if (rb2d.velocity.x < -maxSpeed)
{
rb2d.velocity = new Vector2(-maxSpeed, rb2d.velocity.y);
}
if (h > 0.1f)
{
transform.localScale = new Vector3(1f, 1f, 1f);
}
if (h< -0.1f)
{
transform.localScale = new Vector3(-1f, 1f, 1f);
}
if (jump)
{
rb2d.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse); //Determinar la distancia de salto
jump = false;
}
Debug.Log(rb2d.velocity.x);
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("PickUp")) //Al colisionar con el objeto con dicha Tag este se desactivara
{
other.gameObject.SetActive(false);
ControlPuntos.Score += Puntaje; //Al colisionar con este objeto tambien sumara +1 al puntaje
}
if (other.gameObject.CompareTag("PickUp2")) //Al colisionar con el objeto con dicha Tag este se desactivara
{
other.gameObject.SetActive(false);
ControlPuntos.Score += Puntaje2; //Al colisionar con este objeto tambien sumara +1 al puntaje
}
if (other.gameObject.Equals("Muerte"))
{
this.transform.position = pos_0;
}
}
}
Distriucion de Pick Ups por el segundo mapa
Los espacios vacios son para enemigos nuevos, tambien de necesitarse se eliminaran alguno apra agregar elementos nuevos al mapa.
(Lo que se ve en gris es el Canvas que la edicion se ve sobre el mapa pero a la hora de jugar esta donde deberia, es un Canvas al fin y al cabo).
Extra
Se cambio el color del Canvas de la Energia para que fuera perfectamente visible en el segundo nivel debido a la paleta del fondo.
