protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); pacman = new ObjetAnime(Game.Content.Load <Texture2D>(@"images\" + filename), position_initiale, Vector2.Zero, vitesse_initiale); Vector2 taille; taille.X = pacman.Texture.Width; taille.Y = pacman.Texture.Height; pacman.Size = taille; base.LoadContent(); }
protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); // Font this.textFont = Content.Load <SpriteFont>("fonts\\TolkienFont"); this.textFontVictoire = Content.Load <SpriteFont>("fonts\\TolkienFontVictoire"); // Résolution graphics.PreferredBackBufferWidth = 810; graphics.PreferredBackBufferHeight = 620; graphics.ApplyChanges(); // on charge un objet mur mur = new ObjetAnime(Content.Load <Texture2D>("images\\mur"), new Vector2(0f, 0f), new Vector2(20f, 20f), new Vector2(0, 0)); bean = new ObjetAnime(Content.Load <Texture2D>("images\\bean"), new Vector2(0f, 0f), new Vector2(20f, 20f), new Vector2(0, 0)); beanGros = new ObjetAnime(Content.Load <Texture2D>("images\\gros_bean"), new Vector2(0f, 0f), new Vector2(20f, 20f), new Vector2(0, 0)); pouvoir = new ObjetAnime(Content.Load <Texture2D>("images\\pouvoir"), new Vector2(0f, 0f), new Vector2(20f, 20f), new Vector2(0, 0)); }
public static Boolean testMiam(JoueurPacman joueurPacman) { Boolean bmiam = false; // On récupère la position X/Y arrondie du pacman dans un tableau // On convertit la position x/y de pixel vers une case [i,j] de la matrice ObjetAnime objetAnime = joueurPacman._pacman; int[] position = Moteur2D.getPositionMatrice(objetAnime.Position.X, objetAnime.Position.Y); int j = position[0]; int i = position[1]; // Puis on test si le miam est possible byte[,] map = Pacman.getMap(); if (map[i, j] == 1) { bmiam = true; map[i, j] = 10; Pacman.setMap(map); ajouterScore(5); } else if (map[i, j] == 3) { bmiam = true; map[i, j] = 2; Pacman.setMap(map); ajouterScore(100); // activer immortalité // fuite des fantome // chgt textures } else if (map[i, j] == 4) { bmiam = true; map[i, j] = 10; Pacman.setPouvoirBool(true); joueurPacman.Pouvoir = true; Pacman.setPouvoirTime(0); Pacman.setMap(map); ajouterScore(50); } return(bmiam); }
// Même méthode que testCollision mais spécifique aux fantomes. // Permet de considérer la zone de départ (map i,j =2) comme une collision. public static Boolean testCollisionFantom(IAFantom iaFantom, String direction) { // On initialise une collision à false par défaut bool collision = false; // On récupère la position X/Y arrondie du pacman/fantome dans un tableau // On convertit la position x/y de pixel vers une case [i,j] de la matrice ObjetAnime objetAnime = iaFantom._fantom; int[] position = getPositionMatrice(objetAnime.Position.X, objetAnime.Position.Y); int j = position[0]; int i = position[1]; // Puis on test si le déplacement est possible selon le déplacement // On récupère la carte byte[,] map = Pacman.getMap(); int VX = Pacman.getVX(); int VY = Pacman.getVY(); // on met à jour la position du fantôme en cas de hors limite iaFantom.updatePosition(); // Si la case suivante est pas un mur // il y a collision // R L U D pour Right Left Up Down if (direction == "R") { if (j >= VY - 1) // Si dépasse de la matrice, amène de l'autre côté de l'écran { j = -1; } if (map[i, j + 1] == 0 || map[i, j + 1] == 2) { collision = true; } } else if (direction == "L") { if (j <= 1) // Si dépasse de la matrice, amène de l'autre côté de l'écran { j = VY; } if (map[i, j - 1] == 0 || map[i, j - 1] == 2) { collision = true; } } else if (direction == "U") { if (i <= 1) // Si dépasse de la matrice, amène de l'autre côté de l'écran { i = VX; } if (map[i - 1, j] == 0 || map[i - 1, j] == 2) { collision = true; } } else if (direction == "D") { if (i >= VX - 1) // Si dépasse de la matrice, amène de l'autre côté de l'écran { i = -1; } if (map[i + 1, j] == 0 || map[i + 1, j] == 2) { collision = true; } } return(collision); }