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; } } } }
public void Teleportation(PersonnageJouable joueur, MapManager map, GameWindow window) { if (Coordonnees.Intersects(joueur._rectangle)) { map.ChargementMap(Destination); map.Position(xdestination, ydestination, joueur, window); } }
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); }
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); }
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(); }
public void Teleportation(MapManager map, string carte, int x, int y, PersonnageJouable joueur, GameWindow window) { map.ChargementMap(carte); map.Position(x, y, joueur, window); }
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); } } }
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 }