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();
            }
        }
Exemple #5
0
 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);
            }
        }
Exemple #8
0
 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);
     }
 }
Exemple #9
0
 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);
 }
Exemple #10
0
 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