示例#1
0
        /// <summary>
        /// Constructor sin parámetros que inicializa todas las variables a sus valores básicos
        /// </summary>
        public Mascota()
        {
            bmp   = new Bitmap(237, 188);
            fondo = new Bitmap(new DirectorioRaiz().Directorio + "graficos\\silla.jpg");
            tumba = new Bitmap(new DirectorioRaiz().Directorio + "graficos\\tumba.bmp");

            componentes = new ListaComponentes();
            inventario  = new ListaObjetos();

            mascotaSerializable = new MascotaSerializable();
            //Serializar();
            Deserializar();

            ListaImagenes = new ArrayList();
            NodoComponente aux = new NodoComponente();

            aux             = this.componentes.Cab;
            PuntoReferencia = new Point(200, 185);
            Destino         = puntoReferencia;
            while (aux != null)
            {
                ListaImagenes.Add(new Bitmap(new DirectorioRaiz().Directorio + aux.Info.RutaImagen));
                aux = aux.Siguiente;
            }

            GC.Collect();
            animacion = 0;
            pintable  = Graphics.FromImage(bmp);
            girado    = false;
        }
示例#2
0
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public MascotaSerializable()
        {
            EstaViva   = true;
            Hambre     = 0;
            Higiene    = 100;
            Educacion  = 0;
            Salud      = 100;
            Diversion  = 100;
            PuntosVida = 1000;
            Dinero     = 0;

            acumuladoAtributoDestrezaInteligencia = 0;
            acumuladoAtributoResistenciaFuerza    = 0;

            Resistencia  = 1;
            Fuerza       = 3;
            Destreza     = 1;
            Inteligencia = 1;
            Nivel        = resistencia + fuerza + destreza + inteligencia;

            Inventario  = new ListaObjetos();
            Componentes = new ListaComponentes();

            Educador  libro     = new Educador("Libro", 10, "graficos\\libro.bmp");
            Alimento  cerebro   = new Alimento("Cerebro", 80, "graficos\\cerebro.bmp");
            Alimento  bocadillo = new Alimento("Bocadillo", 10, "graficos\\bocata.bmp");
            Limpiador patito    = new Limpiador("Patito de Goma", 70, "graficos\\higiene.bmp");
            Curador   botiquin  = new Curador("Botiquín", 100, "graficos\\botiquin.bmp");

            inventario.Insertar(libro);
            inventario.Insertar(cerebro);
            inventario.Insertar(bocadillo);
            inventario.Insertar(patito);
            inventario.Insertar(botiquin);

            Point puntoMedio = new Point(200, 150);

            #region Pierna Derecha
            Componente piernaDerecha = new Componente();

            piernaDerecha.DatosAnimacionQuieto[0].RectanguloFuente         = new Rectangle(0, 0, 34, 21);
            piernaDerecha.DatosAnimacionQuieto[0].DistanciaPuntoReferencia = new Point(0, -40);
            piernaDerecha.DatosAnimacionQuieto[1].RectanguloFuente         = new Rectangle(0, 0, 34, 21);
            piernaDerecha.DatosAnimacionQuieto[1].DistanciaPuntoReferencia = new Point(0, -40);

            for (int i = 0; i < 6; i++)
            {
                piernaDerecha.DatosAnimacionCaminar[i].RectanguloFuente               = new Rectangle(34 * i, 0, 34, 21);
                piernaDerecha.DatosAnimacionCaminar[i].DistanciaPuntoReferencia       = new Point(0, -40);
                piernaDerecha.DatosAnimacionCaminarGirado[i].DistanciaPuntoReferencia = new Point(0, -40);
            }

            piernaDerecha.CalcularGiro();
            piernaDerecha.Frame      = 0;
            piernaDerecha.GradoVida  = 0;
            piernaDerecha.Nombre     = "piernaDerecha";
            piernaDerecha.RutaImagen = "graficos//pieDerechoAndando.bmp";
            #endregion
            #region Pierna Izquierda
            Componente piernaIzquierda = new Componente();

            piernaIzquierda.DatosAnimacionQuieto[0].RectanguloFuente         = new Rectangle(0, 0, 32, 21);
            piernaIzquierda.DatosAnimacionQuieto[0].DistanciaPuntoReferencia = new Point(0, -40);
            piernaIzquierda.DatosAnimacionQuieto[1].RectanguloFuente         = new Rectangle(0, 0, 32, 21);
            piernaIzquierda.DatosAnimacionQuieto[1].DistanciaPuntoReferencia = new Point(0, -40);

            for (int i = 0; i < 6; i++)
            {
                piernaIzquierda.DatosAnimacionCaminar[i].RectanguloFuente               = new Rectangle(32 * i, 0, 32, 21);
                piernaIzquierda.DatosAnimacionCaminar[i].DistanciaPuntoReferencia       = new Point(0, -40);
                piernaIzquierda.DatosAnimacionCaminarGirado[i].DistanciaPuntoReferencia = new Point(0, -40);
            }

            piernaIzquierda.CalcularGiro();
            piernaIzquierda.Frame      = 0;
            piernaIzquierda.GradoVida  = 0;
            piernaIzquierda.Nombre     = "piernaIzquierda";
            piernaIzquierda.RutaImagen = "graficos//pieIzquierdoAndando.bmp";
            #endregion
            #region Brazo Derecho
            Componente brazoDerecho = new Componente();
            brazoDerecho.DatoComponente.RectanguloFuente         = new Rectangle(0, 0, 24, 29);
            brazoDerecho.DatoComponente.DistanciaPuntoReferencia = new Point(0, -62);

            for (int i = 0; i < 6; i++)
            {
                brazoDerecho.DatosAnimacionCaminar[i].RectanguloFuente               = new Rectangle(0, 0, 24, 29);
                brazoDerecho.DatosAnimacionCaminar[i].DistanciaPuntoReferencia       = new Point(2, -62);
                brazoDerecho.DatosAnimacionCaminarGirado[i].DistanciaPuntoReferencia = new Point(4, -62);
            }

            brazoDerecho.CalcularGiro();
            brazoDerecho.DatosAnimacionQuieto[0].RectanguloFuente         = new Rectangle(0, 0, 24, 29);
            brazoDerecho.DatosAnimacionQuieto[0].DistanciaPuntoReferencia = new Point(0, -62);
            brazoDerecho.Frame      = 0;
            brazoDerecho.GradoVida  = 0;
            brazoDerecho.Nombre     = "brazoDerecho";
            brazoDerecho.RutaImagen = "graficos//brazoZombieCorbata.bmp";
            #endregion
            #region Brazo Izquierdo
            Componente brazoIzquierdo = new Componente();
            brazoIzquierdo.DatoComponente.RectanguloFuente         = new Rectangle(0, 0, 24, 29);
            brazoIzquierdo.DatoComponente.DistanciaPuntoReferencia = new Point(0, -62);

            for (int i = 0; i < 6; i++)
            {
                brazoIzquierdo.DatosAnimacionCaminar[i].RectanguloFuente               = new Rectangle(0, 0, 24, 29);
                brazoIzquierdo.DatosAnimacionCaminar[i].DistanciaPuntoReferencia       = new Point(2, -62);
                brazoIzquierdo.DatosAnimacionCaminarGirado[i].DistanciaPuntoReferencia = new Point(4, -62);
            }
            brazoIzquierdo.DatosAnimacionQuieto[1].RectanguloFuente         = new Rectangle(0, 0, 24, 29);
            brazoIzquierdo.DatosAnimacionQuieto[1].DistanciaPuntoReferencia = new Point(0, -62);

            brazoIzquierdo.CalcularGiro();
            brazoIzquierdo.Frame      = 0;
            brazoIzquierdo.GradoVida  = 0;
            brazoIzquierdo.Nombre     = "brazoIzquierdo";
            brazoIzquierdo.RutaImagen = "graficos//brazoZombieCorbata.bmp";
            #endregion
            #region Tronco
            Componente tronco = new Componente();
            tronco.DatosAnimacionQuieto[0].RectanguloFuente         = new Rectangle(0, 0, 32, 33);
            tronco.DatosAnimacionQuieto[0].DistanciaPuntoReferencia = new Point(0, -71);
            tronco.DatosAnimacionQuieto[1].RectanguloFuente         = new Rectangle(0, 0, 32, 33);
            tronco.DatosAnimacionQuieto[1].DistanciaPuntoReferencia = new Point(0, -71);

            for (int i = 0; i < 6; i++)
            {
                tronco.DatosAnimacionCaminar[i].RectanguloFuente               = new Rectangle(32 * i, 0, 32, 33);
                tronco.DatosAnimacionCaminar[i].DistanciaPuntoReferencia       = new Point(0, -71);
                tronco.DatosAnimacionCaminarGirado[i].DistanciaPuntoReferencia = new Point(0, -71);
            }

            tronco.CalcularGiro();
            tronco.Frame      = 0;
            tronco.GradoVida  = 0;
            tronco.Nombre     = "tronco";
            tronco.RutaImagen = "graficos//cuerpoZombieAndando.bmp";
            #endregion
            #region Cabeza
            Componente cabeza = new Componente();
            cabeza.GradoVida = 0;
            cabeza.Frame     = 0;
            for (int i = 0; i < 6; i++)
            {
                cabeza.DatosAnimacionCaminar[i].RectanguloFuente = new Rectangle(0, 0, 42, 44);
            }
            cabeza.DatosAnimacionQuieto[0].DistanciaPuntoReferencia = new Point(-20, -105);
            cabeza.DatosAnimacionQuieto[0].RectanguloFuente         = new Rectangle(0, 0, 42, 44);
            cabeza.DatosAnimacionQuieto[1].DistanciaPuntoReferencia = new Point(-20, -105);
            cabeza.DatosAnimacionQuieto[1].RectanguloFuente         = new Rectangle(0, 0, 42, 44);

            cabeza.DatosAnimacionCaminar[0].DistanciaPuntoReferencia       = new Point(-20, -105);
            cabeza.DatosAnimacionCaminar[1].DistanciaPuntoReferencia       = new Point(-20, -105);
            cabeza.DatosAnimacionCaminar[2].DistanciaPuntoReferencia       = new Point(-13, -107);
            cabeza.DatosAnimacionCaminar[3].DistanciaPuntoReferencia       = new Point(-20, -105);
            cabeza.DatosAnimacionCaminar[4].DistanciaPuntoReferencia       = new Point(-20, -105);
            cabeza.DatosAnimacionCaminar[5].DistanciaPuntoReferencia       = new Point(-13, -107);
            cabeza.DatosAnimacionCaminarGirado[0].DistanciaPuntoReferencia = new Point(3, -107);
            cabeza.DatosAnimacionCaminarGirado[1].DistanciaPuntoReferencia = new Point(10, -105);
            cabeza.DatosAnimacionCaminarGirado[2].DistanciaPuntoReferencia = new Point(10, -105);
            cabeza.DatosAnimacionCaminarGirado[3].DistanciaPuntoReferencia = new Point(3, -107);
            cabeza.DatosAnimacionCaminarGirado[4].DistanciaPuntoReferencia = new Point(10, -105);
            cabeza.DatosAnimacionCaminarGirado[5].DistanciaPuntoReferencia = new Point(10, -105);

            cabeza.CalcularGiro();

            cabeza.Nombre     = "Cabeza";
            cabeza.RutaImagen = "graficos//cabezaZombieCorbata.bmp";
            #endregion

            componentes.Insertar(piernaDerecha);
            componentes.Insertar(brazoDerecho);
            componentes.Insertar(tronco);
            componentes.Insertar(piernaIzquierda);
            componentes.Insertar(brazoIzquierdo);
            componentes.Insertar(cabeza);
        }
示例#3
0
        /// <summary>
        /// Deserializa la mascota Serializable.
        /// </summary>
        public void Deserializar()
        {
            try
            {
                long memoria = new long();
                memoria = GC.GetTotalMemory(false);
                MascotaSerializable mascotaDeserializada;
                XmlSerializer       serializer = new XmlSerializer(typeof(MascotaSerializable));

                using (System.IO.StreamReader reader = new System.IO.StreamReader(new DirectorioRaiz().Directorio + "archivos\\XMLMascotaSerializable.xml"))
                {
                    mascotaDeserializada = (MascotaSerializable)serializer.Deserialize(reader);
                    reader.Close();
                    serializer = null;
                }

                GC.Collect();

                EstaViva     = mascotaDeserializada.EstaViva;
                Hambre       = mascotaDeserializada.Hambre;
                Higiene      = mascotaDeserializada.Higiene;
                Educacion    = mascotaDeserializada.Educacion;
                Salud        = mascotaDeserializada.Salud;
                Diversion    = mascotaDeserializada.Diversion;
                PuntosVida   = mascotaDeserializada.PuntosVida;
                Nivel        = mascotaDeserializada.Nivel;
                Resistencia  = mascotaDeserializada.Resistencia;
                Fuerza       = mascotaDeserializada.Fuerza;
                Destreza     = mascotaDeserializada.Destreza;
                Inteligencia = mascotaDeserializada.Inteligencia;
                Dinero       = mascotaDeserializada.Dinero;
                AcumuladoAtributoResistenciaFuerza     = mascotaDeserializada.AcumuladoAtributoResistenciaFuerza;
                AcumuladorAtributoDestrezaIngeligencia = mascotaDeserializada.AcumuladorAtributoDestrezaIngeligencia;

                componentes = mascotaDeserializada.Componentes;

                inventario           = mascotaDeserializada.Inventario;
                mascotaDeserializada = null;
                GC.Collect();
                memoria = GC.GetTotalMemory(true);

                if (OnDiversionCambiada != null)
                {
                    OnDiversionCambiada(this, diversion);
                }
                if (OnEducacionCambiada != null)
                {
                    OnEducacionCambiada(this, educacion);
                }
                if (OnHambreCambiada != null)
                {
                    OnHambreCambiada(this, hambre);
                }
                if (OnHigieneCambiada != null)
                {
                    OnHigieneCambiada(this, higiene);
                }
                if (OnPuntosVidaCambiada != null)
                {
                    OnPuntosVidaCambiada(this, puntosVida);
                }
                if (OnSaludCambiada != null)
                {
                    OnSaludCambiada(this, salud);
                }
                if (OnDineroCambiado != null)
                {
                    OnDineroCambiado(this, dinero);
                }
            }
            catch
            {
                Serializar(true);
                Deserializar();
            }
        }