Creation des limites avec un tableau 2 dimension d'un jeu pacman

emmaspeedy -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour,
je dois faire un jeu de pacman et je doit faire les limites en utilisant un tableau a 2 dimension et je n'es aucun idée de comment faire.

info: je suis dans mon premier cours de programmation.

Objet Tableau[NombreRange][NombreColonne] = 
{
{ M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M},
{ M, P, P, P, P, P, P, P, P, M, P, P, P, P, P, P, P, P, M},
{ M, P, M, M, P, M, M, M, P, M, P, M, M, M, P, M, M, P, M},
{ M, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, M},
{ M, P, M, M, P, M, P, M, M, M, M, M, P, M, P, M, M, P, M},
{ M, P, P, P, P, M, P, P, P, M, P, P, P, M, P, P, P, P, M},
{ M, M, M, M, P, M, M, M, V, M, V, M, M, M, P, M, M, M, M},
{ V, V, V, M, P, M, V, V, V, V, V, V, V, M, P, M, V, V, V},
{ M, M, M, M, P, M, V, M, M, V, M, M, V, M, P, M, M, M, M},
{ V, V, V, V, P, V, V, M, V, V, V, M, V, V, P, V, V, V, V},
{ M, M, M, M, P, M, V, M, M, V, M, M, V, M, P, M, M, M, M},
{ V, V, V, M, P, M, V, V, V, V, V, V, V, M, P, M, V, V, V},
{ M, M, M, M, P, M, V, M, M, M, M, M, V, M, P, M, M, M, M},
{ M, P, P, P, P, P, P, P, P, M, P, P, P, P, P, P, P, P, M},
{ M, P, M, M, P, M, M, M, P, M, P, M, M, M, P, M, M, P, M},
{ M, P, P, M, P, P, P, P, P, P, P, P, P, P, P, M, P, P, M},
{ M, M, P, M, P, M, P, M, M, M, M, M, P, M, P, M, P, M, M},
{ M, P, P, P, P, M, P, P, P, M, P, P, P, M, P, P, P, P, M},
{ M, P, M, M, M, M, M, M, P, M, P, M, M, M, M, M, M, P, M},
{ M, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, M},
{ M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M},
};

voici ce que j'ai M=Mur P=point V=vide

et voici la boucle qui me permet d'afficher cela mais mon pacman passe par dessu tout les mur

for(int i=0; i<NombreRange ; i++ )
   {
      for(int j=0;j< NombreColonne; j++)
      {
         if(grille[i][j]==P)
         {
            AfficherImage(Point,i*16,j*16);
         }
         if(grille[i][j]==M)
         {
            AfficherImage(Mur,i*16,j*16);
         }
      }
   }

1 réponse

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    Si ton pacman passe à travers les murs, le souci se situ dans la fonction qui le fait bouger, pas dans la fonction d'affichage.
    D'ailleurs, tu ne donnes pas assez d'élément pour qu'on te réponde.
    0
    1. emmaspeedy
       
      merci pour votre aide maintenant je sais ou gosser pour ce qui est du code mais comme quel type d'info aurait vous besoin ??

      NombreRange c'est un constante pi Nombrecolonne aussi...

      j'ai attribué mes images qui corresponde au point puis au mur puis je les affiches ensuite grace à la grille.

      dans le fond j'affiche un fenetre qui remplis de noir puis ensuite j'utilise la grille pour afficher mes points pi mes murs...

      just apres j'affiche le pacman mais biensur il est par dessus mes murs

      je doit faire un prototype que je passe ma grille comme parametre qui valide si la prochaine case est un mur alors il attend un touche ?????

      P.S desole de mes fautes et si je me fait comprendre mal
      0
    2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      je doit faire un prototype que je passe ma grille comme parametre qui valide si la prochaine case est un mur alors il attend un touche ?????
      C'est plus que des fautes, c'est incompréhensible... :-/
      Pour écrire de manière plus compréhensible, il y a une règle d'or : une phrase=une idée. Là il y en a au moins 3 dans la tienne.

      Il faut découpler l'affichage de la gestion du jeu. Pour faire avancer pacman, il faut que tu regarde ta grille voir s'il y a un mur ou pas. Comment le code pourrait faire pour deviner qu'il ne doit pas passer à travers les murs ?
      0
    3. emmaspeedy
       
      ok, je commence à comprendre.mais une autre question... Verifier si la case contient un mur j'utilise le for suivant

      for(int i =0 ; i < NombreRange ; i++ )
      {
      for ( int j = 0 ; j < NombreColonne ; j++ )

      comme ça je passe case par case. Alors si j'utilise

      if(grille[i][j]==M)

      comment je fais pour que cette case soit inaccessible et que mon pacman block devant le mur
      0
    4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      Tu raisonnes à l'envers. C'est lorsque tu va essayer de déplacer ton pacman qu'il faut voir s'il y a un mur ou non.
      0