The Collector- GameVerse Studio

En esta sección se realizará el seguimiento de los proyectos de semestre, con los respectivos avances periódicos según lo definido en la metodología SCRUM.

Moderator: julianmartinez16

User avatar
BsmSebastián
Posts: 13
Joined: Thu Jul 18, 2019 9:36 am

Re: The Collector- GameVerse Studio

Post by BsmSebastián » Wed Sep 04, 2019 8:57 pm

¿Que hemos hecho?

Se realizo la programación del salto para el personaje principal.

Se realizo background del nivel del juego con arte propio.

Se miro el video de la semana correspondiente.

Se escogió el asset y su correspondiente animación del enemigo del personaje principal.

¿Que vamos a hacer?

Se vera el vídeo de la semana correspondiente.

Se programara el movimiento del enemigo del personaje principal.

Se hara el arte de muros adicionales para tapar secciones escondidas del mapa.

Se comenzara con la programacion para la recoleccion de monedas.

¿Que dificultades hemos tenido?

Tuvimos dificultades con la programación de recolectar monedas y lo dejamos para la próxima semana

Sprint 9.
Inicio: jueves septiembre 05

Final: miércoles septiembre 11

Ver video de la semana (todos)
Programar movimiento enemigo del personaje principal (Sebastián)
Desarrollar arte de muros falsos (Sebastián)
Comenzar programacion de la recoleccion de monedas(Diego).
Sebastián Vargas Uribe
Estudiante: fundamentos de programación

User avatar
Dacas
Posts: 19
Joined: Thu Jul 18, 2019 9:29 am

Re: The Collector- GameVerse Studio

Post by Dacas » Wed Sep 11, 2019 6:45 pm

Semana 9

Se programo la recolección de monedas.

Image

Se distribuyeron las monedas por el mapa para darle sentido al nivel.

Image

Codigo del personaje actualizado con los cambios.

Code: Select all

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

public class PlayerController : MonoBehaviour
{
    public float maxSpeed = 5f;// Se crea la variable de velocidad máxima para que el personaje no se mueva tan rápido.
    public float speed = 2f;
    public bool grounded;// Variable para saber si se toca el suelo.
    public float jumpPower = 6.5f;// Determina la fuerza de salto.

    public void OnTriggerEnter2D(Collider2D other)
    {
        Destroy(other.gameObject);
    }


    private Rigidbody2D rb2d;// se crea una variable que contenga el rigidbody
    private Animator anim;//Se crea una variable para utilizar el componente animador.
    private bool jump; //Para detectar el salto

    void Start()
    {
        rb2d = GetComponent<Rigidbody2D>();// Se llama el rigidbody a acción
        anim = GetComponent<Animator>();// Se llama el Animator a acción 

        
    }

    // Update is called once per frame
    void Update()
    {
        anim.SetFloat("Speed", Mathf.Abs(rb2d.velocity.x));// Se llama el componente de la animación para que actué cuando hay una cierta velocidad que se determina en unity.La funcion Abs busca el valor absoluto.
        anim.SetBool("Grounded", grounded);// Se crea para saber si el personaje esta tocando el suelo y enviarla.

        if (Input.GetKeyDown(KeyCode.UpArrow) && grounded)
        {
            jump = true;
        }
    }

    private void FixedUpdate()
    {
        Vector3 fixedVelocity = rb2d.velocity;
        fixedVelocity.x *= 0.75f;// Para que el personaje no se deslice 

        if (grounded)
        {
            rb2d.velocity = fixedVelocity;
        }


        float h = Input.GetAxis("Horizontal");//Se le dice a unity que detecte automáticamente cuando se aprieta una tecla en el eje horizontal.

        rb2d.AddForce(Vector2.right * speed * h); //Se le añade una fuerza al rigidbody con un vector en dos dimensiones que apunta a la derecha y se multiplica por la velocidad establecida.

        float limitedSpeed = Mathf.Clamp(rb2d.velocity.x, -maxSpeed, maxSpeed);// la función clamp se usa para delimitar la velocidad máxima y mínima del personaje, se basa en tomar el valor de una variable y aplicarle un filtro, puede ser un mínimo o un máximo.
        rb2d.velocity = new Vector2(limitedSpeed, 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);// se utiliza para cuando el personaje va hacia la izquierda se escale en el eje x y quede mirando hacia esa dirección 
        }

        if (jump)
        {
            rb2d.velocity = new Vector2(rb2d.velocity.x, 0);// evita que hayan dobles saltos, cancelando velocidad vertical
            rb2d.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse);
            jump = false;
        }


        Debug.Log(rb2d.velocity.x);// Se hace para saber la velocidad orientativa que se le esta aplicando en el eje x.
    }
}
Diego Castillo.
Fundamentos de programación.

User avatar
BsmSebastián
Posts: 13
Joined: Thu Jul 18, 2019 9:36 am

Re: The Collector- GameVerse Studio

Post by BsmSebastián » Wed Sep 11, 2019 6:47 pm

¿Qué hemos hecho?
Se realizo el salto del personaje principal.
Se realizo la animación del enemigo del personaje principal.
Se realizó la programación para la recolección de monedas del personaje principal.
Se ajusto el diseño del nivel a las nuevas medidas impuestas por las estructuras de salto.

¿Qué vamos a hacer?
Programar el daño hecho por el enemigo hacia el personaje principal.
Programar la recolección de reliquias (anillos)
Seleccionar assets de las reliquias.
Pre visualización del HUD del juego.

¿Qué dificultades hemos tenido?
Ninguna.

Sprint 10

Inicio: jueves septiembre 12
Final: miércoles septiembre 18

TAREAS:

Ver video correspondiente (todos)
Programar daño al pj principal (todos)
Animacion monedas y reliquias (Sebastián)
Programar la recoleccion de reliquias (Diego)
Previsualización del HUD (todos)
Realización de la presentación para la pre entrega (todos)
Last edited by BsmSebastián on Wed Sep 18, 2019 7:30 pm, edited 1 time in total.
Sebastián Vargas Uribe
Estudiante: fundamentos de programación

User avatar
xacarana
Site Admin
Posts: 1199
Joined: Fri Jan 15, 2016 6:13 pm

Re: The Collector- GameVerse Studio

Post by xacarana » Tue Sep 17, 2019 11:31 am

Image

Muy bien, recuerden incluir en el sprint, las actividades para la preentrega.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
Dacas
Posts: 19
Joined: Thu Jul 18, 2019 9:29 am

Re: The Collector- GameVerse Studio

Post by Dacas » Tue Sep 17, 2019 9:59 pm

Semana 10

Se incluyeron paredes invisibles y reliquias recogibles.

Muros
Image

Reliquias

Image

Image

Se programo la cámara y su seguimiento.

Código cámara

Code: Select all

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

public class Camera : MonoBehaviour
{
    public Transform jugador;
    public Vector3 desplazamiento;


    void Update()
    {
        transform.position = new Vector3(jugador.position.x + desplazamiento.x, jugador.position.y + desplazamiento.y, desplazamiento.z);

    }
}


Se programo el contador de monedas y se añadió al HUD.

Contador de monedas

Image

Código actualizado del jugador con el contador.

Code: Select all

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

public class PlayerController : MonoBehaviour
{
    public float maxSpeed = 5f;// Se crea la variable de velocidad máxima para que el personaje no se mueva tan rápido.
    public float speed = 2f;
    public bool grounded;// Variable para saber si se toca el suelo.
    public float jumpPower = 6.5f;// Determina la fuerza de salto.
    public Text coins;//Referenciamos el componente text
    int contador;// se declara una variable para determinar la cantidad de monedas.

    public void OnTriggerEnter2D(Collider2D other)
    {
        Destroy(other.gameObject);
        contador = contador + 1;// cada que se destruya un objeto el contador va a aumentar 1 punto.
        coins.text = "Coins: " + contador;// se actualiza el contador.

    }


    private Rigidbody2D rb2d;// se crea una variable que contenga el rigidbody
    private Animator anim;//Se crea una variable para utilizar el componente animador.
    private bool jump; //Para detectar el salto

    void Start()
    {
        rb2d = GetComponent<Rigidbody2D>();// Se llama el rigidbody a acción
        anim = GetComponent<Animator>();// Se llama el Animator a acción 
        contador = 0;
        coins.text = "Coins: " + contador;//  Referenciar el contador de puntuacion
        
    }

    // Update is called once per frame
    void Update()
    {
        anim.SetFloat("Speed", Mathf.Abs(rb2d.velocity.x));// Se llama el componente de la animación para que actué cuando hay una cierta velocidad que se determina en unity.La funcion Abs busca el valor absoluto.
        anim.SetBool("Grounded", grounded);// Se crea para saber si el personaje esta tocando el suelo y enviarla.

        if (Input.GetKeyDown(KeyCode.UpArrow) && grounded)
        {
            jump = true;
        }
    }

    private void FixedUpdate()
    {
        Vector3 fixedVelocity = rb2d.velocity;
        fixedVelocity.x *= 0.85f;// Para que el personaje no se deslice 

        if (grounded)
        {
            rb2d.velocity = fixedVelocity;
        }


        float h = Input.GetAxis("Horizontal");//Se le dice a unity que detecte automáticamente cuando se aprieta una tecla en el eje horizontal.

        rb2d.AddForce(Vector2.right * speed * h); //Se le añade una fuerza al rigidbody con un vector en dos dimensiones que apunta a la derecha y se multiplica por la velocidad establecida.

        float limitedSpeed = Mathf.Clamp(rb2d.velocity.x, -maxSpeed, maxSpeed);// la función clamp se usa para delimitar la velocidad máxima y mínima del personaje, se basa en tomar el valor de una variable y aplicarle un filtro, puede ser un mínimo o un máximo.
        rb2d.velocity = new Vector2(limitedSpeed, 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);// se utiliza para cuando el personaje va hacia la izquierda se escale en el eje x y quede mirando hacia esa dirección 
        }

        if (jump)
        {
            rb2d.velocity = new Vector2(rb2d.velocity.x, 0);// evita que hayan dobles saltos, cancelando velocidad vertical
            rb2d.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse);
            jump = false;
        }


        Debug.Log(rb2d.velocity.x);// Se hace para saber la velocidad orientativa que se le esta aplicando en el eje x.
    }
}
Diego Castillo.
Fundamentos de programación.

User avatar
Dacas
Posts: 19
Joined: Thu Jul 18, 2019 9:29 am

Re: The Collector- GameVerse Studio

Post by Dacas » Wed Sep 18, 2019 10:52 pm

Diego Castillo.
Fundamentos de programación.

User avatar
Dacas
Posts: 19
Joined: Thu Jul 18, 2019 9:29 am

Re: The Collector- GameVerse Studio

Post by Dacas » Wed Oct 02, 2019 7:31 pm

¿Qué hemos hecho?

Se realizo la recolección de reliquias
Se añadió música al nivel
Se ajusto errores de espacios del pj con las colisiones.
Se ajusto error de música del nivel.
Realización de la presentación del juego.
Gameplay del juego.

¿Qué vamos a hacer?

Movimiento principal del enemigo principal
Daño del enemigo principal hacia el pj principal
Efectos de sonido
Correcciones en la presentación y gameplay señaladas por el profesor.

¿Qué dificultades hemos tenido?


Un error con la música del juego.

¿Qué hemos hecho?

Análisis de posibles anexos en el juego como cinemáticas y apoyos visuales
Corrección de errores
Búsqueda en bibliotecas gratuitas sobre efectos de sonido
Anexo de agradecimientos por uso de material no propio.

¿Qué vamos a hacer?

Implementación del Feedback visual de las mecánicas.
Búsqueda en bibliotecas gratuitas de los efectos de sonido.

¿Qué dificultades hemos tenido?


Falta de tiempo por actividades con otras materias.

Sprint 11

Inicio: jueves septiembre 19
Finaliza: miércoles 25

Tareas:

Correcciones previstas en el juego (todos)
Análisis de posible cinemática (todos)
Feedback del jugador para saber que hacer en el juego (todos)

Sprint 12
Inicio: jueves 03 de octubre
Finaliza: miércoles 09 de octubre

Tareas:
Correcciones hechas por el profesor para la presentación y gameplay del juego. (Todos)
Movimiento enemigo lateral Cíclico (diego)
Efectos de sonido (Sebastián)
Daño hecho al pj principal (todos)
Ver video (todos)
Comienzo de análisis del HUD (todos)
Diego Castillo.
Fundamentos de programación.

User avatar
BsmSebastián
Posts: 13
Joined: Thu Jul 18, 2019 9:36 am

Re: The Collector- GameVerse Studio

Post by BsmSebastián » Wed Oct 09, 2019 11:04 pm

¿Que hemos hecho?

Se realizo toda la interaccion del enemigo hacia el personaje principal
Se mejoro la animacion del personaje principal
Se realizo una mejora con el movimiento de camara para seguir al personaje
Se hizo el conteo de vidas y el game over

¿Que vamos a hacer?

Las plataformas en movimiento
Los efectos de sonido restante para darle ambiente al juego
Feedback visual del juego para guiar al jugador
Intro y outro

¿Que dificultades hemos tenido?

Ninguna

Sprint 13

inicio: jueves 10 de noviembre
finaliza: miércoles 16 de noviembre

Tareas:

Efectos de sonido para la recoleccion y ambientacion del juego (todos)
feedback visual (guia de camino, ayuda con la mision, guia de jugador, teclas que debe usar) (todos)
inicio y fin del juego (todos)
Sebastián Vargas Uribe
Estudiante: fundamentos de programación

User avatar
Dacas
Posts: 19
Joined: Thu Jul 18, 2019 9:29 am

Re: The Collector- GameVerse Studio

Post by Dacas » Wed Oct 09, 2019 11:23 pm

Punto inicial y final del recorrido de un enemigo.

Image

Conteo de vidas.

Image

Pantalla Game over.

Image

Código del enemigo.

Code: Select all

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

public class EnemyMov : MonoBehaviour
{
    public Transform punto1;//puntos de transform a donde se movera el enemigo
    public Transform punto2;

    [SerializeField]
    private float speed;
    
    private Transform objective; //transform al cual se va a mover el enemigo
    private bool place; //lo usamos para verificar en que punto esta el objetivo
    // Start is called before the first frame update
    void Start()
    {
        objective = punto1;
        place = true;
    }

    // Update is called once per frame
    void Update()
    {
        movement();
    }

    private void movement() //Codigo de movimiento por el eje x, para que funcione el enemigo y los puntos deben tener el mismo valor en el eje y y z.
    {
        if (place)//verificamos el punto a donde vamos
        {
            if(transform.position.x <= objective.position.x)//verificamos si ha llegado o pasado el punto
            {
                objective = punto2; //cambiamos de objetivo
                place = false;
            }
            else
            {
                transform.position = transform.position - new Vector3(speed, 0,0); // avanzamos segun la velocidad que hayamos puesto
            }

        }
        else
        {
            if (transform.position.x >= objective.position.x)
            {
                objective = punto1;
                place = true;
            }
            else
            {
                transform.position = transform.position + new Vector3(speed, 0, 0);
            }

        }
    }
    
}
Diego Castillo.
Fundamentos de programación.

User avatar
xacarana
Site Admin
Posts: 1199
Joined: Fri Jan 15, 2016 6:13 pm

Re: The Collector- GameVerse Studio

Post by xacarana » Thu Oct 10, 2019 8:33 am

Image

Muy bien, recuerden hacer una publicación donde consignan todo el avance, además la planeación deben tener en cuenta asignar una actividad a cada uno. No se debe asignar a "todos" las actividades, necesitamos diferenciar en que esta cada uno.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

Post Reply