public Partida(string n, DateTime t, Map m, Inventario i,Personaje j, Point p) { map=m; inv=i; jugador=j; pos=p; }
//Escritor de doc XML para mapas public void WriteMap(string name,string path, Map m) { if(path=="") path="../../Mapas/"; XmlWriterSettings conf = new XmlWriterSettings(); conf.Indent = true; XmlWriter writer = XmlWriter.Create(path+name+".xml", conf); writer.WriteStartDocument(); //writer.WriteComment("This file is generated by the program."); writer.WriteStartElement("Mapa"); writer.WriteAttributeString("name", m.nombre); writer.WriteAttributeString("width", m.w.ToString()); writer.WriteAttributeString("height", m.h.ToString()); //Escribir recursos WriteSources(writer); //Escribir Elementos WriteElements(writer, m); //writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); }
public void WriteStaticElements(XmlWriter writer, Map m) { writer.WriteStartElement("Estaticos"); List<Elemento> temp = new List<Elemento>(); foreach (Elemento a in m.Ele) { if (a.type == "Estatico") temp.Add(a); } while (temp.Count>0) { List<Elemento> iguales = new List<Elemento>(); Elemento b = temp[0]; foreach (Elemento a in temp) { if (a.name == b.name) { iguales.Add(a); } } writer.WriteComment(iguales[0].name); writer.WriteStartElement("Elemento"); writer.WriteAttributeString("solido", b.solido.ToString()); writer.WriteAttributeString("width", b._w.ToString()); writer.WriteAttributeString("height", b._h.ToString()); writer.WriteAttributeString("name", b.name.ToString()); //writer.WriteAttributeString("type", b.type.ToString()); //<imagen WriteImage(writer, b); //imagen> foreach (Elemento a in iguales) { temp.Remove(a); WritePosition(writer, a); } writer.WriteEndElement(); } writer.WriteEndElement(); }
public void WriteDinamicElements(XmlWriter writer, Map m) { writer.WriteStartElement("Dinamicos"); WriteAnimatedElements(writer, m); WriteCaracter(writer, m); writer.WriteEndElement(); }
public void WriteElements(XmlWriter writer, Map m) { writer.WriteStartElement("Elementos"); WriteStaticElements(writer, m); WriteDinamicElements(writer, m); writer.WriteEndElement(); }
//<-------------Termina esto public void CargarPersonaje(XmlNodeList _Dinamicos,ref Map _mapa) { XmlNodeList _Elemento = ((XmlElement)_Dinamicos[0]).GetElementsByTagName("Personaje"); //------------------Cargar info del Elemento animado--------------------// foreach (XmlElement a in _Elemento) { //---------------------------Cargando datos del elemento-----------------// string nombre = a.GetAttribute("name"); string clase = a.GetAttribute("clase"); float width = float.Parse(a.GetAttribute("width")); float height = float.Parse(a.GetAttribute("height")); string _accion = a.GetAttribute("accion"); Personaje temp = new Personaje(0, 0, width, height,1, 0); //-----------------------Cargando datos de la imagen----------------// temp=(Personaje)CargarImagen(temp, a); //----------------------Cargando datos de animaciones----------------// List<Animacion> Acciones = CargarAnimacion(a,temp.im); //----------------------Cargar posiciones--------------------------// List<PointF> posiciones = CargarPosicion(a); foreach (PointF p in posiciones) { Personaje _E=null; switch (clase) { case "Jugador": _E = new Jugador(p.X, p.Y, width, height, _mapa.k, temp.profundidad); _mapa.player = _mapa.Ele.Count; _mapa.IM.mover = new MovimientoPersonaje(_E.Caminar); _mapa.mover = new Moverse(_E.Moverse); _E.clase = "Jugador"; break; case "Enemigo": _E = new Enemigo(p.X, p.Y, width, height, _mapa.k, temp.profundidad); _E.clase = "Enemigo"; break; case "NPC": _E = new NPC(p.X, p.Y, width, height, _mapa.k, temp.profundidad); _E.clase = "NPC"; break; } _E.AddImg(temp.im); _E.DefinePortion(temp.rec[1].X, temp.rec[1].Y, temp.rec[1].Width, temp.rec[1].Height); _E.acciones = Acciones; _E.SetAction(_accion, false); _E.name=nombre; CargarEstado(_E, a); _E.rec[2] = CargarCaja(a, _E); _E.type = "Personaje"; _mapa.AddElemento(_E, p.X, p.Y); } } }
public void WriteCaracter(XmlWriter writer, Map m) { List<Personaje> temp = new List<Personaje>(); foreach (Elemento a in m.Ele) { if (a.type == "Personaje") temp.Add((Personaje)a); } while (temp.Count > 0) { List<Personaje> iguales = new List<Personaje>(); Personaje b = temp[0]; //iguales.Add(m.Ele[0]); foreach (Personaje a in temp) { if (a.name == b.name) { iguales.Add(a); } } writer.WriteComment(iguales[0].name); writer.WriteStartElement("Personaje"); writer.WriteAttributeString("clase", b.clase.ToString()); writer.WriteAttributeString("width", b._w.ToString()); writer.WriteAttributeString("height", b._h.ToString()); writer.WriteAttributeString("accion", b.acciones[0].nombre); WriteImage(writer, b); WriteHitBox(writer, b); WriteStatus(writer, b); WriteAnimacion(writer, b); foreach (Personaje a in iguales) { temp.Remove(a); WritePosition(writer, a); } writer.WriteEndElement(); } }
public Map CargarMapa(string path, int w, int h,double k) { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNodeList Ma = doc.GetElementsByTagName("Mapa"); //---------------Elementos leidos y guardados--------------// string n=((XmlElement)Ma[0]).GetAttribute("name"); //int offset = h / 16; int _w = int.Parse(((XmlElement)Ma[0]).GetAttribute("width")); int _h=int.Parse(((XmlElement)Ma[0]).GetAttribute("height")); //-------------------Creacion del Mapa--------------------// Map _mapa = new Map(n, 0, 0, _w, _h, (int)k); _mapa.SetFileManager(new FileHandler(GetImg)); //------------------Cargar Imagenes y Audio--------------// CargarRecursos(Ma); CargarElementos(Ma, ref _mapa); return _mapa; }
public void CargarElementos(XmlNodeList _map, ref Map _mapa) { XmlNodeList _Elementos = ((XmlElement)_map[0]).GetElementsByTagName("Elementos"); CargarElementoEstatico(_Elementos, ref _mapa); CargarElementoDinamico(_Elementos,ref _mapa); }
public void CargarElementoEstatico(XmlNodeList _Elementos, ref Map _mapa) { XmlNodeList _Estaticos = ((XmlElement)_Elementos[0]).GetElementsByTagName("Estaticos"); XmlNodeList _Elemento = ((XmlElement)_Estaticos[0]).GetElementsByTagName("Elemento"); foreach (XmlElement a in _Elemento) { //---------------------------Guardando datos del elemento-----------------// bool solid=bool.Parse(a.GetAttribute("solido")); float width=float.Parse(a.GetAttribute("width")); float height=float.Parse(a.GetAttribute("height")); string nombre = a.GetAttribute("name"); Elemento temp=new Elemento(0,0,width,height,1,0,solid); //--------------------------Guardando Especificaciones de imagen------------// CargarImagen(temp, a); //---------------------------Guardando las posicion-----------------// List<PointF> posiciones=CargarPosicion(a); //---------------------------Agregar cada elemento al mapa----------//\ foreach (PointF punto in posiciones) { Elemento _E =new Elemento(punto.X,punto.Y,temp.rec[0].Width,temp.rec[0].Height,_mapa.k,temp.profundidad,temp.solido); _E.AddImg(temp.im); _E.DefinePortion(temp.rec[1].X, temp.rec[1].Y, temp.rec[1].Width, temp.rec[1].Height); _E.name = nombre; _E.type = "Estatico"; _mapa.AddElemento(_E, punto.X, punto.Y); } //_mapa.AddElemento(temp.im,temp.profundidad,temp.rec[0].Width,temp.Height,punto.Y,punto.Y,temp,temp.rec[0]) } }
public void CargarElementoDinamico(XmlNodeList _Elementos,ref Map _mapa) { XmlNodeList _Dinamicos = ((XmlElement)_Elementos[0]).GetElementsByTagName("Dinamicos"); CargarElementoAnimado(_Dinamicos,ref _mapa); CargarPersonaje(_Dinamicos,ref _mapa); }
public void CargarElementoAnimado(XmlNodeList _Dinamicos,ref Map _mapa) { XmlNodeList _Elemento = ((XmlElement)_Dinamicos[0]).GetElementsByTagName("Elemento_Animado"); //------------------Cargar info del Elemento animado--------------------// foreach (XmlElement a in _Elemento) { //---------------------------Cargando datos del elemento-----------------// bool solid = bool.Parse(a.GetAttribute("solido")); float width = float.Parse(a.GetAttribute("width")); float height = float.Parse(a.GetAttribute("height")); Elemento_Ani temp = new Elemento_Ani(0, 0, width, height, 1, 0, solid); //-----------------------Cargando datos de la imagen----------------// temp=(Elemento_Ani)CargarImagen(temp, a); //----------------------Cargando datos de animaciones----------------// temp.ani = CargarAnimacion(a,temp.im)[0]; //----------------------Cargar posiciones--------------------------// List<PointF> posiciones=CargarPosicion(a); foreach (PointF punto in posiciones) { Elemento_Ani _E = new Elemento_Ani(punto.X, punto.Y, temp.rec[0].Width, temp.rec[0].Height, _mapa.k, temp.profundidad, temp.solido); _E.AddImg(temp.im); _E.DefinePortion(temp.rec[1].X, temp.rec[1].Y, temp.rec[1].Width, temp.rec[1].Height); _E.AddAnimation(temp.ani,new FileHandler(GetImg)); _E.type = "Animado"; _mapa.AddElemento(_E, punto.X, punto.Y); } } }