示例#1
0
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            spriteBatch.Begin();


            spawn(personnage, perso.getPersoPos(), 0, 1f);             //On affiche le personnage



            popMap(0, 150, 400);
            popMap(1, 300, 400);
            popMap(2, 600, 400);
            popMap(3, 485, 200);
            popMap(4, 750, 300);
            popMap(5, 300, 200);
            popMap(6, 600, 200);
            popMap(7, 600, 400);
            popMap(8, 485, 200);
            popMap(9, 750, 300);
            popMap(10, 364, 400);
            popMap(11, 300, 400);
            popMap(12, 600 - 64, 400);
            popMap(13, 485 + 64, 200);
            popMap(14, 750 - 64, 350);
            popMap(15, 364, 200);

            if (attackDistance)
            {
                if (!isAttackDistanceHere)
                {
                    attDPos = perso.getAttPos();
                    isAttackDistanceHere = !isAttackDistanceHere;
                }
                else
                {
                    if (perso.getSens() == 1)
                    {
                        attDPos = new Vector2(attDPos.X + 15, attDPos.Y);
                    }
                    else
                    {
                        attDPos = new Vector2(attDPos.X - 15, attDPos.Y);
                    }
                }
                spawn(attackD, attDPos, 0, 1f);
            }

            if (attDPos.X > 1000 || attDPos.X < 0)
            {
                attackDistance       = false;
                isAttackDistanceHere = false;
            }

            if (perso.getSens() == 1)                //Si le perso est dans le sens 1
            {
                if (r)
                {
                    if (framePerso < 15 / 2)
                    {
                        personnage = perso.persoAv0;
                    }
                    else if (framePerso < 15 && framePerso > 15 / 2)
                    {
                        personnage = perso.persoAv1;
                    }
                    else if (framePerso > 15 && framePerso < 45 / 2)
                    {
                        personnage = perso.persoAv2;
                    }
                    else
                    {
                        personnage = perso.persoAv3;
                    }
                    r = false;
                }
                perso.createPersoHitBox(new Rectangle((int)perso.getPersoPos().X + 20, (int)perso.getPersoPos().Y, 4, 64));
                if (refreshImages)
                {
                    perso.moveAttack(new Vector2(perso.getPersoPos().X + 50, perso.getPersoPos().Y));                                 //et on positionne l'endroit o� appara�tra son attaque si il attaque
                }
            }
            else              //Si il est dans le sens 0
            {
                if (l)
                {
                    if (framePerso < 15 / 2)
                    {
                        personnage = perso.perso2Av0;
                    }
                    else if (framePerso < 15 && framePerso > 15 / 2)
                    {
                        personnage = perso.perso2Av1;
                    }
                    else if (framePerso > 15 && framePerso < 45 / 2)
                    {
                        personnage = perso.perso2Av2;
                    }
                    else
                    {
                        personnage = perso.perso2Av3;
                    }
                    l = false;
                }
                perso.createPersoHitBox(new Rectangle((int)perso.getPersoPos().X + 24, (int)perso.getPersoPos().Y + 53, 10, 10));
                if (refreshImages)
                {
                    perso.moveAttack(new Vector2(perso.getPersoPos().X - 50, perso.getPersoPos().Y));                     //idem
                }
            }

            for (int i = 0; i <= 1; i++)
            {
                if (Mob[i].mobInLifeOrNot())                                                                             // Si le mob est en vie
                {
                    spawn(Mob[i].mobText, Mob[i].getMobPos(), 0, 0.5f);                                                  //One le spawn
                    Mob[i].createMobHitBox(new Rectangle((int)Mob[i].getMobPos().X, (int)Mob[i].getMobPos().Y, 64, 64)); //Et on d�finit sa hitbox
                }
            }


            /*   else if (sensPerso == 2)
             * {
             *
             * }
             * else if (sensPerso == 3)
             * {
             *
             * }*/                                                                                                   //Au d�but on voulait 2 directions mais une �a ira pour le d�but
            if (perso.getAttOrNot())                                                                                 //Si le perso attaque
            {
                spawn(perso.attack, perso.getAttPos(), 0, 1f);                                                       //On spawn l'attaque du perso
                perso.createAttackHitBox(new Rectangle((int)perso.getAttPos().X, (int)perso.getAttPos().Y, 64, 64)); // On cr�e sa hitbox
                for (int i = 0; i <= 1; i++)
                {
                    if (perso.getAttackHitBox().Intersects(Mob[i].getMobHitBox())) //Si elle touche le mob
                    {
                        Mob[i].killMob(false);                                     // On tue le mob
                    }
                }
                perso.attacking(false);                 // Le perso n'attaque plus
            }

            for (int i = 0; i <= 1; i++)
            {
                if (refreshImages)
                {
                    Mob[i].moveMob(new Vector2(Mob[i].getMobPos().X - 1, Mob[i].getMobPos().Y));                     //On déplace le mob d'un pixel a chaque refresh
                }
            }
            spriteBatch.End();
            base.Draw(gameTime);

            for (int i = 0; i < Mob.Length; i++)
            {
                if (!Mob[i].mobInLifeOrNot())                 // Si le Mob est mort
                {                                             /////////////////////
                    Mob[i].moveMob(new Vector2(700, 250));    //Changer sa position //////RES LE MOB//////
                    Mob[i].killMob(true);                     //Le réssusiter                       //////////////////////
                }
            }
            refreshImages = !refreshImages;
            framePerso++;
            if (framePerso >= 30)
            {
                framePerso = 0;
            }
        }