예제 #1
0
    public void Click()
    {
        bool cambio = PuzzleManager.Instance.Bloqueado();

        //Si puedo cambiar el estado de la casilla, lo cambio
        if (cambio && (int)estado < 3)
        {
            estadoAnterior       = estado;
            estado               = (eCasilla)(((int)estado + 1) % 3);
            spriteCasilla.sprite = Imagenes[(int)estado];
        }
        else if (!cambio && !Ocupada && estado != eCasilla.bloqueado)
        {
            //Esta será la casilla a la que queremos ir con el coche seleccionado
            //Ponemos la flecha en la casilla
            PuzzleManager.Instance.Flecha(this.transform);
            //Avisamos al Puzzle manager de que queremos ir alli.
            PuzzleManager.Instance.GoTo(Posicion);
        }
        //Avisamos al manager de que ha cambiado
        //Este método devuelve un int que representa que coche esta seleccionado
        PuzzleManager.Instance.Seleccionado(Posicion, estado);
        //Ponemos la variable de Ocupado a true si hay un coche o si es una roca
        if ((int)estado >= 2)
        {
            Ocupada = true;
        }
    }
예제 #2
0
 public bool avanza(int coche)
 {
     if (Ocupada)
     {
         return(false);
     }
     estadoAnterior       = estado;
     estado               = (eCasilla)(coche + 3);
     spriteCasilla.sprite = Imagenes[(int)estado];
     Ocupada              = true;
     return(true);
 }
예제 #3
0
    public int Seleccionado(dim Posicion, eCasilla estado)
    {
        matriz[(int)Posicion.x, (int)Posicion.y] = estado;

        if ((int)estado > 2)        //Es uno de los coches
        {
            if (Seleccion_ == (Seleccion)((int)estado - 2))
            {
                Seleccion_ = Seleccion.none;
            }
            else
            {
                Seleccion_ = (Seleccion)((int)estado - 2);
                pSeleccion_.Set(Posicion.x, Posicion.y);
            }
        }
        else if (estado == eCasilla.bloqueado && Seleccion_ != Seleccion.none)
        {
            Seleccion_ = Seleccion.none;
        }

        Fondo.color = colores[(int)Seleccion_];
        return((int)(Seleccion_) - 1);
    }
예제 #4
0
 public void vuelve()
 {
     estado = estadoAnterior;
     spriteCasilla.sprite = Imagenes[(int)estado];
     Ocupada = false;
 }