public Point Deplacement(Point p_positionActuelle) { if (PacMan.Instance.premierMouvement) { return(p_positionActuelle); } return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement = Tableau.Instance.getProchainMouvementsPourSeRendre(PacMan.Instance.getDernierePosition(), p_positionActuelle, dernierDeplacement))); }
/// <summary> /// Déplace Pacman si possible /// </summary> /// <returns>La nouvelle position</returns> private Point effectuerDeplacement() { Point déplacement = UtilDéplacement.DéplacementEnPoint(m_dernierDeplacement); Tableau.Instance.PacManMange(PositionActuelle); int vitesse = getVitesse(); if (Tableau.Instance.estPacmanMort(PositionActuelle)) { Jeu.Instance.perdreVie(); return(PositionActuelle); } return(new Point(DernièrePosition.X + déplacement.X * vitesse, DernièrePosition.Y + déplacement.Y * vitesse)); }
public Point Deplacement(Point p_positionActuelle) { if (Tableau.Instance.estDisponible(p_positionActuelle, PacMan.Instance.GetDéplacements()) && UtilDéplacement.EstDansMilieuCase(p_positionActuelle) && PacMan.Instance.GetDéplacements() != Déplacements.Null) { dernierDeplacement = PacMan.Instance.GetDéplacements(); return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement)); } if (Tableau.Instance.estDisponible(p_positionActuelle, dernierDeplacement)) { return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement)); } return(new Point(0, 0)); }
public Point Deplacement(Point p_positionActuelle) { if (PacMan.Instance.premierMouvement) { return(p_positionActuelle); } if (Tableau.Instance.m_nombrePastilles != ancienPastille) { nombre = new Random(Tableau.Instance.m_nombrePastilles); } ancienPastille = Tableau.Instance.m_nombrePastilles; int chiffre = (nombre.Next(0, 200) % 4 + 1); Déplacements deplacementDepart; switch (chiffre) { case 1: deplacementDepart = Déplacements.Bas; break; case 2: deplacementDepart = Déplacements.Droite; break; case 3: deplacementDepart = Déplacements.Gauche; break; default: deplacementDepart = Déplacements.Haut; break; } if (Tableau.Instance.estDisponible(p_positionActuelle, deplacementDepart) && UtilDéplacement.EstDansMilieuCase(p_positionActuelle) && UtilDéplacement.DéplacementEnPoint(deplacementDepart).X * -1 != UtilDéplacement.DéplacementEnPoint(dernierDeplacement).X) { dernierDeplacement = deplacementDepart; return(UtilDéplacement.DéplacementEnPoint(deplacementDepart)); } if (Tableau.Instance.estDisponible(p_positionActuelle, dernierDeplacement)) { return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement)); } return(new Point(0, 0)); }
/// <summary> /// Dessine Pacman /// </summary> public void draw() { PImage image = choisirImage(m_dernierDeplacement); if (Tableau.Instance.estDisponible(PositionActuelle, m_prochainDéplacement) && m_prochainDéplacement != m_dernierDeplacement) { if (UtilDéplacement.DéplacementEnPoint(m_dernierDeplacement).X * -1 == UtilDéplacement.DéplacementEnPoint(m_prochainDéplacement).X && UtilDéplacement.DéplacementEnPoint(m_dernierDeplacement).Y * -1 == UtilDéplacement.DéplacementEnPoint(m_prochainDéplacement).Y) { m_dernierDeplacement = m_prochainDéplacement; DernièrePosition = PositionActuelle; PositionActuelle = effectuerDeplacement(); } else { if ((PositionActuelle.X - 10) % 21 == 0 && (PositionActuelle.Y - 10) % 21 == 0) { m_dernierDeplacement = m_prochainDéplacement; DernièrePosition = PositionActuelle; PositionActuelle = effectuerDeplacement(); } if (Tableau.Instance.estDisponible(PositionActuelle, m_dernierDeplacement)) { DernièrePosition = PositionActuelle; PositionActuelle = effectuerDeplacement(); } } } else { if (Tableau.Instance.estDisponible(PositionActuelle, m_dernierDeplacement)) { DernièrePosition = PositionActuelle; PositionActuelle = effectuerDeplacement(); } } ImageMode(CENTER); Image(image, PositionActuelle.X, PositionActuelle.Y, 18, 18); if (Tableau.Instance.estPacmanMort(PositionActuelle)) { Jeu.Instance.perdreVie(); } }
public Point Deplacement(Point p_positionActuelle) { Déplacements deplacementDepart = Déplacements.Droite; switch (PacMan.Instance.GetDéplacements()) { case Déplacements.Null: deplacementDepart = Déplacements.Null; break; case Déplacements.Haut: deplacementDepart = Déplacements.Bas; break; case Déplacements.Bas: deplacementDepart = Déplacements.Haut; break; case Déplacements.Gauche: deplacementDepart = Déplacements.Droite; break; case Déplacements.Droite: deplacementDepart = Déplacements.Gauche; break; default: deplacementDepart = Déplacements.Null; break; } if (Tableau.Instance.estDisponible(p_positionActuelle, deplacementDepart) && UtilDéplacement.EstDansMilieuCase(p_positionActuelle) && PacMan.Instance.GetDéplacements() != Déplacements.Null) { dernierDeplacement = deplacementDepart; return(UtilDéplacement.DéplacementEnPoint(deplacementDepart)); } if (Tableau.Instance.estDisponible(p_positionActuelle, dernierDeplacement)) { return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement)); } return(new Point(0, 0)); }
/// <summary> /// Obtient si une position est disponible /// </summary> /// <param name="p_position">position</param> /// <param name="p_deplacement">déplacement</param> /// <returns>oui ou non</returns> public bool estDisponible(Point p_position, Déplacements p_deplacement) { Point deplacement = UtilDéplacement.DéplacementEnPoint(p_deplacement); if (p_position.X + deplacement.X <= 13 || p_position.X + deplacement.X >= 390 || p_position.Y + deplacement.Y <= 13 || p_position.Y + deplacement.Y >= 390) { return(false); } if (m_tableau[(p_position.X + (deplacement.X * 11)) / 21][(p_position.Y + deplacement.Y * 11) / 21] != 0 && m_tableau[(p_position.X + deplacement.X * 11) / 21][(p_position.Y + deplacement.Y * 11) / 21] != 3) { return(true); } else { return(false); } }