Skip to content
Snippets Groups Projects
Commit 36672496 authored by IKHRICHI Soumaya's avatar IKHRICHI Soumaya
Browse files

nettoyage du main et ajout des fonctions fait avec Rawan

parent f86158fe
No related branches found
No related tags found
No related merge requests found
...@@ -4,7 +4,7 @@ LIBS = -L /SDL2_ttf/.libs -L /SDL2_image/.libs ...@@ -4,7 +4,7 @@ LIBS = -L /SDL2_ttf/.libs -L /SDL2_image/.libs
LDFLAGS = `sdl2-config --cflags --libs` LDFLAGS = `sdl2-config --cflags --libs`
INCLUDES = -I ./SDL2_ttf -I ./SDL2_image INCLUDES = -I ./SDL2_ttf -I ./SDL2_image
EXEC = main EXEC = main
SRC = main.c player.c map.c textures.c data.c SRC = main.c player.c map.c graphics.c
OBJ = $(SRC:.c=.o) OBJ = $(SRC:.c=.o)
all: $(EXEC) all: $(EXEC)
... ...
......
#include "data.h"
walls_t* init_wall(int px,int py,int postx,int posty){
walls_t* walls= malloc(sizeof(walls_t));
walls->bricks.w=BRICKW;
walls->bricks.h=BRICKH;
walls->bricks.x=BRICKW*postx;
walls->bricks.y=BRICKH*posty;
walls->Src.x=BRICKW*px;
walls->Src.y=BRICKH*py;
walls->Src.w=BRICKW;
walls->Src.h=BRICKH;
return walls;
}
\ No newline at end of file
#ifndef DATA_H
#define DATA_H
#include "player.h"
#define SCREENH 900
#define SCREENW 600
#define BRICKH 32
#define BRICKW 32
typedef struct walls_s
{
SDL_Rect bricks;
SDL_Rect Src;
SDL_Texture* texture;
}walls_t;
walls_t* init_wall(int px,int py,int postx,int posty);
#endif
\ No newline at end of file
File deleted
No preview for this file type
#include "data.h" #include "graphics.h"
int main() int main()
{ {
int nbl = 0; int nbl = 0,nbc = 0;
int nbc = 0; char** map =lire_map("ressources/maze_map.txt");//lire le fichier
char** map =lire_map("ressources/maze_map.txt");
taille_map("ressources/maze_map.txt",&nbl,&nbc); taille_map("ressources/maze_map.txt",&nbl,&nbc);
player_t*player = init_player(1,1); player_t*player = init_player(0,2);//initialisation du joueur
SDL_Window* fenetre; // Déclaration de la fenêtre SDL_Window* fenetre; // Déclaration de la fenêtre
walls_t* walls; walls_t* walls=allocation_Walls();
bool terminer=false;
if(SDL_Init(SDL_INIT_VIDEO) < 0) // Initialisation de la SDL
{
printf("Erreur d’initialisation de la SDL: %s",SDL_GetError());
SDL_Quit();
return EXIT_FAILURE;
}
// Créer la fenêtre
fenetre = SDL_CreateWindow("Fenetre SDL", SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED, 700, 700, SDL_WINDOW_RESIZABLE);
if(fenetre == NULL) // En cas d’erreur
{
printf("Erreur de la creation d’une fenetre: %s",SDL_GetError());
SDL_Quit();
return EXIT_FAILURE;
}
SDL_Renderer* ecran; SDL_Renderer* ecran;
ecran = SDL_CreateRenderer(fenetre, -1, SDL_RENDERER_ACCELERATED); //initialisation du renderer et la fenetre
init_sdl(&fenetre,&ecran,SCREENW,SCREENH);
// Charger l’images // Charger l’images
SDL_Texture* sprite= charger_image("ressources/pavage.bmp",ecran); apply_texture(walls,ecran);
player->texture= charger_image("ressources/personnage.bmp",ecran);
SDL_Event event; SDL_Event event;
// Boucle principale // Boucle principale
while(!terminer){ while(!player->gameover){
while (SDL_PollEvent(&event)){ handle_events(&event,player,map);
if (event.type ==SDL_QUIT){ gamrover(player,map,nbc,nbl);
terminer = true;
}
//si une touche est appuyée
if(event.type == SDL_KEYDOWN){
if (event.key.keysym.sym==SDLK_ESCAPE){ //si on appui sur la touche Echap, on quitte le jeu.
terminer= true;
}
if(event.key.keysym.sym == SDLK_LEFT){
movement(map,player,'q'); // fléche vers la gauche
change_movement_player(player,1,1);
}
if(event.key.keysym.sym == SDLK_RIGHT){
movement(map,player,'d'); // fléche vers la droite
change_movement_player(player,1,2);
}
if(event.key.keysym.sym == SDLK_UP){
movement(map,player,'z');// fléche vers le haut
change_movement_player(player,1,3);
}
if(event.key.keysym.sym == SDLK_DOWN){
movement(map,player,'s');// fléche vers le bas
change_movement_player(player,1,0);
}
}
}
SDL_RenderClear(ecran); SDL_RenderClear(ecran);
for (int i=0;i<nbl;i++){ affichage_bricks(ecran,walls,map,nbc,nbl);
for (int j = 0; j< nbc; j++) SDL_RenderCopy(ecran,walls->texture_joueur,&(player->DestR),&(player->Src));
{
if(map[i][j]=='L'){
walls=init_wall(j,i,9,3);
SDL_RenderCopy(ecran,sprite,&(walls->bricks),&(walls->Src));
}
else if(map[i][j]=='#'){
walls=init_wall(j,i,10,3);
SDL_RenderCopy(ecran,sprite,&(walls->bricks),&(walls->Src));
}
else if (map[i][j]=='S'){
walls=init_wall(j,i,13,3);
SDL_RenderCopy(ecran,sprite,&(walls->bricks),&(walls->Src));
}
}
}
SDL_RenderCopy(ecran,player->texture,&(player->DestR),&(player->Src));
SDL_RenderPresent(ecran); SDL_RenderPresent(ecran);
SDL_UpdateWindowSurface(fenetre); SDL_UpdateWindowSurface(fenetre);
} }
// Libérer de la mémoire // Libérer de la mémoire
SDL_DestroyRenderer(ecran); SDL_DestroyRenderer(ecran);
SDL_DestroyTexture(sprite);
desallouer_tab_2D(map,nbl); desallouer_tab_2D(map,nbl);
free_player(player); free_player(player);
clean_walls(walls);
// Quitter SDL // Quitter SDL
SDL_DestroyWindow(fenetre); SDL_DestroyWindow(fenetre);
SDL_Quit(); SDL_Quit();
... ...
......
File deleted
#ifndef MAP_H #ifndef MAP_H
#define MAP_H #define MAP_H
#include "textures.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <SDL2/SDL.h>
char** allouer_tab_2D(int n,int m); char** allouer_tab_2D(int n,int m);
... ...
......
File deleted
...@@ -21,12 +21,8 @@ player_t* init_player(int posc,int posl){ ...@@ -21,12 +21,8 @@ player_t* init_player(int posc,int posl){
} }
void change_movement_player(player_t* player,int posc,int posl){ void change_movement_player(player_t* player,int posc,int posl){
player->DestR.h=PLAYERH;
player->DestR.w=PLAYERW;
player->DestR.x=PLAYERW*posc; player->DestR.x=PLAYERW*posc;
player->DestR.y=PLAYERH*posl; player->DestR.y=PLAYERH*posl;
player->Src.w=PLAYERW;
player->Src.h=PLAYERH;
player->Src.x=PLAYERW*player->x; player->Src.x=PLAYERW*player->x;
player->Src.y=PLAYERH*player->y; player->Src.y=PLAYERH*player->y;
} }
...@@ -90,22 +86,22 @@ void movement(char** tab,player_t *player,char deplacement){ ...@@ -90,22 +86,22 @@ void movement(char** tab,player_t *player,char deplacement){
{ {
case 'z': case 'z':
if(handle_movement_up(tab,player)){ if(handle_movement_up(tab,player)){
player->y--; player->y -= SPEED;
} }
break; break;
case 's': case 's':
if(handle_movement_down(tab,player)){ if(handle_movement_down(tab,player)){
player->y++; player->y+=SPEED;
} }
break; break;
case 'd': case 'd':
if(handle_movement_right(tab,player)){ if(handle_movement_right(tab,player)){
player->x++; player->x+=SPEED;
} }
break; break;
case 'q': case 'q':
if(handle_movement_left(tab,player)){ if(handle_movement_left(tab,player)){
player->x--; player->x-=SPEED;
} }
break; break;
} }
... ...
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#define PLAYERH 32 #define PLAYERH 32
#define PLAYERW 32 #define PLAYERW 32
#define SPEED 1
typedef struct player_s typedef struct player_s
{ {
...@@ -14,8 +15,6 @@ typedef struct player_s ...@@ -14,8 +15,6 @@ typedef struct player_s
int score; int score;
SDL_Rect DestR; SDL_Rect DestR;
SDL_Rect Src; SDL_Rect Src;
SDL_Texture* texture;
int speed;
int lives; int lives;
int gameover; int gameover;
}player_t; }player_t;
...@@ -26,6 +25,7 @@ bool handle_movement_up(char** tab,player_t*player); ...@@ -26,6 +25,7 @@ bool handle_movement_up(char** tab,player_t*player);
bool handle_movement_down(char** tab,player_t*player); bool handle_movement_down(char** tab,player_t*player);
bool handle_movement_left(char** tab,player_t*player); bool handle_movement_left(char** tab,player_t*player);
bool handle_movement_right(char** tab,player_t*player); bool handle_movement_right(char** tab,player_t*player);
bool handle_mouvement_trap(char** tab,player_t* player);
void movement(char** tab,player_t *player,char deplacement); void movement(char** tab,player_t *player,char deplacement);
void gamrover(player_t* player,char** tab, int nbc,int nbl); void gamrover(player_t* player,char** tab, int nbc,int nbl);
void free_player(player_t* player); void free_player(player_t* player);
... ...
......
File deleted
########################################### ###########################################
#L#LLLLLLLLLLL#LLLL########LLLLLLL###LL#### #LLLLLLLLLLLLLLLLLLLLLLLLL#LLLLLLLLLLLLLLL#
#LLL######L##LLL##L########L#####L###L##### #L#########################L#########L###L#
##########L#######L##############L######### #L#LLLLLLLLLLLLLLLLLLLLLLLLL#############L#
##LLLLLLLLL#######L##LLLLLLLLLLLLLLLLLL#### #L#L#####################################L#
##L###############L##L######L#####L###L#### #L#L##################################L##L#
##LLLL############LLLL######L#####L###L#### #L####################################L##L#
############################L#####L###L#### #L####################################L##L#
############LLLLLLLLLLLLLLLLL#####L###L#### #L####################################L##L#
############L######L######L#######L######## #L#################L######L##############L#
####LLLLLLLLL######L######L######LLLL###### #L#################L######L##############L#
####L##############L######L#####LL##L###### #L##L##############L######L#########L####L#
####L#LLLLLLLL###############LLLL###L###### #L##L###############################L####L#
####L#L######L#####LLLL#############LLL#### #L##L#L######L######################LLL##L#
####LLLL#####L#####L##L#####LLL####LL###### #L###########L#####L##L#####LLL####LL####L#
#############L#####L##L###########LL####### #L###########L#####L##L###########LL#####L#
#LLLLLLLLLLLLL#####L##L##LLLLLLLLLLLLLL#### #L#################L##L##LLLLLLLLLLLLLL##L#
#L#################L##LLLL######L###L###### #L#################L##LLLL######L###L####L#
#L#################L##L#LL######L###S###### #L#################L##L#LL######L###S####L#
########################################### #L#LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL#L#
########################################### #L############L##########################L#
########################################### #LLLLLLLLLLLLLLLLLLL#LLLLLLLLLLLLLLLLLLLLL#
########################################### ###########################################
ressources/personnage.bmp

64.1 KiB | W: | H:

ressources/personnage.bmp

64.1 KiB | W: | H:

ressources/personnage.bmp
ressources/personnage.bmp
ressources/personnage.bmp
ressources/personnage.bmp
  • 2-up
  • Swipe
  • Onion skin
#include "textures.h"
SDL_Texture* charger_image (const char* nomfichier, SDL_Renderer* renderer)
{
SDL_Surface *img = NULL;
SDL_Texture *texture = NULL;
img = SDL_LoadBMP(nomfichier);
if (NULL== img){
fprintf(stderr,"Erreur dans le chargement image: %s", SDL_GetError());
return NULL;
}
SDL_SetColorKey(img,SDL_TRUE, SDL_MapRGB(img->format,255,0,255));
texture = SDL_CreateTextureFromSurface(renderer, img);
// Libérer une surface
SDL_FreeSurface(img);
if (texture == NULL){
fprintf(stderr,"Erreur dans le chargement image: %s", SDL_GetError());
return NULL;
}
return texture;
}
#ifndef TEXTURES_H
#define TEXTURES_H
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <SDL2/SDL.h>
SDL_Texture* charger_image (const char* nomfichier, SDL_Renderer* renderer);
#endif
\ No newline at end of file
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment