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

Fermé
emmaspeedy - Modifié par pijaku le 4/12/2013 à 13:59
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 5 déc. 2013 à 08:10
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);
         }
      }
   }
A voir également:

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 déc. 2013 à 11:11
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 déc. 2013 à 06:06
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 déc. 2013 à 08:10
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