Page 6 of 7

Re: Desert Space - Jump Motherfucker

Posted: Wed Oct 23, 2019 11:48 pm
by MateoLC
Un nuevo enemigo mucho mas veloz, dispuesto a acabar con quien se interponga con el.
Image

Image

Image

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 12:12 am
by Awaketo
¿Qué hemos hecho?
Obstáculos y paso al segundo nivel.
El feedback del daño se pudo lograr.
Se programó y animó el segundo enemigo.



¿Qué vamos a hacer?
Terminar la plataforma que cae (reprogramar para que no choque con otros objetos)
Agregar indicaciones de cómo jugar.
Plataforma circular.
Cambiar script de vida.
Pickups segundo nivel
Crear plataforma que cae segundo nivel.

¿Qué dificultades hemos tenido?
El script de obstáculos no mataba de inmediato al player.
A la hora de poner el feedback de recibir daño el player se pone rojo, pero no le baja la vida.


Sprint 13

Inicio: 17/10/2019
Final: 24/10/2019

Tareas
Mirar el vídeo de la semana(todos)
Plataforma que cae segundo nivel (Juan)
Agregar indicaciones de cómo jugar en el primer nivel (Juan)
Pulir plataformas que caen, que no colisionen con otros objetos (Juan)
plataforma que gira circularmente (Mateo)
Nuevo script de vida (Emanuel)
Pickups segundo nivel (Emanuel)

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 12:13 am
by Awaketo
Image

Se agregaron indicaciones básicas de qué botones se usan para jugar y la funcionalidad de cada uno.

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 12:15 am
by Awaketo
Image

Al montarse en la plataforma, ella cae y no colisiona con la plataforma de abajo.

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 12:18 am
by Awaketo
Image
Adicionalmente se agregó que cuando la plataforma caiga, pasados algunos segundos se resetee, permitiendo que se vuelva a utilizar sin repetir nivel.

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 12:53 am
by Awaketo
Image

Es el mismo script que el del primer nivel, simplemente se cambió el sprite.

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 5:56 am
by MateoLC
Plataforma que gira circularmente


Image

Codigo que se utilizo

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovimientoPlataformaC : MonoBehaviour
{
    public Transform centro;
    private float xo, yo, x, y, r, angulo, tiempo;
    // Start is called before the first frame update
    void Start()
    {
        r = 3f;
        angulo = Mathf.PI / 4;
        xo = centro.transform.position.x;
        yo = centro.transform.position.y;
        tiempo = 0f;
    }
    // Update is called once per frame
    void FixedUpdate()
    {
        if (tiempo >= 0.1f)
        {
            x = xo + r * Mathf.Cos(angulo);
            y = yo + r * Mathf.Sin(angulo);
            angulo = (angulo - Mathf.PI / 32) % (2 * Mathf.PI);
            transform.localPosition = new Vector2(x, y);
            tiempo = 0.075f;
        }
        else
        {
            tiempo += Time.deltaTime;
        }
    }
}

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 6:42 am
by EliteP
Diseño final del segundo nivel

(Lo que se ve arriba es el Canvas de la vida)


Image


Nuevas vida

Funciona basicamente igual solo que con Animators y es mas facil de usar


Vida en el Canvas Ingame

Image

Asi se pierde vida

Image

Animator de la vida

Image

Al colisonar con "Muerte" te devuelven a tu posicion inical

Image

Codigo usado (otra vez el player controller)

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class PlayerController : MonoBehaviour
{
    public int Puntaje = 1; 

    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 SpriteRenderer spr;
    private bool jump;
    private Vector2 pos_o;
    private bool movement = true;
    public const string MUERTE = "Muerte";
    private int vidas = 3;

    //Asigna o retorna las vidas del personaje
    public int Vidas
    {
        get
        {
            return vidas;
        }
        set
        {
            vidas = value;
        }
    }


    // Start is called before the first frame update
    void Start()
    {
        pos_o = this.transform.position;
        rb2d = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
        spr = GetComponent<SpriteRenderer>();
    }

    // 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");
        if (!movement) h = 0;

        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
            
        }

        
        
    }
    public void EnemyKnockBack(float enemyPosX)
    {
        float side = Mathf.Sign(enemyPosX - transform.position.x);
        rb2d.AddForce(Vector2.left * side * jumpPower, ForceMode2D.Impulse);
        spr.color = Color.red;
        movement = false;
        
        
    }
    public void EnemyJumo()
    {
        jump = true;
    }

    private void OnCollisionEnter2D(Collision2D col)      //Al colisionar con:
    {
        if (col.transform.tag.Equals("Portal"))           //Al colisonar con el portal te lleva a la escena Lvl2
        {
            SceneManager.LoadScene("Lvl2");
        }

        if (col.transform.tag.Equals("Portal2"))         //Al colisionar con el portal te muestra la pantalla de Victoria
        {
            SceneManager.LoadScene("Ganaste SN");
        }

        if (col.transform.tag.Equals("PlataformaMovil"))
        {
            transform.parent = col.transform;
        }
        else
        {
            transform.parent = null;
        }

        if (col.gameObject.tag.Equals("Enemigo"))      //Al colisionar con enemigo:
        
        {
            vidas -= 1;                                  //perder una vida
            Destroy(col.gameObject);
            spr.color = Color.red;

            Invoke("EnableMovement", 0.5f);
        }

        if (col.transform.tag.Equals(MUERTE))           //Al colisionar con Muerte:
        {
            if (--vidas > 0)                             //Restar vidas
            {
                this.transform.position = pos_o;
            }
            else
            {
                Debug.Log("F");
            }
        }
        if (vidas <= 0)                                             //Al perder toda la vida el jugador se destruye
        {
            gameObject.SetActive(false);
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);  //Reinicia la Escena actual






        }
    }
    void EnableMovement()
    {
        spr.color = Color.white;
    }



}

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 6:48 am
by EliteP

Re: Desert Space - Jump Motherfucker

Posted: Thu Oct 24, 2019 6:57 am
by EliteP