Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme d'image

16 août 2019 à 19:56:46

Bon je veux remplir ma fenetre SDL de petite briques appelees "mur" ( c'est une ptite image de fromat .jpg et de taille 34 )

j'ai initialisé un tableau a 2 dimensions de taille 12x12 ( NB_HAUTEUR et NB_LARGEUR ici vauent 12 ) initialisé a 0 comme le montre mon code , le probleme ici est que seule la premier ligne est remplie ( je veux que toute la fenetre soit remplir par ce mur )

#include "constantes.h"
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL_image.h>

int jeu(SDL_Surface* ecran);

int jeu(SDL_Surface* ecran)
{
    int carte[NB_BLOCKS_HAUTEUR][NB_BLOCKS_LAGEUR]={{0}}; /* NB_BLOCKS_HAUTEUR et NB_BLOCKS_LAGEUR valent 12 */
    int i=0,j=0;
    for (i=0;i<NB_BLOCKS_HAUTEUR;i++)
    {
        for (j=0;j<NB_BLOCKS_LAGEUR;j++)
        {
            carte[i][j]=0;
        }
    }
    SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,255,255,255));
    SDL_Surface *caisse=NULL,*caisse_ok=NULL,*mur=NULL,*vide=NULL,*objectif=NULL,*marioactuel=NULL;
    SDL_Surface *Mario[4]={NULL};
    SDL_Rect position,positionjoueur;
    position.x = 0;
    position.y = 0;
    SDL_Event event;
    Mario[0]=IMG_Load("mario_haut.gif");
    Mario[1]=IMG_Load("mario_bas.gif");
    Mario[2]=IMG_Load("mario_droite.gif");
    Mario[3]=IMG_Load("mario_gauche.gif");
    caisse=IMG_Load("caisse.jpg");
    caisse_ok=IMG_Load("caisse_ok.jpg");
    mur=IMG_Load("mur.jpg");
    objectif=IMG_Load("objectif.png");
   for (i=0;i<NB_BLOCKS_HAUTEUR;i++)
   {
       for (j=0;j<NB_BLOCKS_LAGEUR;j++)
       {
           if (carte[i][j]==0)
            {
              SDL_BlitSurface(mur,NULL,ecran,&position);
              position.x=position.x+TAILLE_SPRITE; /* TAILLE_SPRITE est la taille de l'image mur , ca vaut 34 */
            }
       }
       position.y=position.y+TAILLE_SPRITE;
   }

    SDL_Flip(ecran);
    SDL_FreeSurface(mur);


}


voici la compliation du programme

-
Edité par SouhailYoussef 16 août 2019 à 20:01:13

  • Partager sur Facebook
  • Partager sur Twitter
17 août 2019 à 17:54:37

Bonjour / bonsoir à toi aussi,

Déplace la ligne 24 en ligne 36 bis

  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

22 août 2019 à 0:04:42

Bonjour,

Il me semble que le problème vient de ton position.x, il n'est jamais remis à 0 à chaque fin de ligne...

  • Partager sur Facebook
  • Partager sur Twitter

Mon jeu multi online gratuit : https://gamejolt.com/games/space-war/482884