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;
                    }
                }
            }
        }
예제 #2
0
        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;
                }
        }
예제 #3
0
 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);
     }
 }
예제 #4
0
        //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);
            }
        }
예제 #5
0
        //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;
        }
예제 #7
0
        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
            {

            }
        }
예제 #8
0
        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);
        }
예제 #9
0
        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);
        }
예제 #10
0
 //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;
 }
예제 #11
0
        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;
        }
예제 #12
0
        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
        }
예제 #13
0
 public void Update(KeyboardState clavier, Joueur joueur, GameWindow window, EcranChargement ecran_chargement)
 {
     gestionTeleportation.Desactivation_Transition(joueur);
     gestionTeleportation.TestTeleportation(this, joueur, window, ecran_chargement);
 }
예제 #14
0
        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
        }
예제 #15
0
 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;
     }
 }
예제 #16
0
        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);
                }

            }
        }
예제 #17
0
 public static void ChargerJeu(Carte map, string carte, int x, int y, Joueur joueur, GameWindow window)
 {
     map.Chargement(carte);
 }
예제 #18
0
        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);
                }

            }
        }
예제 #19
0
 //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;
 }
예제 #20
0
        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);
                }
            }
        }
예제 #21
0
        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();
            }
        }
예제 #22
0
        // 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;
                        }
                    }
                }
            }
        }
예제 #23
0
        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);
        }
예제 #24
0
 public void DonnerObjet(Joueur joueur)
 {
     joueur.inventaire.AddItem_inventaire(item, 1);
 }
예제 #25
0
        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);
                        }
                    }

                }
            }
        }
예제 #26
0
        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();
        }
예제 #27
0
 public static void NouveauJeu(Carte map, Joueur joueur, GameWindow window)
 {
     map.Chargement("000");
 }
예제 #28
0
 public static void NouveauJeu(Carte map, Joueur joueur, GameWindow window)
 {
     map.Chargement("4");
     joueur.Positionnement(353, 107);
 }
예제 #29
0
        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;
                        }
                }
            }
        }
예제 #30
0
        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
        }