J'ai ici quelques problemes avec mon mario sokoban.
J'avais du mal a le faire donc j'ai regarde la solution pour la collision et l'editeur
1) Avec le deplacement caisse
switch(direction) { case HAUT: if(pos->y - 1 < 0)// Si le joueur dépasse l'écran, on arrête break; if(carte[pos->x][pos->y - 1] == MUR)// S'il y a un mur, on arrête break; // Si on veut pousser une caisse, il faut vérifier qu'il n'y a pas de mur derrière (ou une autre caisse, ou la limite du monde) if((carte[pos->x][pos->y - 1] == CAISSE || carte[pos->x][pos->y - 1] == CAISSE_OK) && (pos->y - 2 < 0 || carte[pos->x][pos->y - 2] == MUR ||
carte[pos->x][pos->y - 2] == CAISSE || carte[pos->x][pos->y - 2] == CAISSE_OK)) break;
// Si on arrive là, c'est qu'on peut déplacer le joueur ! // On vérifie d'abord s'il y a une caisse à déplacer
deplacerCaisse(&carte[pos->x][pos->y - 1], &carte[pos->x][pos->y - 2]);
pos->y--; // On peut enfin faire monter le joueur (oufff !) break;
Voila en le code du deplacement du personnage et des caisses
il marche parfaitement pour toute les directions sauf la droite.
Je peux deplacer mon personnage mais pas le faire pousser des caisses vers la droite
J'avoue que je ne comprend pas. C'est exactement le meme code que celui de mateo...
2) Avec l'editeur
j'ai mon main qui appel ma fonction editeur(ecran);
et quand j'appuie sur la touche 2...
Je constate avec stupeur qu'il ne se passe rien
Pourtant avec la touche 1 ca charge le niveau je ne peux juste pas deplacer les caisses vers la droite.
La ca ne charge meme pas le niveau. Ca ne fait rien
int continuer = 1, clicGaucheEnCours = 0, clicDroitEnCours = 0; int objetActuel = MUR, i = 0, j = 0; int carte[NB_BLOCS_LARGEUR][NB_BLOCS_HAUTEUR] = {0};
// Chargement des objets et du niveau
mur = IMG_Load("mur.jpg");
caisse = IMG_Load("caisse.jpg");
objectif = IMG_Load("objectif.png");
mario = IMG_Load("mario_bas.gif");
if(!chargerNiveau(carte))
exit(EXIT_FAILURE);
// Boucle infinie de l'éditeur...
j'ai tous les includes dans le main et editeur et pourtant rien.
J'ai essayer de changer la touche et tout dans le main... il n'y a toujours que l'appel de la fonction jouer() qui fonctionne ...
/Moi pas comprendre xD
Merci
Probleme Mario Sokoban
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.