public static void AjouterSprites(ref ClSpriteContrôlé p_joueur, ref List<ISprite> p_sprites, ref List<ISpriteTouchable> p_buissons, ref List<ISpriteTouchable> p_rubys) { /// <summary> /// Tableau de jeux. /// </summary> int[,] m_tableau = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // 1 = Bloc { 1, 2, 1, 2, 4, 4, 2, 4, 4, 3 }, // 2 = Ruby { 1, 0, 1, 0, 4, 0, 0, 0, 4, 2 }, // 3 = Bonhomme { 1, 0, 1, 2, 0, 1, 0, 1, 2, 1 }, // 4 = Fleur { 1, 2, 4, 4, 4, 4, 1, 1, 1, 1 }, { 1, 1, 1, 1, 0, 4, 0, 0, 2, 1 }, // <--- Haut! { 1, 0, 4, 0, 2, 0, 4, 2, 2, 1 }, { 1, 0, 0, 0, 0, 1, 0, 1, 0, 1 }, { 1, 0, 2, 0, 0, 4, 4, 1, 2, 1 }, { 1, 1, 1, 1, 2, 4, 4, 1, 1, 1 }, { 1, 0, 0, 1, 0, 4, 4, 2, 2, 1 }, { 1, 2, 2, 1, 0, 2, 1, 1, 2, 1 }, { 1, 2, 2, 1, 2, 1, 1, 1, 1, 1 }, { 1, 2, 4, 2, 0, 2, 4, 4, 2, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }}; Point tailleTableau = new Point(14, 9); Vector2 positionBonhomme = new Vector2(); for (int i = tailleTableau.X; i >= 0; --i) for (int j = tailleTableau.Y; j >= 0; --j) { if (m_tableau[i, j] == 3) { positionBonhomme = new Vector2(i * Tableau.TailleCase.X, Jeu.Instance.Window.ClientBounds.Height - (Tableau.TailleCase.Y) - j * Tableau.TailleCase.Y); m_tableau[i, j] = 0; } if (m_tableau[i, j] == 1) p_buissons.Add(new ClSpriteBuissonTueur(new Vector2((i * Tableau.TailleCase.X), Jeu.Instance.Window.ClientBounds.Height - (Tableau.TailleCase.Y) - j * Tableau.TailleCase.Y), Jeu.Instance.Content)); if (m_tableau[i, j] == 2) p_rubys.Add(new ClSpriteRuby(new Vector2((i * Tableau.TailleCase.X + 10), // +10 = Décalage pour que le ruby soit dans le milieu Jeu.Instance.Window.ClientBounds.Height - (Tableau.TailleCase.Y) - j * Tableau.TailleCase.Y), Jeu.Instance.Content)); } p_sprites.Add(new ClSpriteLinéaire(new ClSansAnimation(new Rectangle(0, 0, 800, 600)), Vector2.Zero, Vector2.Zero, Jeu.Instance.Content.Load<Texture2D>(@"Images\background"))); p_joueur = new ClSpriteContrôlé( new ClAnimationMultiImages(new Point(49, 54), 3, 4, 1000.0F / 8), // Animé tour complet/seconde ClClavierBasique.Instance, ClManetteTSGaucheEtTurboA.Instance, positionBonhomme, // Position de départ new Vector2(4.0F, 4.0F), // Vitesse Jeu.Instance.Content.Load<Texture2D>(@"Images\link2")); p_sprites.Add(p_joueur); // On veut aussi le gérer séparément pour calculer les collisions }
public bool ToucheÀ(ClSpriteContrôlé m_joueur) { return Collision.GestionDeCollision(this.EspaceOccupé, this.DonnéeTexture[0], m_joueur.EspaceOccupé, m_joueur.ObtenirTexture()); }