static SaveData LoadBytesFile(byte[] bytes) { int header = 0; Program.estado estado; Jugador jugador = new Jugador(); Enemigo enemigo = new Enemigo(); Enemigo enemigo1 = new Enemigo(); estado = (Program.estado)Enum.ToObject(typeof(Program.estado), BitConverter.ToInt64(bytes, header)); header += sizeof(int); jugador.y = BitConverter.ToSingle(bytes, header); header += sizeof(float); jugador.x = BitConverter.ToSingle(bytes, header); header += sizeof(float); enemigo.y = BitConverter.ToSingle(bytes, header); header += sizeof(float); enemigo.x = BitConverter.ToSingle(bytes, header); header += sizeof(float); if (estado == Program.estado.nivel2) { enemigo1.y = BitConverter.ToSingle(bytes, header); header += sizeof(float); enemigo1.x = BitConverter.ToSingle(bytes, header); header += sizeof(float); } SaveData saveData = new SaveData(estado, jugador, enemigo, enemigo1); return(saveData); }
static byte[] GetBytes(Jugador jugador, Enemigo enemigo, Program.estado estado, Enemigo enemigo1 = null) { List <byte> bytes = new List <byte>(); byte[] estadoBytes = BitConverter.GetBytes((int)estado); bytes.AddRange(estadoBytes); byte[] yPersonajeBytes = BitConverter.GetBytes(jugador.y); bytes.AddRange(yPersonajeBytes); byte[] xPersonajeBytes = BitConverter.GetBytes(jugador.x); bytes.AddRange(xPersonajeBytes); byte[] yEnemigoBytes = BitConverter.GetBytes(enemigo.y); bytes.AddRange(yEnemigoBytes); byte[] xEnemigoBytes = BitConverter.GetBytes(enemigo.x); bytes.AddRange(xEnemigoBytes); if (estado == Program.estado.nivel2) { byte[] yEnemigo1Bytes = BitConverter.GetBytes(enemigo1.y); bytes.AddRange(yEnemigo1Bytes); byte[] xEnemigo1Bytes = BitConverter.GetBytes(enemigo1.x); bytes.AddRange(xEnemigo1Bytes); } return(bytes.ToArray()); }
public SaveData(Program.estado estado, Jugador jugador, Enemigo enemigo, Enemigo enemigo1) { this.estado = estado; this.jugador = jugador; this.enemigo = enemigo; this.enemigo1 = enemigo1; }
public static void SaveBytesFile(Program.estado estado, Jugador jugador, Enemigo enemigo, Enemigo enemigo1 = null) { byte[] bytes = GetBytes(jugador, enemigo, estado, enemigo1); string filePath = Directory.GetCurrentDirectory() + "\\savefile.sav"; using (FileStream stream = File.Open(filePath, FileMode.OpenOrCreate)) { foreach (byte b in bytes) { stream.WriteByte(b); } stream.Close(); } }
public Form1() { InitializeComponent(); personaje = new Personaje(); cont_enemigos = NE; for (int i = 1; i <= NE; i++) { enemigo.Add(new Enemigo(i * 300, false)); } finalboss = new Enemigo(750, true); d = new Disparo(personaje.getX(), personaje.getY()); fondo = new Bitmap("C:/Users/Fernando/Documents/GitHub/2dam/DINT/Game/Game/res/fondo.jpg"); yf = -700; }
public override bool IsCollision(Enemigo i) { if (position.X >= i.position.X && position.X <= i.position.X + i.CurrentFrame.Width && position.Y >= i.position.Y && position.Y <= i.position.Y + i.CurrentFrame.Height) { toca = true; return(true); } else if (position.X + CurrentFrame.Width >= i.position.X && position.X + CurrentFrame.Width <= i.position.X + i.CurrentFrame.Width && position.Y >= i.position.Y && position.Y <= i.position.Y + i.CurrentFrame.Height) { toca = true; return(true); } else if (position.X >= i.position.X && position.X <= i.position.X + i.CurrentFrame.Width && position.Y + CurrentFrame.Height >= i.position.Y && position.Y + CurrentFrame.Height <= i.position.Y + i.CurrentFrame.Height) { toca = true; return(true); } else if (position.X + CurrentFrame.Width >= i.position.X + CurrentFrame.Width && position.X <= i.position.X + i.CurrentFrame.Width && position.Y + CurrentFrame.Height >= i.position.Y + CurrentFrame.Height && position.Y <= i.position.Y + i.CurrentFrame.Height) { toca = true; return(true); } else { if (toca == true) { if (escudo == false) { vida--; toca = false; if (vida <= 0) { muerto = true; } } else { escudoContador--; toca = false; if (escudoContador <= 0) { escudoContador = 0; escudo = false; } } } return(false); } }
public bool ChequearColisiones(Enemigo enemigo) { float diffX = Math.Abs(x - enemigo.x); float diffY = Math.Abs(y - enemigo.y); float sumaMitadAnchos = ancho / 2 + enemigo.ancho / 2; float sumaMitadAltos = alto / 2 + enemigo.alto / 2; if (diffX <= sumaMitadAnchos && diffY <= sumaMitadAltos) { VidaManager.Instance.Vida--; return(true); } else { return(false); } }
public override bool IsCollision(Enemigo i) { /* * Detecta las colisiones con objetos del tipo Item */ if (position.X >= i.position.X && position.X <= i.position.X + i.CurrentFrame.Width && position.Y >= i.position.Y && position.Y <= i.position.Y + i.CurrentFrame.Height) { speedV.X *= -1; Flip(); return(true); } //Punto C else if (position.X + CurrentFrame.Width >= i.position.X && position.X + CurrentFrame.Width <= i.position.X + i.CurrentFrame.Width && position.Y + CurrentFrame.Height >= i.position.Y && position.Y + CurrentFrame.Height <= i.position.Y + i.CurrentFrame.Height) { speedV.X *= -1; Flip(); return(true); } //Punto B if (position.X + CurrentFrame.Width >= i.position.X && position.X + CurrentFrame.Width <= i.position.X + i.CurrentFrame.Width && position.Y >= i.position.Y && position.Y <= i.position.Y + i.CurrentFrame.Height) { speedV.X *= -1; Flip(); return(true); } //Punto D else if (position.X >= i.position.X && position.X <= i.position.X + i.CurrentFrame.Width && position.Y + CurrentFrame.Height >= i.position.Y && position.Y + CurrentFrame.Height <= i.position.Y + i.CurrentFrame.Height) { speedV.X *= -1; Flip(); return(true); } else { return(false); } }
public void ResetearNivel2() { enemigo1 = new Enemigo(600f, 300f, 100f, 75f, 525f); enemigo = new Enemigo(400f, 300f, 100f, 75f, 525f); jugador = new Jugador(100f, 537f, 500f, tilemap, VidaManager.Instance.Vida); }
public abstract void Flip(); //Sirve para cambiar el sentido del frame izquierda a derecha public abstract bool IsCollision(Enemigo i); //Detecta las colisiones con los enemigos