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
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Mon jeu multi online gratuit : https://gamejolt.com/games/space-war/482884