Page 7 of 8

Re: N200 Escape

Posted: Sat Apr 09, 2016 10:47 am
by jorovipe97

Re: N200 Escape

Posted: Sat Apr 09, 2016 3:02 pm
by jorovipe97
Avance parcial
Image
El jugador ya se mueve mejor con la plataforma, pero aun tiene muchas impertfecciones :cry:

Re: N200 Escape

Posted: Sun Apr 10, 2016 9:25 pm
by juan.alvarez
Re-diseño del Fondo del nivel

Image

Re: N200 Escape

Posted: Sun Apr 10, 2016 9:58 pm
by jorovipe97
Proximo tema a estudiar

¿Iluminación y sombra en unity2D? esto sera importante para que el sistema de sigilo funcione, y para q el fondo no le robe el protagonismo a N200

Re: N200 Escape

Posted: Sun Apr 10, 2016 11:52 pm
by jorovipe97
Ayuda urgente profe

Estamos teniendo muchos problemas con el motor de físicas 2d de unity, el problema esta en los dos métodos siguientes:

Code: Select all

MonoBehaviour.OnCollisionEnter2D(Collision2D)

MonoBehaviour.OnCollisionExit2D(Collision2D)
No se estan invocando, por favor mira nuestro proyecto, el problema se esta dando en el script: PlayerController.cs y el script CollisionsLogic.cs que tienen las plataformas.

Hemos revisado y revisado pero no encontramos algo que estemos haciendo mal, tal vez ¿un bug del engine? y si es asi ¿como poder hackear el bug para lograr hacer lo que queremos?

Mensaje desalentador en reddit: Issues with BoxCollider2D

Ayudanos urgentemente profe :(

Re: N200 Escape

Posted: Mon Apr 11, 2016 7:54 am
by xacarana
Voy a revisar, pero seria bueno que pusieran la parte del código que esta fallando, para tener una mejor visión de lo que esta pasando. Pongan por favor la ruta del repositorio en el primer post, para que sea más rápido el acceso.

Re: N200 Escape

Posted: Mon Apr 11, 2016 4:49 pm
by jorovipe97
xacarana wrote:Voy a revisar, pero seria bueno que pusieran la parte del código que esta fallando, para tener una mejor visión de lo que esta pasando. Pongan por favor la ruta del repositorio en el primer post, para que sea más rápido el acceso.
Tienes razón, profe, acá pongo el link del repositorio, y detallo mejor el problema

A continuación detallo el problema, este es el PlayerController script

Code: Select all

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {
    public float AlturaSalto;
    
    // Saltos adicionales
    [Tooltip("El numero de saltos en el aire permitidos")]
    public int NumeroSaltos = 1; // 1 significa que puede saltar dos veces
    [HideInInspector]
    public bool TocoPiso; // true si esta tocando el piso (cualquier plataforma), false si no lo toca
    private int ContadorSaltos; // Para saber si puede hacer mas saltos en el aire
    
    /****
    Codigo sin importancia aca            
    ****/
    
    // Use this for initialization
    void Start () {
        rb = GetComponent<Rigidbody2D>();
        /****
        Codigo sin importancia aca            
        ****/
	}

    // Update is called once per frame
    void FixedUpdate () {
        // Logica del salto
        SaltoLogic();        
    }

    void SaltoLogic()
    {
        // Debug.Log("Toco piso?" + TocoPiso);
        if (Input.GetKeyDown(KeyCode.Space) || TocoPiso)
        {
            if (ContadorSaltos < NumeroSaltos)
            {
                rb.velocity = new Vector2(rb.velocity.x, AlturaSalto);
                ContadorSaltos++;
            }
        }
    }

    // Si toco el piso, entonces el contador de saltos vuelve a ser 0.
    void OnCollisionEnter2D(Collision2D c)
    {
        if (TocoPiso)
            ContadorSaltos = 0;
    }
}
El valor de la variable TocoPiso es asignado mediante un script que tienen todas las plataformas, así se reduce código.

Code: Select all

public class CollisionsLogic : MonoBehaviour {

    public GameObject player;
    private PlayerController playerCtrl;

    void Start () {
        playerCtrl = player.GetComponent<PlayerController>();
    }

    void OnTriggerStay2D(Collider2D c)
    {
        if (c.gameObject.tag.Equals("Player"))
        {
            playerCtrl.TocoPiso = true;
        }
    }

    void OnTriggerExit2D(Collider2D c)
    {
        if (c.gameObject.tag.Equals("Player"))
        {
            playerCtrl.TocoPiso = false;
        }
    }
}
Creamos un bug en el issue tracker, para poder dar seguimiento a este bug

Re: N200 Escape

Posted: Mon Apr 11, 2016 8:52 pm
by xacarana
El código se ve bien, el problema al parecer puede estar en el heroe o en las plataformas. En el video de esta semana doy algunas pistas sobre el uso del evento OnCollisionEnter2D, sin necesidad de usar el OnCollisionExit2D, yo también tenia problemas con el Exit, debido a la configuración de las plataformas móviles de mi proyecto de ejemplo.

Quedo pendiente.

Re: N200 Escape

Posted: Tue Apr 12, 2016 1:08 pm
by juan.alvarez
Scrum weekly meetings

¿Qué hemos hecho?
  1. Re-diseño del fondo.
  2. Programado la colisión del personaje y la plataforma.
¿Qué vamos a hacer?
  1. Arreglar las colisiones.
  2. Estudiar sobre la iluminación en unity.
¿Qué problemas hemos tenido?
  1. Problema con las colisiones, hacer que el personaje se mueva con las plataformas.
  2. El fondo opaca un poco al jugador (problema próximo a solucionar con la iluminación).

Re: N200 Escape

Posted: Wed Apr 13, 2016 1:17 am
by jorovipe97
Salto y plataforma movil perfeccionadas

El salto ahora funciona como deberia funcionar, es mas fluida y tiene una logica mas robusta y correcta.

Ademas cuando el jugador se pone sobre la plataforma móvil, este se mueve con la plataforma, esto se soluciono usando el Transform.parent (Gracias profe :idea: )