/// <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; }
/// <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); }
/// <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(); } }