public Acteur(Texture2D image, Vector2 position, float rotation, Vector2 limiteHautGauche, Vector2 limiteBasDroit, int pointsdeVie, float vitesse, int force, Acteur cible, Camp campAdverse, SpriteBatch batch, SpriteFont font) : base(image, position, batch, font) { this.rotation = rotation; this.centrageDuPivot = new Vector2(image.Width / 2, image.Height / 2); this.boiteCollision = new BoundingBox(new Vector3(position.X - centrageDuPivot.X, position.Y - centrageDuPivot.Y, 0), new Vector3(position.X + centrageDuPivot.X, position.Y + centrageDuPivot.Y, 0)); this.sphereCollision = new BoundingSphere(new Vector3(position.X, position.Y, 0), centrageDuPivot.X); this.limiteHautGauche = limiteHautGauche + centrageDuPivot; this.limiteBasDroit = limiteBasDroit - centrageDuPivot; this.pointsDeVie = pointsdeVie; this.vitesse = vitesse; this.force = force; this.couleur = Color.White; this.cible = cible; this.CampAdverse = campAdverse; prochaineAttaque = rythmeAttaque; touche = false; }
public Zombie(Texture2D image, Vector2 positionDepart, float rotation, Vector2 limiteHautGauche, Vector2 limiteBasDroite, int vie, float vitesse, int force, Acteur cible, Camp campAdverse, SpriteBatch batch, SpriteFont font) : base(image, positionDepart, rotation, limiteHautGauche, limiteBasDroite, vie, vitesse, force, cible, campAdverse, batch, font) { etat = new EtatNormal_Z(this); }
public Coureur(Vector2 positionDepart, float rotation, Vector2 limiteHautGauche, Vector2 limiteBasDroite, Acteur cible, Camp campAdverse, SpriteBatch batch, SpriteFont font) : base(TEXTURE, positionDepart, rotation, limiteHautGauche, limiteBasDroite, VIE_MAX_COUREUR, VITESSE_COUREUR, FORCE_COUREUR, cible, campAdverse, batch, font) { rythmeAttaque = RYTHME_ATTAQUE_COUREUR; TexteVie = VIE_MAX_COUREUR + "/" + VIE_MAX_COUREUR; pointsDeVieMax = VIE_MAX_COUREUR; rayonDetection = RAYON_DETECTION_COUREUR; rayonAttaque = RAYON_ATTAQUE_COUREUR; }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); //Changement de la font, pour l'écriture mainFont = Content.Load <SpriteFont>("Fonts\\FontPrincipale"); //Champ de bataille: le fond champDeBataille = new Objet2D(Content.Load <Texture2D>("Sprites\\background"), Vector2.Zero, spriteBatch, mainFont); //Une texture pour les deux zones de couvert Texture2D imageCouvert = Content.Load <Texture2D>("Sprites\\couvert"); couverts[0] = new Objet2D(imageCouvert, new Vector2(LARGEUR_ECRAN - imageCouvert.Width - 450, 100), spriteBatch, mainFont); couverts[1] = new Objet2D(imageCouvert, new Vector2(LARGEUR_ECRAN - imageCouvert.Width - 450, HAUTEUR_ECRAN - imageCouvert.Height - 100), spriteBatch, mainFont); // Une texture pour les deux nids de sniper Texture2D imageNid = Content.Load <Texture2D>("Sprites\\nid_sniper"); nidsSniper[0] = new Objet2D(imageNid, new Vector2(LARGEUR_ECRAN - imageNid.Width - 300, 150), spriteBatch, mainFont); nidsSniper[1] = new Objet2D(imageNid, new Vector2(LARGEUR_ECRAN - imageNid.Width - 300, HAUTEUR_ECRAN - imageNid.Height - 150), spriteBatch, mainFont); // Deux textures différentes pour les camps Texture2D imageCampZombies = Content.Load <Texture2D>("Sprites\\lab"); Texture2D imageCampSurvivants = Content.Load <Texture2D>("Sprites\\camp"); campSurvivant = new Camp(imageCampSurvivants, new Vector2(LARGEUR_ECRAN - imageCampSurvivants.Width, HAUTEUR_ECRAN / 3), new Vector2(LARGEUR_ECRAN - imageCampSurvivants.Width - 20, HAUTEUR_ECRAN / 2), spriteBatch, mainFont); campZombie = new Camp(imageCampZombies, new Vector2(0, HAUTEUR_ECRAN / 3f), new Vector2(imageCampZombies.Width + 20, HAUTEUR_ECRAN / 2), spriteBatch, mainFont); // Textures de toutes les sortes de personnages imageZombieCoureur = Content.Load <Texture2D>("Sprites\\coureur"); Coureur.TEXTURE = imageZombieCoureur; imageZombieTank = Content.Load <Texture2D>("Sprites\\tank"); Tank.TEXTURE = imageZombieTank; imageSniper = Content.Load <Texture2D>("Sprites\\survivor_rifle"); Sniper.TEXTURE = imageSniper; imageSoldat = Content.Load <Texture2D>("Sprites\\soldat"); Soldat.TEXTURE = imageSoldat; imageEscrimeur = Content.Load <Texture2D>("Sprites\\escrimeur"); Escrimeur.TEXTURE = imageEscrimeur; // Textures pour les boutons de l'interface Texture2D iconeSniper = Content.Load <Texture2D>("Sprites\\icone_sniper"); Texture2D iconeSoldat = Content.Load <Texture2D>("Sprites\\icone_soldat"); Texture2D iconeEscrimeur = Content.Load <Texture2D>("Sprites\\icone_escrimeur"); boutons[0] = new Bouton(iconeSniper, new Vector2(campSurvivant.Position.X, campSurvivant.Position.Y - 60), Bouton.TypeBouton.Sniper); boutons[1] = new Bouton(iconeSoldat, new Vector2((float)(campSurvivant.Position.X + iconeSoldat.Width * 1.5f), campSurvivant.Position.Y - 60), Bouton.TypeBouton.Soldat); boutons[2] = new Bouton(iconeEscrimeur, new Vector2(campSurvivant.Position.X + iconeSoldat.Width * 3, campSurvivant.Position.Y - 60), Bouton.TypeBouton.Escrimeur); // Chargement des sons des personnages sonZombie = Content.Load <SoundEffect>("Audio\\ZombieDeath"); sonSurvivant = Content.Load <SoundEffect>("Audio\\SurvivorDeath"); Survivant.SonFusil = Content.Load <SoundEffect>("Audio\\GunShot"); Survivant.SonBlesse = Content.Load <SoundEffect>("Audio\\SurvivorHit"); NbZombiesCampSurvivants = 0; RayonDefenseCampSurvivant = 50; GenererPersonnagesDepart(); }
public static Zombie CreerZombie(typeZombie zombie, Vector2 positionDepart, float rotation, Vector2 limiteHautGauche, Vector2 limiteBasDroite, Acteur cible, Camp campAdverse, SpriteBatch batch, SpriteFont font) { if (zombie == typeZombie.Coureur) { return(new Coureur(positionDepart, rotation, limiteHautGauche, limiteBasDroite, cible, campAdverse, batch, font)); } else { return(new Tank(positionDepart, rotation, limiteHautGauche, limiteBasDroite, cible, campAdverse, batch, font)); } }
public static Survivant CreerSurvivant(typeSurvivant type, Vector2 positionDepart, float rotation, Vector2 limiteHautGauche, Vector2 limiteBasDroite, Acteur cible, Camp campAdverse, SpriteBatch batch, SpriteFont font) { if (type == typeSurvivant.Sniper) { return(new Sniper(positionDepart, rotation, limiteHautGauche, limiteBasDroite, cible, campAdverse, batch, font)); } else if (type == typeSurvivant.Escrimeur) { return(new Escrimeur(positionDepart, rotation, limiteHautGauche, limiteBasDroite, cible, campAdverse, batch, font)); } else { return(new Soldat(positionDepart, rotation, limiteHautGauche, limiteBasDroite, cible, campAdverse, batch, font)); } }
public Sniper(Vector2 positionDepart, float rotation, Vector2 limiteHautGauche, Vector2 limiteBasDroite, Acteur cible, Camp campAdverse, SpriteBatch batch, SpriteFont font) : base(TEXTURE, positionDepart, rotation, limiteHautGauche, limiteBasDroite, VIE_MAX_SNIPER, VITESSE_SNIPER, FORCE_SNIPER, cible, campAdverse, batch, font) { rythmeAttaque = RYTHME_ATTAQUE_SNIPER; rayonAttaque = RAYON_ATTAQUE_SNIPER; rayonDetection = rayonAttaque; PointsDeVieMax = VIE_MAX_SNIPER; TexteVie = VIE_MAX_SNIPER + "/" + VIE_MAX_SNIPER; this.positionDepart = positionDepart; }