コード例 #1
0
ファイル: Fabrique.cs プロジェクト: jpboudreau/ExerciceDP
        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
        }
コード例 #2
0
ファイル: ClSprite.cs プロジェクト: jpboudreau/ExerciceDP
 public bool ToucheÀ(ClSpriteContrôlé m_joueur)
 {
     return Collision.GestionDeCollision(this.EspaceOccupé, this.DonnéeTexture[0], m_joueur.EspaceOccupé, m_joueur.ObtenirTexture());
 }