public static void CollisionPersoDeplacement(Carte mapManager, Joueur perso) { perso.blocage_haut = false; perso.blocage_bas = false; perso.blocage_gauche = false; perso.blocage_droit = false; foreach (List<Rectangle> rectangleligne in mapManager.collision) { foreach (Rectangle rectangle in rectangleligne) { if (new Rectangle(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height).Intersects(perso.collisionhaut)) { perso.blocage_haut = true; } if (new Rectangle(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height).Intersects(perso.collisionbas)) { perso.blocage_bas = true; } if (new Rectangle(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height).Intersects(perso.collisiongauche)) { perso.blocage_gauche = true; } if (new Rectangle(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height).Intersects(perso.collisiondroite)) { perso.blocage_droit = true; } } } }
private void lancerSort(MouseState mouse, Joueur joueur) { if (mouse.LeftButton == ButtonState.Pressed && !joueur.inventaire.inventaireOuvert) this.boutonPressé = true; if (mouse.LeftButton == ButtonState.Released && boutonPressé && (this.listeSorts.Count == 0 || !this.listeSorts[listeSorts.Count - 1].sortLance) && !joueur.inventaire.inventaireOuvert) { switch (joueur.sortSelectionné) { case "lumiere": this.listeSorts.Add(new Sort("lumiere")); this.listeSorts[this.listeSorts.Count - 1].texture = this.lumiere.texture; this.listeSorts[this.listeSorts.Count - 1].textureActuelle = this.lumiere.textureActuelle; break; case "feu": this.listeSorts.Add(new Sort("feu")); this.listeSorts[this.listeSorts.Count - 1].texture = this.feu.texture; this.listeSorts[this.listeSorts.Count - 1].textureActuelle = this.feu.textureActuelle; break; default: break; } if (joueur.mana - this.listeSorts[listeSorts.Count - 1].consoMana >= 0) { this.listeSorts[listeSorts.Count - 1].position.X = joueur.rectangle.X; this.listeSorts[listeSorts.Count - 1].position.Y = joueur.rectangle.Y; this.listeSorts[listeSorts.Count - 1].direction.X = mouse.X - joueur.rectangle.X; this.listeSorts[listeSorts.Count - 1].direction.Y = mouse.Y - joueur.rectangle.Y; if (Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.X) > Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.Y)) { this.listeSorts[listeSorts.Count - 1].direction.X /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.Y); this.listeSorts[listeSorts.Count - 1].direction.Y /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.Y); this.listeSorts[listeSorts.Count - 1].direction.X*=2; this.listeSorts[listeSorts.Count - 1].direction.Y*=2; } else { this.listeSorts[listeSorts.Count - 1].direction.Y /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.X); this.listeSorts[listeSorts.Count - 1].direction.X /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.X); this.listeSorts[listeSorts.Count - 1].direction.X*=2; this.listeSorts[listeSorts.Count - 1].direction.Y*=2; } joueur.mana -= this.listeSorts[listeSorts.Count - 1].consoMana; this.listeSorts[listeSorts.Count - 1].portee = this.listeSorts[listeSorts.Count - 1].porteeInitiale; this.listeSorts[listeSorts.Count - 1].sortLance = true; } else { listeSorts.RemoveAt(listeSorts.Count - 1); } this.boutonPressé = false; } }
public void Teleportation(Joueur joueur, Carte carte, GameWindow window, GestionTeleportation gestion_teleportation, EcranChargement ecran_chargement) { if (!gestion_teleportation.Transition_active && Coordonnees.Intersects(new Rectangle((int)joueur.centre_joueur.X - 20, (int)joueur.centre_joueur.Y - 20, 40, 70))) { gestion_teleportation.Transition_active = true; ecran_chargement.transition = true; carte.Chargement(Destination); joueur.Positionnement(xdestination, ydestination); } }
//la fonction update pour les monstres public void Update(Ennemi ennemi, Joueur joueur) { lancerSort(ennemi, joueur); for (int i = 0; i < listeSorts.Count; i++) { listeSorts[i].Update(ennemi); if (!listeSorts[i].sortLance) this.listeSorts.RemoveAt(i); } }
//fonction update pour le perso public void Update(Joueur joueur) { MouseState mState = Mouse.GetState(); lancerSort(mState, joueur); for (int i = 0; i < listeSorts.Count; i++) { listeSorts[i].Update(joueur); if (!listeSorts[i].sortLance) this.listeSorts.RemoveAt(i); } }
public void Desactivation_Transition(Joueur joueur) { bool trouve = false; foreach (Teleporteur teleporteur in liste_teleporteur) { if (Transition_active && teleporteur.Coordonnees.Intersects(new Rectangle((int)joueur.centre_joueur.X - 20, (int)joueur.centre_joueur.Y - 20, 40, 70))) { trouve = true; } } if (!trouve) Transition_active = false; }
public void Utiliser(Joueur joueur) { if (type_de_l_objet == type_objet.Potion_de_vie) { if (joueur.vie + 50 < joueur.vieMax) joueur.vie += 50; else joueur.vie = joueur.vieMax; } else if (type_de_l_objet == type_objet.Potion_de_mana) { if (joueur.mana + 50 < joueur.manaMax) joueur.mana += 50; else joueur.mana = joueur.manaMax; } else { } }
public void Affichage(Carte carte, Joueur joueur, SpriteBatch spriteBatch) { for (int i = y / 40; i < carte.carte.Count; i++) { for (int j = x / 40; j < carte.carte[i].Count && i < (largeur_ecran + 40) / 40; j++) { carte.AffichageCase(40 * j - x, 40 * i - y, spriteBatch, carte.carte[i][j]); } } if (affichage_collision) { foreach (List<Rectangle> rect_ligne in carte.collision) { foreach (Rectangle rect in rect_ligne) { spriteBatch.Draw(texture_collision, new Rectangle(rect.X - x, rect.Y - y, rect.Width, rect.Height), Color.White); } } } joueur.Draw(spriteBatch); }
public void Affichage(Carte carte, Joueur joueur, SpriteBatch spriteBatch, Environnement environnement, EcranChargement ecranChargement, GestionTeleportation gestion_transition, Histoire histoire, KeyboardState clavier) { if (ecranChargement.affichage_ecran) { for (int i = 0; i < carte.carte.Count; i++) { for (int j = 0; j < carte.carte[i].Count; j++) { carte.AffichageCase(40 * j - x, 40 * i - y, spriteBatch, carte.carte[i][j], environnement, joueur, new Vector2(j * 40, i * 40)); } } } carte.gestion_objet.Draw(spriteBatch, x, y, environnement); carte.murs.AffichageCase_Mur(x, y, spriteBatch, joueur, new Color(environnement.ambient, environnement.ambient, environnement.ambient)); carte.gestion_ennemis.Draw(spriteBatch, x, y, environnement); if (affichage_collision) { foreach (List<Rectangle> rect_ligne in carte.collision) { foreach (Rectangle rect in rect_ligne) { spriteBatch.Draw(texture_collision, new Rectangle(rect.X - x, rect.Y - y, rect.Width, rect.Height), Color.White); } } carte.gestionTeleportation.Draw(spriteBatch, x, y); } joueur.Draw(spriteBatch, environnement, 0, 0); carte.murs.AffichageMur_DevantJoueur(x, y, spriteBatch, joueur, new Color(environnement.ambient, environnement.ambient, environnement.ambient)); histoire.Draw(spriteBatch, x, y, clavier); }
//fonction qui verifie s'il faut utiliser une potion de mana public bool use_ManaPotion(Joueur joueur, Item item) { if (item.type_de_l_objet == Item.type_objet.Potion_de_mana && joueur.mana < joueur.manaMax) { return true; } return false; }
public void TestTeleportation(Carte map, Joueur joueur, GameWindow window, EcranChargement ecran_chargement, Gestionnaire_son gestion_son) { if (compteur_optimisation == 0) { if (liste_teleporteur.Count > 0) { foreach (Teleporteur teleporteur in liste_teleporteur) { teleporteur.Teleportation(joueur, map, window, this, ecran_chargement, gestion_son); } } } compteur_optimisation++; compteur_optimisation %= 40; }
public void Update(KeyboardState clavier, MouseState souris, Curseur curseur, GameManager gameManager, Game1 game1, Carte mapManager, Joueur joueur, GameWindow window, ContentManager content) { #region langue if (langue == Langue.Francais) { solo = "Solo"; multi = "Multijoueur"; option = "Options"; quitter = "Quitter"; son = "Son: "; language = "Langue: "; nomlangue = "Français"; nouvjeu = "Nouvelle partie"; charge = "Charger partie"; homme = "Homme"; fille = "Femme"; questionsexe = "Que voulez-vous être?"; reprendre = "Reprendre"; claviertype = "Type du clavier: "; player = "Nom du joueur: "; sauvegarder = "Sauvegarder"; emplacementlibre = "Emplacement libre"; progression_texte = "Progression: "; sauvegarde_succes = "Sauvegarde effectuée avec succès!"; #region Editeur de carte editeur = "Editeur de carte"; nouvellecarte = "Nouvelle carte"; modifiercarte = "Modifier carte"; questiontaillecarte = "Quel est la taille de la carte?"; largeurcarte = "Largeur: "; hauteurcarte = "Hauteur: "; creercarte = "Créer carte"; quellecarte = "Quelle carte voulez-vous modifier?"; #endregion } else { solo = "Solo"; multi = "Multiplayer"; option = "Settings"; quitter = "Exit"; son = "Sound: "; language = "Language: "; nomlangue = "English"; nouvjeu = "New game"; charge = "Load game"; homme = "Male"; fille = "Female"; questionsexe = "What do you want to be?"; reprendre = "Resume"; claviertype = "Keyboard configuration: "; player = "Player's name: "; sauvegarder = "Save"; emplacementlibre = "Empty slot"; progression_texte = "Progress: "; sauvegarde_succes = "Successfully saved!"; #region Editeur de carte editeur = "Map editor"; nouvellecarte = "New map"; modifiercarte = "Modify map"; questiontaillecarte = "What's the size of the map?"; largeurcarte = "Width: "; hauteurcarte = "Heigth: "; creercarte = "Create map"; quellecarte = "What map do want to modify?"; #endregion } plangue = language + nomlangue; #endregion #region Son if (sound == Son.On) sonetat = "On"; else sonetat = "Off"; pson = son + sonetat; #endregion #region menu if (mode == Mode.Menu) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 5; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 6) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region validation if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { if (choix == 1) { changement = true; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; mode = Mode.Solo; } if (choix == 3) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Choixediteurdemap; } if (choix == 4) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Option; } if (choix == 5) game1.Exit(); clavierentrer = false; } #endregion } #endregion #region option if (mode == Mode.Option) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 3; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 4) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.Option) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 1 && !changement) { if (sound == Son.On) sound = Son.Off; else sound = Son.On; } if (choix == 2) { if (langue == Langue.Francais) langue = Langue.Anglais; else langue = Langue.Francais; } if (choix == 3) { if(clavierType == ClavierType.AZERTY) clavierType = ClavierType.QWERTY; else clavierType = ClavierType.AZERTY; } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape)) { if (gameManager.Etat == GameManager.etat.Menu) { mode = Mode.Menu; } if (gameManager.Etat == GameManager.etat.Pause) { mode = Mode.Pause; } rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; } if (clavier.IsKeyUp(Keys.Enter)) changement = false; } #endregion #region Solo if (mode == Mode.Solo) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 2; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 3) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.Solo) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 1 && !changement) { mode = Mode.NouveauJeu; changement = true; } if (choix == 2) { mode = Mode.ChargerPartie; changement = true; choix = 1; } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Menu; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region NouveauJeu if (mode == Mode.NouveauJeu) { #region positionchoix #region Haut if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { chgmtsexe = false; choix--; clavierentrer = false; clavierhaut = false; if (choix <= 0) choix = 2; } #endregion #region Bas if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { chgmtsexe = false; choix++; clavierbas = false; clavierentrer = false; if (choix >= 3) choix = 1; } #endregion rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion if(choix == 1) nomjoueur.Update(Keyboard.GetState()); #region validation if (clavier.IsKeyDown(Keys.Enter) && !changement) { clavierentrer = true; } if (clavier.IsKeyDown(Keys.Left) || clavier.IsKeyDown(Keys.Right)) chgmtsexe = true; if (choix == 2 && chgmtsexe && (clavier.IsKeyUp(Keys.Left) && clavier.IsKeyUp(Keys.Right))) { if (joueur.sexe == Joueur.Sexe.homme) { joueur.sexe = Joueur.Sexe.femme; choixsexeee = Joueur.Sexe.femme; } else { joueur.sexe = Joueur.Sexe.homme; choixsexeee = Joueur.Sexe.homme; } chgmtsexe = false; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { joueur.nomdujoueur = nomjoueur.texte; joueur.LoadContent(content); GestionJeu.NouveauJeu(mapManager, joueur, window); gameManager.Etat = GameManager.etat.NouveauJeuIntro; clavierentrer = false; } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Solo; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region Choix Partie if (mode == Mode.ChargerPartie) { #region positionchoix #region Haut if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierentrer = false; clavierhaut = false; if (choix <= 0) choix = 3; } #endregion #region Bas if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; clavierentrer = false; if (choix >= 4) choix = 1; } #endregion rectselecteur = new Rectangle(10, 20 + choix * 80 - 40, 40, 30); #endregion #region validation if (clavier.IsKeyDown(Keys.Enter) && !changement) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { if (choix == 1 && sauvegardes.sauvegardes[0].etat == GestionSauvegarde.TypeSauvegarde.PartieSauvegarde) { joueur.nomdujoueur = sauvegardes.sauvegardes[0].nomdujoueur; joueur.sexe = sauvegardes.sauvegardes[0].sexe; for (int i = 0; i < joueur.inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < joueur.inventaire.inventaire.GetLength(1); j++) { switch (sauvegardes.sauvegardes[0].id_objet[i, j]) { case 1: joueur.inventaire.inventaire[i, j] = new Item("Potion de vie", Item.type_objet.Potion_de_vie); break; case 2: joueur.inventaire.inventaire[i, j] = new Item("Potion de mana", Item.type_objet.Potion_de_mana); break; case 3: joueur.inventaire.inventaire[i, j] = new Item("Larme de dragon", Item.type_objet.Larme_de_dragon); break; default: break; } joueur.inventaire.quantitesObjets[i, j] = sauvegardes.sauvegardes[0].quantite_objet[i, j]; } } joueur.LoadContent(content); GestionJeu.ChargerJeu(mapManager, sauvegardes.sauvegardes[0].carte.ToString(), sauvegardes.sauvegardes[0].x - 20, sauvegardes.sauvegardes[0].y + 50, joueur, window); gameManager.Etat = GameManager.etat.InGame; clavierentrer = false; } if (choix == 2 && sauvegardes.sauvegardes[1].etat == GestionSauvegarde.TypeSauvegarde.PartieSauvegarde) { joueur.nomdujoueur = sauvegardes.sauvegardes[1].nomdujoueur; joueur.sexe = sauvegardes.sauvegardes[1].sexe; for (int i = 0; i < joueur.inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < joueur.inventaire.inventaire.GetLength(1); j++) { switch (sauvegardes.sauvegardes[1].id_objet[i, j]) { case 1: joueur.inventaire.inventaire[i, j] = new Item("Potion de vie", Item.type_objet.Potion_de_vie); break; case 2: joueur.inventaire.inventaire[i, j] = new Item("Potion de mana", Item.type_objet.Potion_de_mana); break; case 3: joueur.inventaire.inventaire[i, j] = new Item("Larme de dragon", Item.type_objet.Larme_de_dragon); break; default: break; } joueur.inventaire.quantitesObjets[i, j] = sauvegardes.sauvegardes[1].quantite_objet[i, j]; } } joueur.LoadContent(content); GestionJeu.ChargerJeu(mapManager, sauvegardes.sauvegardes[1].carte.ToString(), sauvegardes.sauvegardes[1].x - 20, sauvegardes.sauvegardes[1].y + 50, joueur, window); gameManager.Etat = GameManager.etat.InGame; clavierentrer = false; } if (choix == 3 && sauvegardes.sauvegardes[2].etat == GestionSauvegarde.TypeSauvegarde.PartieSauvegarde) { joueur.nomdujoueur = sauvegardes.sauvegardes[2].nomdujoueur; joueur.sexe = sauvegardes.sauvegardes[2].sexe; for (int i = 0; i < joueur.inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < joueur.inventaire.inventaire.GetLength(1); j++) { switch (sauvegardes.sauvegardes[2].id_objet[i, j]) { case 1: joueur.inventaire.inventaire[i, j] = new Item("Potion de vie", Item.type_objet.Potion_de_vie); break; case 2: joueur.inventaire.inventaire[i, j] = new Item("Potion de mana", Item.type_objet.Potion_de_mana); break; case 3: joueur.inventaire.inventaire[i, j] = new Item("Larme de dragon", Item.type_objet.Larme_de_dragon); break; default: break; } joueur.inventaire.quantitesObjets[i, j] = sauvegardes.sauvegardes[2].quantite_objet[i, j]; } } joueur.LoadContent(content); GestionJeu.ChargerJeu(mapManager, sauvegardes.sauvegardes[2].carte.ToString(), sauvegardes.sauvegardes[2].x - 20, sauvegardes.sauvegardes[2].y + 50, joueur, window); gameManager.Etat = GameManager.etat.InGame; clavierentrer = false; } clavierentrer = false; } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Solo; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region Sauvegarde if (mode == Mode.Sauvegarde) { #region positionchoix #region Haut if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierentrer = false; clavierhaut = false; if (choix <= 0) choix = 3; } #endregion #region Bas if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; clavierentrer = false; if (choix >= 4) choix = 1; } #endregion rectselecteur = new Rectangle(10, 20 + choix * 80 - 40, 40, 30); #endregion #region validation if (clavier.IsKeyDown(Keys.Enter) && !changement) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { sauvegarde_en_cours = true; if (choix == 1) { #region Sauvegarde1 string[] ligne_inv = new string[3]; int[,] id_objet = new int[3, 5]; for (int i = 0; i < ligne_inv.Length; i++) { ligne_inv[i] = ""; } for (int i = 0; i < joueur.inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < joueur.inventaire.inventaire.GetLength(1); j++) { if (joueur.inventaire.inventaire[i, j] != null) { switch (joueur.inventaire.inventaire[i, j].type_de_l_objet) { case Item.type_objet.Potion_de_vie: ligne_inv[i] += "1"; id_objet[i, j] = 1; break; case Item.type_objet.Potion_de_mana: ligne_inv[i] += "2"; id_objet[i, j] = 2; break; case Item.type_objet.Larme_de_dragon: ligne_inv[i] += "3"; id_objet[i, j] = 3; break; default: ligne_inv[i] += "0"; id_objet[i, j] = 0; break; } ligne_inv[i] += "/"; ligne_inv[i] += joueur.inventaire.quantitesObjets[i, j].ToString(); } else { ligne_inv[i] += "0/0"; } if (j != joueur.inventaire.inventaire.GetLength(1) - 1) ligne_inv[i] += "*"; } } string sexe = "homme"; if (joueur.sexe == Joueur.Sexe.femme) { sexe = "femme"; } sauvegardes.sauvegardes[0] = new GestionSauvegarde.Sauvegarde(true, joueur.nomdujoueur, 0, Convert.ToInt32(Carte.carte_actuelle), (int)joueur.centre_joueur.X, (int)joueur.centre_joueur.Y, sexe,id_objet, joueur.inventaire.quantitesObjets); ////////////////////////////////////////////////////////////////////////// StreamWriter sw = new StreamWriter("DATA\\1.SAV"); sw.WriteLine("Saved"); sw.WriteLine(joueur.nomdujoueur); sw.WriteLine(sexe); sw.WriteLine(sauvegardes.sauvegardes[0].avancementdujeu); sw.WriteLine(Carte.carte_actuelle); sw.WriteLine(joueur.centre_joueur.X); sw.WriteLine(joueur.centre_joueur.Y); for (int i = 0; i < ligne_inv.Length; i++) { sw.WriteLine(ligne_inv[i]); } sw.WriteLine("Obj/i,j*Spell/id*V*V*V*V"); sw.Close(); #endregion } if (choix == 2) { #region Sauvegarde2 string[] ligne_inv = new string[3]; int[,] id_objet = new int[3, 5]; for (int i = 0; i < ligne_inv.Length; i++) { ligne_inv[i] = ""; } for (int i = 0; i < joueur.inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < joueur.inventaire.inventaire.GetLength(1); j++) { if (joueur.inventaire.inventaire[i, j] != null) { switch (joueur.inventaire.inventaire[i, j].type_de_l_objet) { case Item.type_objet.Potion_de_vie: ligne_inv[i] += "1"; id_objet[i, j] = 1; break; case Item.type_objet.Potion_de_mana: ligne_inv[i] += "2"; id_objet[i, j] = 2; break; case Item.type_objet.Larme_de_dragon: ligne_inv[i] += "3"; id_objet[i, j] = 3; break; default: ligne_inv[i] += "0"; id_objet[i, j] = 0; break; } ligne_inv[i] += "/"; ligne_inv[i] += joueur.inventaire.quantitesObjets[i, j].ToString(); } else { ligne_inv[i] += "0/0"; } if (j != joueur.inventaire.inventaire.GetLength(1) - 1) ligne_inv[i] += "*"; } } string sexe = "homme"; if (joueur.sexe == Joueur.Sexe.femme) { sexe = "femme"; } sauvegardes.sauvegardes[1] = new GestionSauvegarde.Sauvegarde(true, joueur.nomdujoueur, 0, Convert.ToInt32(Carte.carte_actuelle), (int)joueur.centre_joueur.X, (int)joueur.centre_joueur.Y, sexe, id_objet, joueur.inventaire.quantitesObjets); ////////////////////////////////////////////////////////////////////////// StreamWriter sw = new StreamWriter("DATA\\2.SAV"); sw.WriteLine("Saved"); sw.WriteLine(joueur.nomdujoueur); sw.WriteLine(sexe); sw.WriteLine(sauvegardes.sauvegardes[1].avancementdujeu); sw.WriteLine(Carte.carte_actuelle); sw.WriteLine(joueur.centre_joueur.X); sw.WriteLine(joueur.centre_joueur.Y); for (int i = 0; i < ligne_inv.Length; i++) { sw.WriteLine(ligne_inv[i]); } sw.WriteLine("Obj/i,j*Spell/id*V*V*V*V"); sw.Close(); #endregion } if (choix == 3) { #region Sauvegarde3 string[] ligne_inv = new string[3]; int[,] id_objet = new int[3, 5]; for (int i = 0; i < ligne_inv.Length; i++) { ligne_inv[i] = ""; } for (int i = 0; i < joueur.inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < joueur.inventaire.inventaire.GetLength(1); j++) { if (joueur.inventaire.inventaire[i, j] != null) { switch (joueur.inventaire.inventaire[i, j].type_de_l_objet) { case Item.type_objet.Potion_de_vie: ligne_inv[i] += "1"; id_objet[i, j] = 1; break; case Item.type_objet.Potion_de_mana: ligne_inv[i] += "2"; id_objet[i, j] = 2; break; case Item.type_objet.Larme_de_dragon: ligne_inv[i] += "3"; id_objet[i, j] = 3; break; default: ligne_inv[i] += "0"; id_objet[i, j] = 0; break; } ligne_inv[i] += "/"; ligne_inv[i] += joueur.inventaire.quantitesObjets[i, j].ToString(); } else { ligne_inv[i] += "0/0"; } if (j != joueur.inventaire.inventaire.GetLength(1) - 1) ligne_inv[i] += "*"; } } string sexe = "homme"; if (joueur.sexe == Joueur.Sexe.femme) { sexe = "femme"; } sauvegardes.sauvegardes[2] = new GestionSauvegarde.Sauvegarde(true, joueur.nomdujoueur, 0, Convert.ToInt32(Carte.carte_actuelle), (int)joueur.centre_joueur.X, (int)joueur.centre_joueur.Y, sexe, id_objet, joueur.inventaire.quantitesObjets); ////////////////////////////////////////////////////////////////////////// StreamWriter sw = new StreamWriter("DATA\\3.SAV"); sw.WriteLine("Saved"); sw.WriteLine(joueur.nomdujoueur); sw.WriteLine(sexe); sw.WriteLine(sauvegardes.sauvegardes[2].avancementdujeu); sw.WriteLine(Carte.carte_actuelle); sw.WriteLine(joueur.centre_joueur.X); sw.WriteLine(joueur.centre_joueur.Y); for (int i = 0; i < ligne_inv.Length; i++) { sw.WriteLine(ligne_inv[i]); } sw.WriteLine("Obj/i,j*Spell/id*V*V*V*V"); sw.Close(); #endregion QZ } clavierentrer = false; message.AfficheMessage(sauvegarde_succes); } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Pause; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region Pause if (mode == Mode.Pause) { if (!pauseactive) pauseactive = true; #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 4; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 5) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region validation if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { if (choix == 1) { gameManager.Etat = GameManager.etat.InGame; mode = Mode.Pause; pauseactive = false; Environnement.gestionnaire_son_environnement.Resume(); } if (choix == 2) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Option; } if (choix == 3) { choix = 1; changement = true; mode = Mode.Sauvegarde; } if (choix == 4) game1.Exit(); clavierentrer = false; } #endregion } #endregion #region ChoixEditeurDeMap if (mode == Mode.Choixediteurdemap) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 2; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 3) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.Choixediteurdemap) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 1 && !changement) { mode = Mode.NouvelleCarte; changement = true; } if (choix == 2) { mode = Mode.ModifierCarte; changement = true; } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Menu; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region NouvelleCarte if (mode == Mode.NouvelleCarte) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 3; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 4) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.NouvelleCarte) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if ((clavier.IsKeyDown(Keys.Left) && clavier.IsKeyUp(Keys.Right)) && !flechedroite) flechegauche = true; if((clavier.IsKeyUp(Keys.Left) && clavier.IsKeyDown(Keys.Right)) && !flechegauche) flechedroite = true; if (choix == 1 && !changement) { if (clavier.IsKeyUp(Keys.Left) && flechegauche) { if(carte_largeur > 5) carte_largeur--; flechegauche = false; } if (clavier.IsKeyUp(Keys.Right) && flechedroite) { carte_largeur++; flechedroite = false; } } if (choix == 2 && !changement) { if (clavier.IsKeyUp(Keys.Left) && flechegauche) { if (carte_hauteur > 5) carte_hauteur--; flechegauche = false; } if (clavier.IsKeyUp(Keys.Right) && flechedroite) { carte_hauteur++; flechedroite = false; } } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 3 && !changement) { mode = Mode.EditeurDeCarte; editeurdecarte = new EditeurDeCarte(window, carte_largeur, carte_hauteur); editeurdecarte.LoadContent(content); } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Choixediteurdemap; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region ModifierCarte if (mode == Mode.ModifierCarte) { StreamReader sr = new StreamReader("Data\\NOMBRE_CARTE"); int maxcarte = Convert.ToInt32(sr.ReadLine()); sr.Close(); #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 2; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 3) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.ModifierCarte) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if ((clavier.IsKeyDown(Keys.Left) && clavier.IsKeyUp(Keys.Right)) && !flechedroite) flechegauche = true; if ((clavier.IsKeyUp(Keys.Left) && clavier.IsKeyDown(Keys.Right)) && !flechegauche) flechedroite = true; if (choix == 1 && !changement) { if (clavier.IsKeyUp(Keys.Left) && flechegauche) { if (numerocarte > 0) numerocarte--; flechegauche = false; } if (clavier.IsKeyUp(Keys.Right) && flechedroite) { if(numerocarte < maxcarte - 1) numerocarte++; flechedroite = false; } } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 2 && !changement) { mode = Mode.EditeurDeCarte; editeurdecarte = new EditeurDeCarte(window, numerocarte + ""); editeurdecarte.LoadContent(content); } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Choixediteurdemap; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region EditeurDeCarte if (mode == Mode.EditeurDeCarte) { editeurdecarte.Update(clavier, souris, langue == Langue.Francais); if (clavier.IsKeyDown(Keys.Escape) && !changement) { editeurdecarte.Enregistrement(); mode = Mode.Choixediteurdemap; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion }
public void Update(KeyboardState clavier, Joueur joueur, GameWindow window, EcranChargement ecran_chargement) { gestionTeleportation.Desactivation_Transition(joueur); gestionTeleportation.TestTeleportation(this, joueur, window, ecran_chargement); }
public void Update(KeyboardState clavier, GameManager gameManager, Game1 game1, Carte mapManager, Joueur joueur, GameWindow window, ContentManager content) { #region langue if (langue == Langue.Francais) { solo = "Solo"; multi = "Multijoueur"; option = "Options"; quitter = "Quitter"; son = "Son: "; language = "Langue: "; nomlangue = "Français"; nouvjeu = "Nouvelle partie"; charge = "Charger partie"; homme = "Homme"; fille = "Femme"; questionsexe = "Que voulez-vous être?"; reprendre = "Reprendre"; #region Editeur de carte editeur = "Editeur de carte"; nouvellecarte = "Nouvelle carte"; modifiercarte = "Modifier carte"; questiontaillecarte = "Quel est la taille de la carte?"; largeurcarte = "Largeur: "; hauteurcarte = "Hauteur: "; #endregion } else { solo = "Solo"; multi = "Multiplayer"; option = "Settings"; quitter = "Exit"; son = "Sound: "; language = "Language: "; nomlangue = "English"; nouvjeu = "New game"; charge = "Load game"; homme = "Male"; fille = "Female"; questionsexe = "What do you want to be?"; reprendre = "Resume"; /* #region Editeur de carte editeur = "Map editor"; nouvellecarte = "New map"; modifiercarte = "Modify map"; questiontaillecarte = "What's the size of the map?"; largeurcarte = "Width: "; hauteurcarte = "Heigth: "; #endregion */ } plangue = language + nomlangue; #endregion #region Son if (sound == Son.On) sonetat = "On"; else sonetat = "Off"; pson = son + sonetat; #endregion #region menu if (mode == Mode.Menu) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierentrer = false; clavierhaut = false; if (choix <= 0) choix = 4; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; clavierentrer = false; if (choix >= 5) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion /* #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 5; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 6) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion */ #region validation if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { if (choix == 1) { changement = true; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; mode = Mode.Solo; } /* if (choix == 3) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Choixediteurdemap; } if (choix == 4) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Option; } if (choix == 5) game1.Exit(); */ if (choix == 3) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Option; } if (choix == 4) { game1.Exit(); } } #endregion } #endregion #region option if (mode == Mode.Option) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 2; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 3) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.Option) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 1 && !changement) { if (sound == Son.On) sound = Son.Off; else sound = Son.On; } if (choix == 2) { if (langue == Langue.Francais) langue = Langue.Anglais; else langue = Langue.Francais; } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape)) { if (gameManager.Etat == GameManager.etat.Menu) { mode = Mode.Menu; } if (gameManager.Etat == GameManager.etat.Pause) { mode = Mode.Pause; } rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; } if (clavier.IsKeyUp(Keys.Enter)) changement = false; } #endregion #region Solo if (mode == Mode.Solo) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 2; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 3) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.Solo) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 1 && !changement) { mode = Mode.ChoixSexe; changement = true; } if (choix == 2) { } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Menu; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region Choix Sexe if (mode == Mode.ChoixSexe) { #region positionchoix #region Haut if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierentrer = false; clavierhaut = false; if (choix <= 0) choix = 2; } #endregion #region Bas if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; clavierentrer = false; if (choix >= 3) choix = 1; } #endregion rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region validation if (clavier.IsKeyDown(Keys.Enter) && !changement) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { if (choix == 1) { joueur.sexe = Joueur.Sexe.homme; } if (choix == 2) { joueur.sexe = Joueur.Sexe.femme; } joueur.LoadContent(content); GestionJeu.NouveauJeu(mapManager, joueur, window); gameManager.Etat = GameManager.etat.InGame; clavierentrer = false; } #endregion if (clavier.IsKeyDown(Keys.Escape) && !changement) { mode = Mode.Solo; rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; changement = true; } if (clavier.IsKeyUp(Keys.Enter) && clavier.IsKeyUp(Keys.Escape)) changement = false; } #endregion #region Pause if (mode == Mode.Pause) { if (!pauseactive) pauseactive = true; #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 3; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 4) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region validation if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavierentrer && clavier.IsKeyUp(Keys.Enter)) { if (choix == 1) { gameManager.Etat = GameManager.etat.InGame; mode = Mode.Pause; pauseactive = false; } if (choix == 2) { choix = 1; rectselecteur = new Rectangle(10, 60, 40, 30); changement = true; mode = Mode.Option; } if (choix == 3) game1.Exit(); clavierentrer = false; } #endregion } #endregion #region ChoixEditeurDeMap if (mode == Mode.Choixediteurdemap) { #region positionchoix if (!clavierhaut) { if (clavier.IsKeyDown(Keys.Up) && !clavier.IsKeyDown(Keys.Down)) { clavierhaut = true; } } if (clavier.IsKeyUp(Keys.Up) && !clavier.IsKeyDown(Keys.Down) && clavierhaut) { choix--; clavierhaut = false; if (choix <= 0) choix = 2; } if (!clavierbas) { if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Down)) { clavierbas = true; } } if (!clavier.IsKeyDown(Keys.Up) && clavier.IsKeyUp(Keys.Down) && clavierbas) { choix++; clavierbas = false; if (choix >= 3) choix = 1; } rectselecteur = new Rectangle(10, 20 + choix * 40, 40, 30); #endregion #region Validation if (mode == Mode.Option) { if (clavier.IsKeyDown(Keys.Enter)) { clavierentrer = true; } if (clavier.IsKeyUp(Keys.Enter) && clavierentrer) { if (choix == 1 && !changement) { mode = Mode.EditMap; } if (choix == 2) { mode = Mode.EditMap; } clavierentrer = false; } } #endregion if (clavier.IsKeyDown(Keys.Escape)) { if (gameManager.Etat == GameManager.etat.Menu) { mode = Mode.Menu; } rectselecteur = new Rectangle(10, 60, 40, 30); choix = 1; } if (clavier.IsKeyUp(Keys.Enter)) changement = false; } #endregion }
public void Update(Joueur joueur) { if (this.sortLance && this.portee >0) { this.compteur = (this.compteur + 1) % this.texture.Length; this.textureActuelle = this.texture[this.compteur]; this.position.X += this.direction.X; this.position.Y += this.direction.Y; this.portee--; this.collision.X = (int)this.position.X; this.collision.Y = (int)this.position.Y; this.collision.Width = this.textureActuelle.Width; this.collision.Height = this.textureActuelle.Height; } else { this.sortLance = false; this.position = joueur.centre_joueur; } }
private void lancerSort(Ennemi ennemi, Joueur joueur) { Random rand = new Random(); if (rand.Next(0, 100) == 25) { switch (ennemi.sortMonstre) { case "lumiere": this.listeSorts.Add(new Sort("lumiere")); this.listeSorts[this.listeSorts.Count - 1].texture = this.lumiere.texture; this.listeSorts[this.listeSorts.Count - 1].textureActuelle = this.lumiere.textureActuelle; break; case "feu": this.listeSorts.Add(new Sort("feu")); this.listeSorts[this.listeSorts.Count - 1].texture = this.feu.texture; this.listeSorts[this.listeSorts.Count - 1].textureActuelle = this.feu.textureActuelle; break; default: break; } if (ennemi.mana - this.listeSorts[listeSorts.Count - 1].consoMana >= 0) { this.listeSorts[listeSorts.Count - 1].position.X = ennemi.rect[0, 0].X; this.listeSorts[listeSorts.Count - 1].position.Y = ennemi.rect[0, 0].Y; this.listeSorts[listeSorts.Count - 1].direction.X = joueur.rectangle.X - ennemi.rect[0, 0].X; this.listeSorts[listeSorts.Count - 1].direction.Y = joueur.rectangle.Y - ennemi.rect[0, 0].Y; if (Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.X) > Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.Y)) { this.listeSorts[listeSorts.Count - 1].direction.X /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.Y); this.listeSorts[listeSorts.Count - 1].direction.Y /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.Y); this.listeSorts[listeSorts.Count - 1].direction.X *= 2; this.listeSorts[listeSorts.Count - 1].direction.Y *= 2; } else { this.listeSorts[listeSorts.Count - 1].direction.Y /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.X); this.listeSorts[listeSorts.Count - 1].direction.X /= Math.Abs(this.listeSorts[listeSorts.Count - 1].direction.X); this.listeSorts[listeSorts.Count - 1].direction.X *= 2; this.listeSorts[listeSorts.Count - 1].direction.Y *= 2; } ennemi.mana -= this.listeSorts[listeSorts.Count - 1].consoMana; this.listeSorts[listeSorts.Count - 1].portee = this.listeSorts[listeSorts.Count - 1].porteeInitiale; this.listeSorts[listeSorts.Count - 1].sortLance = true; } else { listeSorts.RemoveAt(listeSorts.Count - 1); } } }
public static void ChargerJeu(Carte map, string carte, int x, int y, Joueur joueur, GameWindow window) { map.Chargement(carte); }
public void Update(Joueur joueur, Carte carte, KeyboardState clavier) { #region Affichage collision if (clavier.IsKeyDown(Keys.F4)) { touchecol = true; } if (clavier.IsKeyUp(Keys.F4) && touchecol) { touchecol = false; affichage_collision = !affichage_collision; } #endregion #region Affichage collision joueur if (clavier.IsKeyDown(Keys.F3)) { touchecol_joueur = true; } if (clavier.IsKeyUp(Keys.F3) && touchecol_joueur) { touchecol_joueur = false; affichage_collision_joueur = !affichage_collision_joueur; } #endregion if (!animationactive) { if (carte.largeur <= largeur_ecran) { x = -(largeur_ecran - carte.largeur) / 2; } else if (joueur.centre_joueur.X >= carte.largeur - largeur_ecran / 2 && joueur.centre_joueur.X <= carte.largeur) { x = carte.largeur - largeur_ecran; } else if (joueur.centre_joueur.X <= largeur_ecran / 2 && joueur.centre_joueur.X >= 0) { x = 0; } else { x = (int)(joueur.centre_joueur.X - largeur_ecran / 2); } if (carte.hauteur <= hauteur_ecran) { y = 0; } else if (joueur.centre_joueur.Y <= hauteur_ecran / 2 && joueur.centre_joueur.Y >= 0 || carte.hauteur <= hauteur_ecran) { y = 0; } else if (joueur.centre_joueur.Y >= carte.hauteur - hauteur_ecran / 2 && joueur.centre_joueur.Y <= carte.hauteur) { y = carte.hauteur - hauteur_ecran; } else { y = (int)(joueur.centre_joueur.Y - hauteur_ecran / 2); } } }
//fonction qui verifie s'il faut utiliser une potion de vie public bool use_HealthPotion(Joueur joueur, Item item) { if (item.type_de_l_objet == Item.type_objet.Potion_de_vie && joueur.vie < joueur.vieMax) { return true; } return false; }
public void Update(int Xperso, int Yperso, ref bool combat,Carte carte, Joueur joueur) { compteur++; compteur %= 30; combat = false; for (int i = 0; i < ennemis.Count; i++) { ennemis[i].Update(Xperso, Yperso, ref combat, joueur); Gestionnaire_collision.CollisionEnnemiDeplacement(carte, ennemis[i]); for (int j = 0; j < ennemis[i].listeSorts.listeSorts.Count; j++) { if (ennemis[i].listeSorts.listeSorts[j].collision.Intersects(joueur.rectangle)) { joueur.vie -= ennemis[i].listeSorts.listeSorts[j].puissance; ennemis[i].listeSorts.listeSorts[j].sortLance = false; } } for (int k = 0; k < joueur.gestionSort.listeSorts.Count; k++) { if (joueur.gestionSort.listeSorts[k].collision.Intersects(ennemis[i].rect[0,0])) { ennemis[i].vie -= joueur.gestionSort.listeSorts[k].puissance; joueur.gestionSort.listeSorts[k].sortLance = false; } } if (compteur == 0 && ennemis[i].rect[0, 0].Intersects(joueur.rectangle)) joueur.vie -= ennemis[i].force; if (joueur.vie <= 0) joueur.vie = 0; if (ennemis[i].vie<=0) { ennemis.RemoveAt(i); } } }
public void Update(Inventaire inventaire, Joueur joueur, KeyboardState touche) { #region Raccourcis Souris MouseState mState = Mouse.GetState(); curseur_rect = new Rectangle(mState.X, mState.Y, 2, 2); if (inventaire.inventaireOuvert) //insere l'objet de l'inventaire a la barre d'action { if (mState.RightButton == ButtonState.Pressed) { for (int i = 0; i < inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < inventaire.inventaire.GetLength(1); j++) { if (inventaire.posObjets[i, j].Intersects(curseur_rect) && inventaire.quantitesObjets[i, j] > 0 && !cliqueobjet_right) { if (!check_exist_barre(inventaire.inventaire[i, j])) { clique_item(inventaire.inventaire[i, j], inventaire.quantitesObjets[i, j]); cliqueobjet_right = true; } } } } } } if (mState.LeftButton == ButtonState.Pressed) //utilise l'objet dans la barre d'action { for (int i = 0; i < inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < inventaire.inventaire.GetLength(1); j++) { for (int k = 0; k < barre_action.GetLength(0); k++) { if (pos_objet[k].Intersects(curseur_rect) && quantite_objet[k] > 0 && !cliqueobjet_left) { if (barre_action[k].type_de_l_objet == inventaire.inventaire[i, j].type_de_l_objet) { if (inventaire.use_HealthPotion(joueur, inventaire.inventaire[i, j]) || inventaire.use_ManaPotion(joueur, inventaire.inventaire[i, j])) { barre_action[k].Utiliser(joueur); quantite_objet[k]--; inventaire.quantitesObjets[i, j]--; if (quantite_objet[k] == 0) { barre_action[k] = new Item("Null", Item.type_objet.Null); } if (inventaire.quantitesObjets[i, j] == 0) { inventaire.inventaire[i, j] = new Item("Null", Item.type_objet.Null); } cliqueobjet_left = true; } } } } } } } if (mState.RightButton == ButtonState.Pressed) //retire l'objet de la barre d'action { stop_ = false; for (int i = 0; i < barre_action.GetLength(0); i++) { if (pos_objet[i].Intersects(curseur_rect) && quantite_objet[i] > 0 && !stop_) { quantite_objet[i] = 0; barre_action[i] = new Item("Null", Item.type_objet.Null); stop_ = true; } } } if (mState.RightButton == ButtonState.Released) cliqueobjet_right = false; if (mState.LeftButton == ButtonState.Released) cliqueobjet_left = false; #endregion Raccourcis Souris #region Raccourcis clavier if (touche.IsKeyDown(Keys.D1) && !key_stop1) { Keyboard_UseItem(inventaire, 0, joueur); key_stop1 = true; } if (touche.IsKeyDown(Keys.D2) && !key_stop2) { Keyboard_UseItem(inventaire, 1, joueur); key_stop2 = true; } if (touche.IsKeyDown(Keys.D3) && !key_stop3) { Keyboard_UseItem(inventaire, 2, joueur); key_stop3 = true; } if (touche.IsKeyDown(Keys.D4) && !key_stop4) { Keyboard_UseItem(inventaire, 3, joueur); key_stop4 = true; } if (touche.IsKeyDown(Keys.D5) && !key_stop5) { Keyboard_UseItem(inventaire, 4, joueur); key_stop5 = true; } if (touche.IsKeyDown(Keys.D6) && !key_stop6) { Keyboard_UseItem(inventaire, 5, joueur); key_stop6 = true; } if (touche.IsKeyDown(Keys.D7) && !key_stop7) { Keyboard_UseItem(inventaire, 6, joueur); key_stop7 = true; } if (touche.IsKeyDown(Keys.D8) && !key_stop8) { Keyboard_UseItem(inventaire, 7, joueur); key_stop8 = true; } if (touche.IsKeyUp(Keys.D1)) { key_stop1= false; } if (touche.IsKeyUp(Keys.D2)) { key_stop2 = false; } if (touche.IsKeyUp(Keys.D3)) { key_stop3 = false; } if (touche.IsKeyUp(Keys.D4)) { key_stop4 = false; } if (touche.IsKeyUp(Keys.D5)) { key_stop5 = false; } if (touche.IsKeyUp(Keys.D6)) { key_stop6 = false; } if (touche.IsKeyUp(Keys.D7)) { key_stop7 = false; } if (touche.IsKeyUp(Keys.D8)) { key_stop8 = false; } #endregion Raccourcis clavier if (empty_barre()) { ReinitialiserBarre(); } }
// fonction qui permet d'utiliser les raccourcis clavierZ public void Keyboard_UseItem(Inventaire inventaire, int raccourci_barre, Joueur joueur) { key_stop = false; for (int i = 0; i < inventaire.inventaire.GetLength(0); i++) { for (int j = 0; j < inventaire.inventaire.GetLength(1); j++) { if (inventaire.inventaire[i, j].type_de_l_objet == barre_action[raccourci_barre].type_de_l_objet && !key_stop) { if (inventaire.use_HealthPotion(joueur, inventaire.inventaire[i, j]) || inventaire.use_ManaPotion(joueur, inventaire.inventaire[i, j])) { barre_action[raccourci_barre].Utiliser(joueur); quantite_objet[raccourci_barre]--; inventaire.quantitesObjets[i, j]--; if (quantite_objet[raccourci_barre] == 0) { barre_action[raccourci_barre] = new Item("Null", Item.type_objet.Null); } if (inventaire.quantitesObjets[i, j] == 0) { inventaire.inventaire[i, j] = new Item("Null", Item.type_objet.Null); } key_stop = true; } } } } }
protected override void Initialize() { graphics.ToggleFullScreen(); #region Gestionnaire gameManager = new GameManager(); carte = new Carte(); gestionnaire_son = new Gestionnaire_son(); environnement = new Environnement(Window); #endregion #region Interface lancement = new Lancement(); menu = new Menu(Window); camera = new Camera(Window); curseur = new Curseur(Content.Load<Texture2D>("Curseur")); jauge = new Jauge(); barreAction = new BarreAction(Window); #endregion bruitages = new Bruitages(); joueur = new Joueur(Window, Joueur.Sexe.homme); gestion_transition = new GestionTeleportation(); ecran_chargement = new EcranChargement(Window); joueur.inventaire = new Inventaire(Window); histoire = new Histoire(Window); intro = new IntroNouveauJeu(Window); base.Initialize(); //Guide.ShowSignIn(1, false); }
public void DonnerObjet(Joueur joueur) { joueur.inventaire.AddItem_inventaire(item, 1); }
public void AffichageCase_Mur(int x, int y, SpriteBatch spriteBatch, Joueur joueur, Color myColor) { compteur_cascade++; compteur_fontaine++; if (compteur_cascade >= max_coef_cascade) compteur_cascade = 0; if (compteur_fontaine >= max_coef_fontaine) compteur_fontaine = 0; for (int i = 0; i < carte.Count; i++) { for (int j = 0; j < carte[i].Count; j++) { if (joueur.centre_joueur.Y + 50 > (i + 1) * 40) { if (carte[i][j] == 'M') { spriteBatch.Draw(texture_maison, new Rectangle(j * 40 - x, i * 40 - y - 220, 290, 240), myColor); } if (carte[i][j] == '=') { spriteBatch.Draw(texturemurpierre, new Rectangle(j * 40 - x, i * 40 - y - 40, 40, 80), myColor); } if (carte[i][j] == 'O') { spriteBatch.Draw(tree, new Rectangle(j * 40 - x - 45, (i + 1) * 40 - y - 180, 160, 180), myColor); } if (carte[i][j] == 'P') { if(compteur_prison == 0) spriteBatch.Draw(prison[0], new Rectangle(j * 40 - x, (i + 1) * 40 - y - 120, 240, 120), myColor); else if (compteur_prison < max_coef_prison / 3) spriteBatch.Draw(prison[1], new Rectangle(j * 40 - x, (i + 1) * 40 - y - 120, 240, 120), myColor); else if (compteur_prison < 2 * max_coef_prison / 3) spriteBatch.Draw(prison[2], new Rectangle(j * 40 - x, (i + 1) * 40 - y - 120, 240, 120), myColor); else spriteBatch.Draw(prison[3], new Rectangle(j * 40 - x, (i + 1) * 40 - y - 120, 240, 120), myColor); } if (carte[i][j] == 'p') { spriteBatch.Draw(paillasse, new Rectangle(j * 40 - x, i * 40 - y - 50, 40, 100), myColor); } if (carte[i][j] == 'x') { spriteBatch.Draw(pendaison, new Rectangle(j * 40 - x, (i + 1) * 40 - y - 200, 280, 200), myColor); } if (carte[i][j] == ':') { spriteBatch.Draw(mur_prison, new Rectangle(j * 40 - x, (i + 1) * 40 - y - 120, 120, 120), myColor); } if (carte[i][j] == 'I') { spriteBatch.Draw(palmier, new Rectangle(j * 40 - x - 45, (i + 1) * 40 - y - 180, 160, 180), myColor); } if (carte[i][j] == 'h') { spriteBatch.Draw(brin_herbe, new Rectangle(j * 40 - x - 5, i * 40 - y - 7, 50, 40), myColor); } if (carte[i][j] == 'f') { if(compteur_fontaine < max_coef_fontaine / 2) spriteBatch.Draw(fontaine[0], new Rectangle(j * 40 - x, i * 40 - 120 - y, 160, 160), myColor); else spriteBatch.Draw(fontaine[1], new Rectangle(j * 40 - x, i * 40 - 120 - y, 160, 160), myColor); } if (carte[i][j] == 'C') { int b; if(compteur_cascade < max_coef_cascade / 4) b = 0; else if (compteur_cascade < max_coef_cascade / 2) b = 1; else if (compteur_cascade < 3 * max_coef_cascade / 4) b = 2; else b = 3; spriteBatch.Draw(cascade[b], new Rectangle(j * 40 - x, i * 40 - y - 240, 160, 320), myColor); } if (carte[i][j] == 'R') { spriteBatch.Draw(rocher, new Rectangle(j * 40 + 10 - x, i * 40 - 20 - y, 60, 60), myColor); } } } } }
protected override void Initialize() { graphics.ToggleFullScreen(); #region Gestionnaire gameManager = new GameManager(); carte = new Carte(); gestionnaire_son = new Gestionnaire_son(); environnement = new Environnement(Window); #endregion #region Interface lancement = new Lancement(); menu = new Menu(Window); camera = new Camera(Window); curseur = new Curseur(Content.Load<Texture2D>("Curseur")); jauge = new Jauge(); barreAction = new BarreAction(Window); #endregion joueur = new Joueur(Window, Joueur.Sexe.homme); gestion_transition = new GestionTeleportation(); ecran_chargement = new EcranChargement(Window); base.Initialize(); }
public static void NouveauJeu(Carte map, Joueur joueur, GameWindow window) { map.Chargement("000"); }
public static void NouveauJeu(Carte map, Joueur joueur, GameWindow window) { map.Chargement("4"); joueur.Positionnement(353, 107); }
public void RamasseObjet(Joueur joueur, BarreAction barre_action) { for (int i = 0; i < present_objet.Count; i++) { for (int j = 0; j < present_objet[i].Count; j++) { if (present_objet[i][j]) if (new Rectangle(j * 40 + 20, i * 40 + 20, 20, 20).Intersects(new Rectangle((int)joueur.centre_joueur.X - 20, (int)joueur.centre_joueur.Y - 20, 40, 70))) { if (items[i][j] == 'v') { joueur.inventaire.trouverItem(new Item("Potion de vie", Item.type_objet.Potion_de_vie),barre_action); } else if (items[i][j] == 'm') { joueur.inventaire.trouverItem(new Item("Potion de mana", Item.type_objet.Potion_de_mana), barre_action); } else if (items[i][j] == 'l') { joueur.inventaire.trouverItem(new Item("Larme de dragon", Item.type_objet.Larme_de_dragon),barre_action); } else { } present_objet[i][j] = false; } } } }
public void Update(int Xperso, int Yperso, ref bool combat, Joueur joueur) { collisionhaut = new Rectangle((int)rect[0, 0].X, (int)rect[0, 0].Y + 35, 30, 15); collisionbas = new Rectangle((int)rect[0, 0].X, (int)rect[0, 0].Y + 70, 30, 15); collisiongauche = new Rectangle((int)rect[0, 0].X - 10, (int)rect[0, 0].Y + 50, 10, 20); collisiondroite = new Rectangle((int)rect[0, 0].X + 70, (int)rect[0, 0].Y + 50, 10, 20); #region gestion des deplacements if ((rect[0, 0].X - Xperso) * (rect[0, 0].X - Xperso) + (rect[0, 0].Y - Yperso) * (rect[0, 0].Y - Yperso) < 500*500) { combat = true; compteur++; compteur %= 60; if (Yperso >= this.rect[0, 0].Y && Math.Abs(Yperso - this.rect[0, 0].Y) >= Math.Abs(Xperso - this.rect[0, 0].X)) { orientation = 0; if(!blocage_bas) this.rect[0, 0].Y++; position = compteur / 15; } if (Yperso <= this.rect[0, 0].Y && Math.Abs(this.rect[0, 0].Y - Yperso) >= Math.Abs(Xperso - this.rect[0, 0].X)) { orientation = 1; if(!blocage_haut) this.rect[0, 0].Y--; position = compteur / 15; } if (Xperso <= this.rect[0, 0].X && Math.Abs(Yperso - this.rect[0, 0].Y) <= Math.Abs(Xperso - this.rect[0, 0].X)) { orientation = 3; if(!blocage_gauche) this.rect[0, 0].X--; position = compteur / 15; } if (Xperso >= this.rect[0, 0].X && Math.Abs(Yperso - this.rect[0, 0].Y) <= Math.Abs(Xperso - this.rect[0, 0].X)) { orientation = 2; if(!blocage_droit) this.rect[0, 0].X++; position = compteur / 15; } listeSorts.Update(this, joueur); } #endregion }