public void CollisionPersoDeplacement(MapManager mapManager, PersonnageJouable perso)
        {
            perso.blochaut = false;
            perso.blocbas = false;
            perso.blocgauche = false;
            perso.blocdroit = false;

            foreach(List<Rectangle> rectangleligne in mapManager.collision)
            {
                foreach (Rectangle rectangle in rectangleligne)
                {
                    if(new Rectangle(rectangle.X + mapManager.xmap, rectangle.Y + mapManager.ymap, rectangle.Width, rectangle.Height).Intersects(perso.collisionhaut))
                    {
                        perso.blochaut = true;
                    }
                    if (new Rectangle(rectangle.X + mapManager.xmap, rectangle.Y + mapManager.ymap, rectangle.Width, rectangle.Height).Intersects(perso.collisionbas))
                    {
                        perso.blocbas = true;
                    }
                    if (new Rectangle(rectangle.X + mapManager.xmap, rectangle.Y + mapManager.ymap, rectangle.Width, rectangle.Height).Intersects(perso.collisiongauche))
                    {
                        perso.blocgauche = true;
                    }
                    if (new Rectangle(rectangle.X + mapManager.xmap, rectangle.Y + mapManager.ymap, rectangle.Width, rectangle.Height).Intersects(perso.collisiondroite))
                    {
                        perso.blocdroit = true;
                    }
                }
            }
        }
Example #2
0
 public void Teleportation(PersonnageJouable joueur, MapManager map, GameWindow window)
 {
     if (Coordonnees.Intersects(joueur._rectangle))
     {
         map.ChargementMap(Destination);
         map.Position(xdestination, ydestination, joueur, window);
     }
 }
Example #3
0
        public void Update(KeyboardState clavier, GameWindow window, PersonnageJouable perso)
        {
            #region miseajourdonnees
            ///////////////////Joueur//////////////////////////////////////
            Rectangle positionjoueur = perso._rectangle;
            ///////////////////Taille fenetre//////////////////////////////
            int largeur = window.ClientBounds.Width;
            int hauteur = window.ClientBounds.Height;
            ///////////////////Touche clavier//////////////////////////////
            bool toucheup = clavier.IsKeyDown(Keys.Up) && !(clavier.IsKeyDown(Keys.Down) && clavier.IsKeyDown(Keys.Left) && clavier.IsKeyDown(Keys.Right));
            bool touchedown = clavier.IsKeyDown(Keys.Down) && !(clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Left) && clavier.IsKeyDown(Keys.Right));
            bool toucheleft = clavier.IsKeyDown(Keys.Left) && !(clavier.IsKeyDown(Keys.Down) && clavier.IsKeyDown(Keys.Up) && clavier.IsKeyDown(Keys.Right));
            bool toucheright = clavier.IsKeyDown(Keys.Right) && !(clavier.IsKeyDown(Keys.Down) && clavier.IsKeyDown(Keys.Left) && clavier.IsKeyDown(Keys.Up));
            ///////////////////////////////////////////////////////////////
            #endregion

            courseactive = clavier.IsKeyDown(Keys.LeftShift);

            #region Valeur de deplacement
                int deplacement;

                if (courseactive)
                {
                    deplacement = 4;
                }

                else
                {
                    deplacement = 2;
                }
            #endregion

            #region Haut
            if (toucheup)
                {
                    if (ymap < 0 && !perso.dplcmtbas && !perso.blochaut)
                    {
                        ymap += deplacement;
                        limitehaute = false;
                    }
                }

                if (ymap >= 0)
                {
                    limitehaute = true;
                }
                #endregion

            #region Bas
                if (-ymap >= -hauteur + ymax || (ymax < hauteur))
                {
                    limitebasse = true;
                }

                if (touchedown)
                {
                    if (-hauteur + ymax > -ymap && !(ymax < hauteur) && !perso.dplcmthaut && !perso.blocbas)
                    {
                        ymap -= deplacement;
                        limitebasse = false;
                    }
                }

                #endregion

            #region Gauche
                if (toucheleft)
                {
                    if (xmap < 0 && !perso.dplcmtdroite && !perso.blocgauche)
                    {
                        xmap += deplacement;
                        limitegauche = false;
                    }
                }

                if (xmap >= 0)
                {
                    limitegauche = true;
                }
                #endregion

            #region Droite
                if (toucheright)
                {
                    if (xmap > largeur - xmax + 40 && !(xmax < largeur) && !perso.dplcmtgauche && !perso.blocdroit)
                    {
                        xmap -= deplacement;
                        limitedroite = false;
                    }
                }

                if (xmap <= largeur - xmax + 40 || xmax < largeur)
                {
                    limitedroite = true;
                }
                #endregion

            #region affichage collision
            if (clavier.IsKeyDown(Keys.C))
            {
                touchecol = true;
            }

            if(clavier.IsKeyUp(Keys.C) && touchecol)
            {
                touchecol = false;
                affichecol = !affichecol;
            }
            #endregion

            perso.Deplacement(limitehaute, limitebasse, limitegauche, limitedroite, clavier, window);
        }
Example #4
0
        public void Position(int x, int y, PersonnageJouable joueur, GameWindow window)
        {
            int hauteur = window.ClientBounds.Height;
            int largeur = window.ClientBounds.Width;
            int xjoueur = 0;
            int yjoueur = 0;
            xmap = 0;
            ymap = 0;

            #region Si la largeur carte est plus petite que l'ecran
            if (xmax <= largeur)
            {
                xmap = 0;
                xjoueur = x;
            }

            else
            {
                if (x < largeur / 2)
                {
                    xmap = 0;
                    xjoueur = x;
                }
                else if (x > xmax - largeur / 2)
                {
                    xmap = -(xmax - largeur);
                    xjoueur = xmax - x;
                }
                else
                {
                    xmap = -(x - largeur / 2);
                    xjoueur = largeur / 2 - 20;
                }
            }
            #endregion

            #region Si la hauteur carte est plus petite que l'ecran
            if (ymax <= hauteur)
            {
                ymap = 0;
                yjoueur = y;
            }

            else
            {
                if (y < largeur / 2)
                {
                    ymap = 0;
                    yjoueur = y;
                }
                else if (y > ymax - hauteur / 2)
                {
                    ymap = -(ymax - hauteur);
                    yjoueur = ymax - y;
                }
                else
                {
                    ymap = -(y - largeur / 2);
                    yjoueur = hauteur / 2 - 40;
                }
            }
            #endregion

            joueur.PositionnementJoueur(xjoueur, yjoueur);
        }
Example #5
0
        protected override void Initialize()
        {
            graphics.ToggleFullScreen();

            #region Gestionnaire
            gameManager = new GameManager();
            jeu = new GestionJeu();
            mapManager = new MapManager();
            soundManager = new SoundManager();
            collisionManager = new CollisionManager();
            gestionTeleportation = new GestionTeleportation();
            #endregion

            #region Interface
            lancement = new Lancement();
            menu = new Menu(Window);
            curseur = new Curseur(Content.Load<Texture2D>("Curseur"));
            jauge = new Jauge();
            #endregion

            joueur = new PersonnageJouable(Window, PersonnageJouable.Sexe.femme);

            base.Initialize();
        }
Example #6
0
 public void Teleportation(MapManager map, string carte, int x, int y, PersonnageJouable joueur, GameWindow window)
 {
     map.ChargementMap(carte);
     map.Position(x, y, joueur, window);
 }
Example #7
0
 public void NouveauJeu(MapManager map, PersonnageJouable joueur, GameWindow window)
 {
     map.ChargementMap("plage.map");
     map.Position(50, 200, joueur, window);
 }
        public void MiseAJourTeleporteurs(PersonnageJouable joueur, MapManager map, GameWindow window)
        {
            foreach (Teleporteur teleporteur in teleporteurs)
            {
                if (teleporteur.Arrive == map.actuelmap)
                {
                    teleporteur.MiseAJourCoordonnees(map.xmap, map.ymap);
                }
            }

            foreach (Teleporteur teleporteur in teleporteurs)
            {
                if (teleporteur.Arrive == map.actuelmap)
                {
                    teleporteur.Teleportation(joueur, map, window);
                }
            }
        }
Example #9
0
        public void Update(KeyboardState clavier, GameManager gameManager, Game1 game1, MapManager mapManager, GestionJeu jeu, PersonnageJouable joueur, GameWindow window)
        {
            #region langue
            if (langue == Langue.Francais)
            {
                solo = "Solo";
                multi = "Multijoueur";
                option = "Options";
                quitter = "Quitter";
                son = "Son: ";
                language = "Langue: ";
                nomlangue = "Francais";
                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--;
                    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 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)
                        {
                            jeu.NouveauJeu(mapManager, joueur, window);
                            gameManager.Etat = GameManager.etat.InGame;
                        }

                        if (choix == 2)
                        {

                        }
                        clavierentrer = false;
                    }
                }
                #endregion

                if (clavier.IsKeyDown(Keys.Escape))
                {
                    mode = Mode.Menu;
                    rectselecteur = new Rectangle(10, 60, 40, 30);
                    choix = 1;
                }

                if (clavier.IsKeyUp(Keys.Enter))
                    changement = false;
            }
            #endregion

            #region Choix Sexe

            #endregion

            #region Pause
            if (mode == Mode.Pause)
            {
                #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;
                    }
                    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
        }