Page 2 of 4

Re: PaintRush (Jueves 22, febrero)

Posted: Thu Feb 22, 2018 10:02 pm
by juandavid03
Planeación sprint 3:
- Programar el sistema de puntos. (3 puntos)
- Programar el sistema de compras de la tienda. (4 puntos)
- Pulir sistemas ya implementados (movimiento, obstáculos, colisiones, etc.) (3 puntos)

¿Que se ha hecho?
- Se implemento el sistema de raycast para desactivar obstáculos.
- Se implemento el sistema de forma que cada rayo reconoce un objeto especifico.

Muestra de ambos:
Image

Burndown Chart Sprint 2 (Final):
Image

¿Que problemas hubo?
- Poco tiempo de desarrollo debido a complicaciones en otro negocio.

Re: PaintRush (Lunes 26, Febrero)

Posted: Mon Feb 26, 2018 9:42 pm
by juandavid03
Avances Sprint:
¿Que se ha hecho?
- Se implemento el sistema de puntaje (sube el puntaje dependiendo del tiempo, y baja la velocidad de ganancia si se golpea)

Muestra:
Image

Burndown Chart Sprint 3(Avance):
Image

¿Que se hará?
- Iniciar el sistema de compras de la tienda.
- Corregir el checklist programación.
- Realizar el script para la verificación del checklist.

¿Que problemas hubo?
- Poco tiempo de desarrollo debido a complicaciones en otro negocio.

Re: PaintRush (Jueves 1, Marzo)

Posted: Fri Mar 02, 2018 9:31 am
by juandavid03
Planeación sprint 4:
- Continuar investigación e implementación de la tienda. (4 puntos)
- Definir e iniciar las mejoras que se venderán. (4 puntos)

¿Que se hizo?
- Pulir unos sistemas (correcciones y limpieza de codigo, etc)
- Investigar sobre la implementación de la tienda.

Referencias que se estan investigando:
- https://unity3d.com/es/learn/tutorials ... -game-shop
-https://www.youtube.com/watch?v=G_I6GxGIB_Y

Burndown Chart Sprint 3(Final):
Image

¿Que se hará?
-Planeación de nuevo sprint arriba.

¿Que problemas hubo?
- Varios problemas mecánicos con el carro por lo que estuve ocupado en talleres.

Re: PaintRush (Lunes 5, marzo)

Posted: Mon Mar 05, 2018 8:25 pm
by juandavid03
¿Que se ha hecho?
-Se definieron que mejores se implementaran y en que orden se iran implementando.
-Se plantearon bocetos de diseños para estas mejoras (en UI y dentro del juego, en el personaje).

Muestra:
Image
Image
Image
Image

Burndown Chart Sprint 4 (avance):
Image

¿Que se hará?
- Se iniciara el primer intento del sistema de compras de la tienda.

¿Que problemas hubo?}
- Lumbago me tiene incapacitado desde el domingo y estuve en eso un par de dias sin poder trabajar mucho

Re: PaintRush (jueves 8, marzo)

Posted: Fri Mar 09, 2018 6:25 am
by juandavid03
Planeacion sprint 5
- Implementación de las mejoras planeadas (5 puntos)
- Implementación de las compras en el juego (4 puntos)

¿Que se ha hecho?
- Se programo el sistema de guardada de puntos (dinero para tienda).
- Se programo el sistema de compra de mejoras de la tienda.

Muestra:
Image

Muestras de codigo:
GameManager Class:

Code: Select all

using UnityEngine;

public class GameManager : MonoBehaviour
{

    private MenuManager manager;

	// Use this for initialization
	void Start ()
    {
        manager = GameObject.Find("MenuManager").GetComponent<MenuManager>();
    }
	
	// Update is called once per frame
	void Update ()
    {
        if (Personaje.Instance.Health == 0)
        {
            Time.timeScale = 0;
            Perder();
        }
	}

    private void Perder()
    {
        Personaje.Instance.isPaused = true;
        var currentAvailablePoints = PlayerPrefs.GetFloat("AvailablePoints");
        PlayerPrefs.SetFloat("SesionPoints", Personaje.Instance.Points);
        PlayerPrefs.SetFloat("AvailablePoints", currentAvailablePoints+ Personaje.Instance.Points);
        manager.LoadScene("EndgameInfoScreen");
    }
}
StoreManager Class:

Code: Select all

using UnityEngine.UI;
using UnityEngine;

public class StoreManager : MonoBehaviour
{

    public Text textPuntosDisponibles;
    public Text testText;
    private float testPoints = 5;
	// Use this for initialization
	void Start ()
    {
        testText.text = "No has comprado nada";
	}
	
	// Update is called once per frame
	void Update ()
    {
       var points = PlayerPrefs.GetFloat("AvailablePoints");
        textPuntosDisponibles.text = "Puntos Disponibles: " + points.ToString();
	}

    public void testSetPref()
    {
        var currentAvailablePoints = PlayerPrefs.GetFloat("AvailablePoints");
        PlayerPrefs.SetFloat("AvailablePoints", currentAvailablePoints+testPoints);
    }

    public void ResetPref()
    {
        PlayerPrefs.SetFloat("AvailablePoints", 0);
    }

    public void Comprar(Upgrade upgrade)
    {
        var currentAvailablePoints = PlayerPrefs.GetFloat("AvailablePoints");
        if (currentAvailablePoints > upgrade.Cost)
        {
            testText.text = upgrade.UpgradeName;
            PlayerPrefs.SetFloat("AvailablePoints", currentAvailablePoints - upgrade.Cost);
        }
        else
        {
            testText.text = "No tienes puntos para esto";
        }
    }
}
Personaje Class:

Code: Select all

using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(Rigidbody2D))]
public class Personaje : MonoBehaviour
{
    private static Personaje instance = null;

    // Game Instance Singleton
    public static Personaje Instance
    {
        get
        {
            return instance;
        }
    }

    private void Awake()
    {
        // if the singleton hasn't been initialized yet
        if (instance != null && instance != this)
        {
            Destroy(this.gameObject);
        }

        instance = this;
    }
    //private GameObject personaje;

    private Rigidbody2D rbody;

    public float force;

    [SerializeField]
    private int health = 1;

    [SerializeField]
    private float timeHealth = 5;

    private int layerMask = 8;
    private int layerMaskTest = 9;
    private float points = 0;

    public bool isPaused = false;

    public Text textPoints;

    public float Points
    {
        get
        {
            return points;
        }
        set
        {
            points = value;
        }
    }

    public int Health
    {
        get
        {
            return health;
        }
        set
        {
            health = value;
        }
    }

    public bool IsPaused
    {
        get
        {
            return isPaused;
        }
        set
        {
            isPaused = value;
        }
    }
    // Use this for initialization
    void Start ()
    {
        
        rbody = this.gameObject.GetComponent<Rigidbody2D>();
        textPoints = GameObject.Find("textPoints").GetComponent<Text>();
       
    }
	
	// Update is called once per frame
	void Update ()
    {
        //Todas las funcionalidades del update, van dentro de este if, para qu funcione cuando no estan pausadas.
        if (!isPaused)
        {
            timeHealth -= Time.deltaTime;
            var vel = new Vector2(1, rbody.velocity.y);
            rbody.velocity = vel.normalized * force;
            ActualizarPuntaje();
            Debug.Log("Health: " + Health);
            if (timeHealth < 0)
            {
                timeHealth = 10;
                if (Health < 3)
                {
                    health++;
                }
            }

            if (Input.GetKeyDown(KeyCode.Alpha1))
            {

                LanzarRayo("circle");
            }
            if (Input.GetKeyDown(KeyCode.Alpha2))
            {

                LanzarRayo("polygon");
            }
            if (Input.GetKeyDown(KeyCode.Alpha3))
            {

                LanzarRayo("square");
            }
            if (Input.GetKeyDown(KeyCode.Alpha4))
            {

                LanzarRayo("triangle");
            }
        }
        else if (isPaused)
        {
            rbody.velocity = Vector2.zero;
        }
	}

    public void RecieveDamage()
    {
        Health = Health - 1;    
    }

    public void LanzarRayo(string forma)
    {
        Debug.LogWarning("Forma: " + forma);
        switch (forma)
        {
            
            case "circle":
                {
                    RaycastHit2D hit = Physics2D.Raycast(this.transform.position, Vector2.right, Mathf.Infinity);
                    if (hit)
                    {
                        
                        if (hit.collider.gameObject.CompareTag("ObstacleCircle"))
                        {
                            Debug.Log("Desactive el circulito");
                            hit.collider.gameObject.GetComponent<Obstaculo>().IsActive = false;
                        }
                    }
                    break;
                }
            case "polygon":
                {
                    RaycastHit2D hit = Physics2D.Raycast(this.transform.position, Vector2.right, Mathf.Infinity);
                    if (hit)
                    {
                        if (hit.collider.gameObject.tag == "ObstaclePolygon")
                        {
                            Debug.Log("Desactive el poligono");
                            hit.collider.gameObject.GetComponent<Obstaculo>().IsActive = false;
                        }
                    }
                    break;
                }
            case "square":
                {
                    RaycastHit2D hit = Physics2D.Raycast(this.transform.position, Vector2.right, Mathf.Infinity, layerMask);
                    if (hit)
                    {
                  
                        if (hit.collider.gameObject.tag == "ObstacleSquare")
                        {
                            Debug.Log("Desactive el square");
                            hit.collider.gameObject.GetComponent<Obstaculo>().IsActive = false;
                        }
                    }
                    break;
                }
            case "triangle":
                {
                    RaycastHit2D hit = Physics2D.Raycast(this.transform.position, Vector2.right, Mathf.Infinity, layerMask);
                    if (hit)
                    {
                     
                        if (hit.collider.gameObject.tag == "ObstacleTriangle")
                        {
                            Debug.Log("Desactive el triangle");
                            hit.collider.gameObject.GetComponent<Obstaculo>().IsActive = false;
                        }
                    }
                    break;
                }
        }
    }

    public void ActualizarPuntaje()
    {
        if (Health == 3)
            Points += 3;
        if (Health == 2)
            Points += 2;
        if (Health == 1)
            Points += 1 ;
        textPoints.text = "Puntos: " + Points.ToString();
    }
}
Burndown Chart sprint 4 (Final):
Image

¿Que problemas hubo?
- Incapacidad por lumbago, incapacidad para pasar largos tiempos en el computador gracias a esto.

Re: PaintRush (Lunes 12, Marzo)

Posted: Tue Mar 13, 2018 1:12 am
by juandavid03
¿Que se ha hecho?
- Se implemento el sistema de compras de la tienda y un sistema de "inventario" para que la persona pueda acceder a lo que compra en la tienda dentro del juego. (subida de pruebas, GIF y codigo, mañana).

Burndown chart (avance):
Image

¿Que se hara?
- Implementar las mejoras dentro del juego.

¿Que problemas hubo?
- Poco tiempo de desarrollo el fin de semana por compromisos previos.

Re: PaintRush (Jueves 15, marzo)

Posted: Fri Mar 16, 2018 12:59 am
by juandavid03
Planeación del sprint 6:
- Organizar checklists, codigos y diagramas (3 puntos).
-Investigar sobre implementación de las mejoras (2 puntos).
-realizar una primera implementación de las mejoras (4 puntos).

¿Que se ha hecho?
-Se investigo sobre el patrón decorator para la aplicación de las mejoras compradas.

Burndown Chart (Final):
Image
(Problemas explicados abajos, no se pudo realizar la implementacion de las mejoras por eso entonces no se cumplio en la totalidad el objetivo).

Fuentes siendo estudiadas:
-https://danielggarcia.wordpress.com/201 ... decorator/
-https://www.genbetadev.com/metodologias ... -decorator

¿Que se hara?
-Planeación arriba.

¿Que problemas hubo?
-Mucho que hacer en otro negocio, por lo que hubo muy poco tiempo de desarrollo.
-Poco conocimiento sobre la aplicación optima de este tipo de sistemas y del patron decorador.

Re: PaintRush (Lunes 20, Marzo)

Posted: Tue Mar 20, 2018 10:25 pm
by juandavid03
¿Que se ha hecho?
- Investigar sobre la implementación de scriptable objects para upgrades.

Burndown chart:
Image

¿Que se hara?
-Implementar las mejoras,

¿Que problemas hubo?
-Puente en una finca sin el computador.

Links para Revision de codigo #2.

Posted: Thu Mar 22, 2018 10:11 am
by juandavid03

Re: PaintRush (Jueves 22, marzo)

Posted: Thu Mar 22, 2018 2:36 pm
by juandavid03
¿Que se ha hecho?
- Se actualizaron y organizaron los checklists y diagramas.
Muestra Checklists y diagramas:
https://docs.google.com/document/d/1xN7 ... sp=sharing

- Se realizo una primera aproximación al sistema de upgrades (falta distribuir mejor las tareas entre upgrade, personaje y los upgrades especificos).
Muestra upgrades:
Image

Burndown Chart:
Image

¿Que se hara?
- Planeación de Sprint mañana (despues de discutir horarios con el diseñador).

¿Que problemas hubo?
- Poco conocimiento de ciertos patrones (decorador).
- Poco tiempo para desarrollo hasta el miercoles en la tarde.