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; } }