From c123734dbb88ef5ece4342e2159f9b882ae7db49 Mon Sep 17 00:00:00 2001 From: SmallIshMink <mattheo.m10@gmail.com> Date: Thu, 30 Mar 2023 17:21:13 +0200 Subject: [PATCH] Possible resolution des bugs --- .vscode/settings.json | 7 + Makefile | 11 +- constante.c | 45 ++++++ library/Display/Display.c | 75 ++++++++++ library/Display/Display.h | 79 ++++++++++ library/Display/Display.o | Bin 0 -> 2670 bytes library/World/world.c | 77 ++++++++++ library/World/world.h | 55 +++++++ library/World/world.o | Bin 0 -> 1741 bytes main.c | 295 +------------------------------------- main.o | Bin 5716 -> 1771 bytes spacecorridor.exe | Bin 277997 -> 277706 bytes 12 files changed, 346 insertions(+), 298 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 constante.c create mode 100644 library/Display/Display.c create mode 100644 library/Display/Display.h create mode 100644 library/Display/Display.o create mode 100644 library/World/world.c create mode 100644 library/World/world.h create mode 100644 library/World/world.o diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d564005 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "files.associations": { + "sdl2-light.h": "c", + "world.h": "c", + "display.h": "c" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile index 1add66b..74d11f0 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,17 @@ -CFLAGS = -O3 -Dmain=SDL_main +CFLAGS = -O3 -Dmain=SDL_main LDFLAGS = -lm -lmingw32 -lSDL2main -lSDL2 SDL2_INCLUDE_DIR = src/include SDL2_LIBRARIES_DIR = src/lib -INC = sdl2-light.h -SRC = main.c sdl2-light.c +INC = sdl2-light.h library/Display/Display.h library/World/world.h +SRC = main.c sdl2-light.c library/Display/Display.c library/World/world.c + OBJ = $(SRC:%.c=%.o) PROG = spacecorridor.exe %.o: %.c $(INC) - gcc $(CFLAGS) -c $< -I $(SDL2_INCLUDE_DIR) + gcc $(CFLAGS) -c $< -I $(SDL2_INCLUDE_DIR) -o $@ $(PROG): $(OBJ) gcc $(CFLAGS) $(OBJ) $(LDFLAGS) -o $@ -L $(SDL2_LIBRARIES_DIR) @@ -21,4 +22,4 @@ doc: $(PROG) .PHONY: clean clean: del /f /q *.o *~ $(PROG) - rd /s /q latex html + rd /s /q latex html \ No newline at end of file diff --git a/constante.c b/constante.c new file mode 100644 index 0000000..bd2ee45 --- /dev/null +++ b/constante.c @@ -0,0 +1,45 @@ +/** + * \brief Largeur de l'écran de jeu + */ +#define SCREEN_WIDTH 300 + +/** + * \brief Hauteur de l'écran de jeu + */ +#define SCREEN_HEIGHT 480 + + +/** + * \brief Taille d'un vaisseau + */ + +#define SHIP_SIZE 32 + + +/** + * \brief Taille d'un météorite +*/ + +#define METEORITE_SIZE 32 + + +/** + * \brief Hauteur de la ligne d'arrivée + */ + + +#define FINISH_LINE_HEIGHT 10 + + +/** + * \brief Pas de déplacement horizontal du vaisseau +*/ + +#define MOVING_STEP 10 + + +/** + * \brief Vitesse initiale de déplacement vertical des éléments du jeu +*/ + +#define INITIAL_SPEED 2 \ No newline at end of file diff --git a/library/Display/Display.c b/library/Display/Display.c new file mode 100644 index 0000000..4b0a4c7 --- /dev/null +++ b/library/Display/Display.c @@ -0,0 +1,75 @@ +#include "Display.h" +#include "../../constante.c" + +void init_textures(SDL_Renderer *renderer, textures_t *textures){ + textures->background = load_image( "ressources/space-background.bmp",renderer); + textures->ship = load_image( "ressources/spaceship.bmp",renderer); + textures->meteorite = load_image( "ressources/meteorite.bmp",renderer); + textures->finishLine = load_image( "ressources/finish_line.bmp",renderer); +} + +void apply_background(SDL_Renderer *renderer, SDL_Texture *texture){ + if(texture != NULL){ + apply_texture(texture, renderer, 0, 0); + } +} + +void apply_sprite(SDL_Renderer * renderer, SDL_Texture *texture, sprite_t *sprite){ + if(texture != NULL){ + SDL_Rect rect; + rect.x = sprite->x; + rect.y = sprite->y; + rect.w = sprite->w; + rect.h = sprite->h; + SDL_RenderCopy(renderer, texture, NULL, &rect); + } +} + +void apply_wall(SDL_Renderer * renderer, SDL_Texture *texture, int x, int y){ + if(texture != NULL){ + SDL_Rect rect; + rect.x = x; + rect.y = y; + rect.w = METEORITE_SIZE; + rect.h = METEORITE_SIZE; + SDL_RenderCopy(renderer, texture, NULL, &rect); + } +} + + +void refresh_graphics(SDL_Renderer *renderer, world_t *world,textures_t *textures){ + + //on vide le renderer + clear_renderer(renderer); + + //application des textures dans le renderer + apply_background(renderer, textures->background); + /* A COMPLETER */ + apply_sprite(renderer, textures->ship, world->vaisseau); + + apply_sprite(renderer, textures->finishLine, world->ligneArriver); + + for (int i = 0; i < world->mur->w/METEORITE_SIZE ; i++){ + for (int i2 = 0; i2 < world->mur->h/METEORITE_SIZE ; i2++){ + apply_wall(renderer, textures->meteorite, world->mur->x+i*METEORITE_SIZE, world->mur->y+i2*METEORITE_SIZE); + } + } + + + // on met à jour l'écran + update_screen(renderer); +} + + +void clean(SDL_Window *window, SDL_Renderer * renderer, textures_t *textures, world_t * world){ + clean_data(world); + clean_textures(textures); + clean_sdl(renderer,window); +} + +void clean_textures(textures_t *textures){ + SDL_DestroyTexture(textures->background); + SDL_DestroyTexture(textures->ship); + SDL_DestroyTexture(textures->meteorite); + SDL_DestroyTexture(textures->finishLine); +} \ No newline at end of file diff --git a/library/Display/Display.h b/library/Display/Display.h new file mode 100644 index 0000000..b47d3d8 --- /dev/null +++ b/library/Display/Display.h @@ -0,0 +1,79 @@ +#include "../../sdl2-light.h" +#include "../World/world.h" +#include "../../constante.c" + +#ifndef DISPLAY_H +#define DISPLAY_H +/** + * \brief Représentation pour stocker les textures nécessaires à l'affichage graphique +*/ + +struct textures_s{ + SDL_Texture* background; /*!< Texture liée à l'image du fond de l'écran. */ + SDL_Texture* ship; /*!< Texture liée à l'image du vaisseau. */ + SDL_Texture* meteorite; /*!< Texture liée à l'image du météorite. */ + SDL_Texture* finishLine; /*!< Texture liée à l'image de la ligne d'arrivée. */ + /* A COMPLETER */ +}; + +/** + * \brief Type qui correspond aux textures du jeu +*/ + +typedef struct textures_s textures_t; + +void init_textures(SDL_Renderer *renderer, textures_t *textures); + +/** + * \brief La fonction applique la texture du fond sur le renderer lié à l'écran de jeu + * \param renderer le renderer + * \param texture la texture liée au fond +*/ +void apply_background(SDL_Renderer *renderer, SDL_Texture *texture); + +/** + * \brief La fonction qui applique la texture \a texture sur le renderer \a renderer en fonction des données du sprite \a sprite + * + * \param texture + * \param renderer + * \param sprite + */ +void apply_sprite(SDL_Renderer * renderer, SDL_Texture *texture, sprite_t *sprite); + +/** + * \brief La fonction qui applique la texture \a texture sur le renderer \a renderer en fonction des coordonnées \a x et \a y + * + * \param renderer + * \param texture + * \param x + * \param y + */ +void apply_wall(SDL_Renderer * renderer, SDL_Texture *texture, int x, int y); + + +/** + * \brief La fonction rafraichit l'écran en fonction de l'état des données du monde + * \param renderer le renderer lié à l'écran de jeu + * \param world les données du monde + * \param textures les textures + */ +void refresh_graphics(SDL_Renderer *renderer, world_t *world,textures_t *textures); + +/** + * \brief La fonction nettoie les textures + * \param textures les textures +*/ + +void clean_textures(textures_t *textures); + +/** +* \brief fonction qui nettoie le jeu: nettoyage de la partie graphique (SDL), nettoyage des textures, nettoyage des données +* \param window la fenêtre du jeu +* \param renderer le renderer +* \param textures les textures +* \param world le monde +*/ + +void clean(SDL_Window *window, SDL_Renderer * renderer, textures_t *textures, world_t * world); + +#endif \ No newline at end of file diff --git a/library/Display/Display.o b/library/Display/Display.o new file mode 100644 index 0000000000000000000000000000000000000000..0aa5943d43618e3d783f6253bdcc9e0a6864a7be GIT binary patch literal 2670 zcmYdkV`l(?0Colj1rURQg+Z?*wW0*fh7b>!7#MUI85m+%A$(Z|klKI*y_Cd~M2HYh z(t#o1fL>B@F-`?gi3X6mB2)t#7#J9MSfC1^lmkP6gI)!yIv)lGh8_%c1`c`!sOmx( z7#MD_Ffi1yK@1aRU|?`yFmTW}f$(9Z0Rsbr4%DwOF_67s!5+<TG(0*ldvu=j=se}o z%L|fy0U|s)KY8@>f&$Q^lNm|Gl7WH2qtlrKNhk;+Bmfn1mhfmkq7fZ;IBkMQ=LwI_ ziyp0)N<>`^Pr4c&@aR1B5@b5RJSZp_4yUE*@yoY>L>Tzx9T+^C-&lZDOMG_Z&u8%I z^-)o9H9WvC=%S(kHhh9d^AU@~2t6?MDjwae1q=)fE}br59WI?dDk@;@9-S^K8pwJP zn)&4!9K#$#9YaFH!QtS*FIb{t;L~}`qw};!=XJ0qk8VDX){`ZCFxTILiiUB3oGIhc z%?`E&?6aGn`ST_C1!JIY_2>?h04b97=yn%CRi(f$m;zVj&*9ST$l=)hL!Q5HEdv8X zcOZ{Xw<*Xsu7*!MdUI415KeaKeBf&M_TU57H2%B~&A;U9!(S(X!p)`g)o1=X&NTk~ zW3Gk=4nAV_=)CFK`O>GeL`5TwKkt%9=OM@Dql{_%Nr%$-{~b)@zXl6Yk8XdC?m(W_ zOTA9={GNvn{$O>nd{M{g(d{PS(R!eC8N_Wz7#({Z<Xu}2IP!ZQ0IPYx-=F{g|9^gg z5)}iF&YK?1M;xN#;$t0S9Ah2hpi%6=5DpGl1)t8t9-ZfXI!}6ZUV{c8H<b2<CZuj} zX!7aymViig{_^Pj=+S&cAv!J|Y9IqBxhjC7r<)U^s2iJpuqLpUqSWHz{L-T2)MEYO zg2d!h-K50i?DV4i(!3PCq}&1qbot_p%mQ?Y+|-iP{G!Z~RCI~7%)HFvjQE_)Jctyy z3;~rR;N%P@7}=N^*qoRQ7!w#67#SEC7+Dw@Sdx%vVJ-&Y3}yztA}#~Y1dams0JZ}x z7nmL}va>L-8!;O&B`_8+vNAES8Zm;hFhd;JR0f6w1_p*kP+7vjz%YS<fngg11A_nq z1H%CZ28K@z3=9$=b)fQ%3F4jvCI*JJObiSb3=9k#m>3v9<(~@!1B1J>vz3BIP->Z_ zj)GHZW=@GhQl)}#aAdHNLP1e}R%&vIrh=i7o{=8db_NC^s68wU;!s;y7!=`Rns6~= zxR?!G%ndH)4;Nd*z`!8Iz`(%5a0V_5idcx4EF%MhG+5S{k%2)H%!*)y>8OLVW-&s1 z&%*EzE>^<CzyK=MSr}@V7#QThdRyVFJ~(SSoV5qeItpi<gR@E*;4WZdV2}Zuw~~p0 zK_1My16KzMcrFG824)6O@eN^dFhD|%nSqCafdL{0iY*9B1TG7THHa9<d<Y9v0E0rE znL!1vR|C${f$IfD5JU&4=!dXCu?^7+iUo+616(gC{vom+a4}H515p<MH(4(&Gba_~ zEd~aLfBzX6(ivSciwklREA^70q7aH7LNPEhC@?UA5<8TSOo3tqly<>tz!G}U6pRqD zhNfeL2q@)%vJXTgIVUwSkAZ;!l%^pfAcMl8DH|e!T;GG7!psOt@gUnlY9Sc8u4e+p z7)T*R3Qi)|^US!^Al31pIA><8fa`}bkn49)HO$Ni3Tc=ughsC0LDe}kBdB%<)#wm; z7?}oTfLb}sjM`8hDpd&QDlmZj#=ua6A<~5*G802&1%?Qyq=5*+Og;$Vf=fS$T~|;< z?lCYh=z+sXrK+lmAu}(tBp%cpD=kVbW=Je3$f=A+l*&+n;sQ{C3+0q2=HxIGrKT07 z7H7n#7bO;CWF{9gfRh2jAS4@d@)J|yGjkKuQ=tYxZDR;_@re&g%}Yrwa?UTP1e;J4 zUj!CNEn+AIwXIU)i<65|Q}e)*dGX-Z7D$^*YH>+Xeq~5%MM-H<Dpa;OC5Hh3(?i|Z literal 0 HcmV?d00001 diff --git a/library/World/world.c b/library/World/world.c new file mode 100644 index 0000000..041ecc4 --- /dev/null +++ b/library/World/world.c @@ -0,0 +1,77 @@ +#include "world.h" + +/** + * \brief La fonction met à jour les données en tenant compte de la physique du monde + * \param les données du monde + */ + +void update_data(world_t *world){ + world->ligneArriver->y += INITIAL_SPEED - world->speed_h; + world->mur->y += INITIAL_SPEED - world->speed_h; +} + +/** + * \brief La fonction indique si le jeu est fini en fonction des données du monde + * \param world les données du monde + * \return 1 si le jeu est fini, 0 sinon + */ + +int is_game_over(world_t *world){ + return world->gameover; +} + +void print_sprite(sprite_t *sprite){ + printf("x = %d, y = %d, w = %d, h = %d\n", sprite->x, sprite->y, sprite->w, sprite->h); +} + +/** + * \brief La fonction initialise les sprites du jeu + * + * \param sprite + * \param x + * \param y + * \param w + * \param h + */ +sprite_t *init_sprite(sprite_t *sprite, int x, int y, int w, int h){ + sprite = malloc(sizeof(sprite_t)); + sprite->x = x; + sprite->y = y; + sprite->w = w; + sprite->h = h; + return sprite; +} + +/** + * \brief La fonction initialise les données du monde du jeu + * \param world les données du monde + */ + + +void init_data(world_t * world){ + + //on n'est pas à la fin du jeu + world->gameover = 0; + world->speed_h = 0; + + // Initialisation du vaisseau + world->vaisseau = init_sprite(world->vaisseau, SCREEN_WIDTH/2 - SHIP_SIZE/2, SCREEN_HEIGHT - SHIP_SIZE, SHIP_SIZE, SHIP_SIZE); + world->mur = init_sprite(world->mur, 0, 0, 3*METEORITE_SIZE, 7*METEORITE_SIZE); + world->ligneArriver = init_sprite(world->ligneArriver, 0, -40, SCREEN_WIDTH, FINISH_LINE_HEIGHT); + + print_sprite(world->vaisseau); +} + + +/** + * \brief La fonction nettoie les données du monde + * \param world les données du monde + */ + + +void clean_data(world_t *world){ + /* utile uniquement si vous avez fait de l'allocation dynamique (malloc); la fonction ici doit permettre de libérer la mémoire (free) */ + free(world->vaisseau); +} + + diff --git a/library/World/world.h b/library/World/world.h new file mode 100644 index 0000000..64e7afe --- /dev/null +++ b/library/World/world.h @@ -0,0 +1,55 @@ + +/** + * \brief Fichier qui contient les données du monde du jeu + * + */ + +#include "../../constante.c" + +#ifndef WORLD_H +#define WORLD_H + +/** + * \brief Représentation pour stocker les données du vaisseau ou autre sprites + * + */ + +struct sprite_s{ + int x; + int y; + int w; + int h; +}; + +typedef struct sprite_s sprite_t; + +/** + * \brief Représentation du monde du jeu +*/ +struct world_s{ + sprite_t *vaisseau ; /*!< Représentation du vaisseau */ + sprite_t *mur; /*!< Représentation du météorite */ + sprite_t *ligneArriver; + int gameover; /*!< Champ indiquant si l'on est à la fin du jeu */ + int speed_h; /*!< Vitesse de déplacement horizontal des éléments du jeu */ + +}; +/** + * \brief Type qui correspond aux données du monde + */ + +typedef struct world_s world_t; + +void update_data(world_t *world); + +int is_game_over(world_t *world); + +void print_sprite(sprite_t *sprite); + +sprite_t *init_sprite(sprite_t *sprite, int x, int y, int w, int h); + +void init_data(world_t * world); + +void free_data(world_t * world); + +#endif diff --git a/library/World/world.o b/library/World/world.o new file mode 100644 index 0000000000000000000000000000000000000000..69556e66efb4aa19c8232a04632ed7f93c23de64 GIT binary patch literal 1741 zcmYdkV`l(?87vG8QXmEc3xi%sYDEc{4Iu&;85ndJ85nYyA$%SN1_lL&fCRmi#F9ja z5Khv8A>e>sQgJa(1yG3wkh%&~12q^J7;2cH3ZRq&gMouy0jfF=1_p*DObiT9pzaf5 zU|;~ND?(Klz`(%p2E)7n2YnN$;ZVwefq}sWY8F(8!GR&bVFyUBM|YrrwxbNA6N^W8 zAP1up%i%PB`4+IUZbym3X=!>e?gWqKHx}KFJl%qwE-DHx-JTpS-Ht3Cy}TgBFF?cu zkLDv52>sz<!5+<T6m|+QFfeppcIiCs(s>T7E{#7gL?t1OKkr-`f8OCV{=EBX{7I+M z_>&H&@#h@m7i92gKB5pE7msW^zdQrTGy{+0juIfdJUUN<4F((dnLnRZfq{VmEaK70 z%rD3Q7YF$sD(=hylW^P#Qtr6p03!nfNV5Y21A|AWv%s!45Ch^RenE!gE-DHjg<!)# zzB7nEj0g~qZqAn=r%ZqXMg|53FlJ$7U`b+NU}R@uU^ikmU`k*tU}R-tU=3n40Lg>& zh=T}lx?^BaVPIfjVPIeYxip-Cfq{d8fgyo`fngB?0|O}RHZU+Sm@zUi$bixTBLjm6 zBScSyf~|sTijG1hlrD$T8DN@=0pu5u2SGjnVW^d0vmZb?H~#<s56TN%3=9nJ&dyc} z8bPULmO2VfrI|S;3Q3g;zQK{fMhXQ*`B|ySC7KF`MtVkiAcum&iGhJZ80>am1_lO@ zk60K=85kHq@x#J!49+?SS9cFC_6#oe9WKVr2s2L_&eCRtne4*Iz#s{>4dirA1_lOZ zaHv68pfKYHi-B@8L<|&m5S9o70|P`B<Ti*HC^R7~P}o3ZK`{Xl1Lai+O9!qO<ZXx; zD1$**7I0Y`1_lO*7$`A8ST1l`y|m1nRFK0N7#RNjXJANYEYB~>NzqG&ioqz5J3wqk z1_cHtSYiPQAYo}}x&f;Ji-TMXaveg%6q<$*B906U44{;R5b=hlCx{4gDG9QenGuxE zK%oh?0!$#6kf6eY8Ke*_gCLMgM^K@IRSi<f2uk_Pj36H%%mA^FOGQ>t%rb(?MNnA? zl7(PBq!N)0tOisjLgbLiFenF9H!w45LwN|QpeQr1Bn`$_U|?d%P0Y#3her-bB&{eF z7J=aKXJP==6%ZGwR8>_ml!A)!)Oc_iomm{8o|u~&pI??*!~ixuzPO+$vm})vGcU6Q Rg$-7poRgZE2hoaTA^?Jd+!g=; literal 0 HcmV?d00001 diff --git a/main.c b/main.c index 64e2ec0..da291ac 100644 --- a/main.c +++ b/main.c @@ -8,198 +8,16 @@ #include "sdl2-light.h" #include <stdio.h> - -/** - * \brief Largeur de l'écran de jeu - */ -#define SCREEN_WIDTH 300 - -/** - * \brief Hauteur de l'écran de jeu - */ -#define SCREEN_HEIGHT 480 - - -/** - * \brief Taille d'un vaisseau - */ - -#define SHIP_SIZE 32 - - -/** - * \brief Taille d'un météorite -*/ - -#define METEORITE_SIZE 32 - - -/** - * \brief Hauteur de la ligne d'arrivée - */ - - -#define FINISH_LINE_HEIGHT 10 - - -/** - * \brief Pas de déplacement horizontal du vaisseau -*/ - -#define MOVING_STEP 10 - - -/** - * \brief Vitesse initiale de déplacement vertical des éléments du jeu -*/ - -#define INITIAL_SPEED 2 - - - - -/** - * \brief Représentation pour stocker les textures nécessaires à l'affichage graphique -*/ - -struct textures_s{ - SDL_Texture* background; /*!< Texture liée à l'image du fond de l'écran. */ - SDL_Texture* ship; /*!< Texture liée à l'image du vaisseau. */ - SDL_Texture* meteorite; /*!< Texture liée à l'image du météorite. */ - SDL_Texture* finishLine; /*!< Texture liée à l'image de la ligne d'arrivée. */ - /* A COMPLETER */ -}; +#include "library/Display/Display.h" +#include "library/World/world.h" -/** - * \brief Type qui correspond aux textures du jeu -*/ - -typedef struct textures_s textures_t; - - -/** - * \brief Représentation pour stocker les données du vaisseau - * - */ -struct sprite_s{ - int x; - int y; - int w; - int h; -}; - -typedef struct sprite_s sprite_t; - -/** - * \brief Représentation du monde du jeu -*/ - -struct world_s{ - sprite_t *vaisseau ; /*!< Représentation du vaisseau */ - sprite_t *mur; /*!< Représentation du météorite */ - sprite_t *ligneArriver; - int gameover; /*!< Champ indiquant si l'on est à la fin du jeu */ - int speed_h; /*!< Vitesse de déplacement horizontal des éléments du jeu */ - -}; - -/** - * \brief Type qui correspond aux données du monde - */ - -typedef struct world_s world_t; - /** * \brief Fonction qui affiche les données du vaisseau * */ -void print_sprite(sprite_t *sprite){ - printf("x = %d, y = %d, w = %d, h = %d\n", sprite->x, sprite->y, sprite->w, sprite->h); -} - -/** - * \brief La fonction initialise les sprites du jeu - * - * \param sprite - * \param x - * \param y - * \param w - * \param h - */ -sprite_t *init_sprite(sprite_t *sprite, int x, int y, int w, int h){ - sprite = malloc(sizeof(sprite_t)); - sprite->x = x; - sprite->y = y; - sprite->w = w; - sprite->h = h; - return sprite; -} - -/** - * \brief La fonction initialise les données du monde du jeu - * \param world les données du monde - */ - - -void init_data(world_t * world){ - - //on n'est pas à la fin du jeu - world->gameover = 0; - world->speed_h = 0; - - // Initialisation du vaisseau - - - world->vaisseau = init_sprite(world->vaisseau, SCREEN_WIDTH/2 - SHIP_SIZE/2, SCREEN_HEIGHT - SHIP_SIZE, SHIP_SIZE, SHIP_SIZE); - world->mur = init_sprite(world->mur, 0, 0, 3*METEORITE_SIZE, 7*METEORITE_SIZE); - world->ligneArriver = init_sprite(world->ligneArriver, 0, -40, SCREEN_WIDTH, FINISH_LINE_HEIGHT); - - print_sprite(world->vaisseau); -} - - - - -/** - * \brief La fonction nettoie les données du monde - * \param world les données du monde - */ - - -void clean_data(world_t *world){ - /* utile uniquement si vous avez fait de l'allocation dynamique (malloc); la fonction ici doit permettre de libérer la mémoire (free) */ - free(world->vaisseau); -} - - - -/** - * \brief La fonction indique si le jeu est fini en fonction des données du monde - * \param world les données du monde - * \return 1 si le jeu est fini, 0 sinon - */ - -int is_game_over(world_t *world){ - return world->gameover; -} - - - -/** - * \brief La fonction met à jour les données en tenant compte de la physique du monde - * \param les données du monde - */ - -void update_data(world_t *world){ - world->ligneArriver->y += INITIAL_SPEED - world->speed_h; - world->mur->y += INITIAL_SPEED - world->speed_h; -} - - - /** * \brief La fonction gère les évènements ayant eu lieu et qui n'ont pas encore été traités * \param event paramètre qui contient les événements @@ -251,121 +69,12 @@ void handle_events(SDL_Event *event,world_t *world){ } } - -/** - * \brief La fonction nettoie les textures - * \param textures les textures -*/ - -void clean_textures(textures_t *textures){ - clean_texture(textures->background); - clean_texture(textures->ship); - clean_texture(textures->meteorite); - clean_texture(textures->finishLine); - - /* A COMPLETER */ -} - - - /** * \brief La fonction initialise les textures nécessaires à l'affichage graphique du jeu * \param screen la surface correspondant à l'écran de jeu * \param textures les textures du jeu */ -void init_textures(SDL_Renderer *renderer, textures_t *textures){ - textures->background = load_image( "ressources/space-background.bmp",renderer); - textures->ship = load_image( "ressources/spaceship.bmp",renderer); - textures->meteorite = load_image( "ressources/meteorite.bmp",renderer); - textures->finishLine = load_image( "ressources/finish_line.bmp",renderer); - - /* A COMPLETER */ - - -} - - -/** - * \brief La fonction applique la texture du fond sur le renderer lié à l'écran de jeu - * \param renderer le renderer - * \param texture la texture liée au fond -*/ - -void apply_background(SDL_Renderer *renderer, SDL_Texture *texture){ - if(texture != NULL){ - apply_texture(texture, renderer, 0, 0); - } -} - -void apply_sprite(SDL_Renderer * renderer, SDL_Texture *texture, sprite_t *sprite){ - if(texture != NULL){ - SDL_Rect rect; - rect.x = sprite->x; - rect.y = sprite->y; - rect.w = sprite->w; - rect.h = sprite->h; - SDL_RenderCopy(renderer, texture, NULL, &rect); - } -} - -void apply_wall(SDL_Renderer * renderer, SDL_Texture *texture, int x, int y){ - if(texture != NULL){ - SDL_Rect rect; - rect.x = x; - rect.y = y; - rect.w = METEORITE_SIZE; - rect.h = METEORITE_SIZE; - SDL_RenderCopy(renderer, texture, NULL, &rect); - } -} - - -/** - * \brief La fonction rafraichit l'écran en fonction de l'état des données du monde - * \param renderer le renderer lié à l'écran de jeu - * \param world les données du monde - * \param textures les textures - */ - -void refresh_graphics(SDL_Renderer *renderer, world_t *world,textures_t *textures){ - - //on vide le renderer - clear_renderer(renderer); - - //application des textures dans le renderer - apply_background(renderer, textures->background); - /* A COMPLETER */ - apply_sprite(renderer, textures->ship, world->vaisseau); - - apply_sprite(renderer, textures->finishLine, world->ligneArriver); - - for (int i = 0; i < world->mur->w/METEORITE_SIZE ; i++){ - for (int i2 = 0; i2 < world->mur->h/METEORITE_SIZE ; i2++){ - apply_wall(renderer, textures->meteorite, world->mur->x+i*METEORITE_SIZE, world->mur->y+i2*METEORITE_SIZE); - } - } - - - // on met à jour l'écran - update_screen(renderer); -} - - - -/** -* \brief fonction qui nettoie le jeu: nettoyage de la partie graphique (SDL), nettoyage des textures, nettoyage des données -* \param window la fenêtre du jeu -* \param renderer le renderer -* \param textures les textures -* \param world le monde -*/ - -void clean(SDL_Window *window, SDL_Renderer * renderer, textures_t *textures, world_t * world){ - clean_data(world); - clean_textures(textures); - clean_sdl(renderer,window); -} diff --git a/main.o b/main.o index ea24b91200aa77c889204cf77230e9a71b225a18..1c4119f69837b2b9e6960a091117f09ef7b55d13 100644 GIT binary patch literal 1771 zcmYdkV`Bh;JQfB984!bkg+Z?*wW0*fh7b=J85md?85k0nA$%bQ1_lL&fCRmi#F9ja z5Khv8A>e>sQgJa(1yG3wkh%&~12q^J7@jae6+kHm1_KAZ0#tP>3=9lB%nS@7ED%MU z3=9k)b^0a{K8!SAU|=wS`T-{9z!2aN7VOddM#H1?v`6PPet8E5kItJfK=Q2zO6<Ft zZ5bFD7)p|D8JHOuN^`oMMLfFsntv3QRMzV^|B&Wyna04t(EKB%l)0Ia3#<*Hz4V|* z^AU~cxWj4u@-84%#U;VbKdMS^G-tAK9e0xfxdp7{^=Xj3$K50t85kH|*8KnfAH=t1 zWM*LCZ_WMx|Nn6}aOAv9{Qv*|gl0{MMX#qq&2<Eu_V@q)|1Uu9epv-JfB|YAL@W&~ z)&P<Z2YXn-r}LOk=Xu8+I*beq9-WsRcY@*>tk|RTCxq_i_UQcN(R@T9IxhYtNGsSM zApMPRHZU+SK=eS3=nYX(@aXkX(SYdfjZrc1=q*tR@aVkh(OaWZ01@u?QBm;d`~>E_ zHUgXH(RmAGW9h&D|6yV00aE7K`N5;}7Fgv@E(Qh$Fbk%l^+3sSk8Y5a-99QBo}D*6 zJ3oLG7#{FwJOXlDbX@%52_V48#>~Lx#ALvjz`(%B&ceWM#B9Knz*xY@#md0ND8>Nc zfxO4S0QMyV1H%Uf1_o_L1_mBbnqg#MxXsAGAi==E;O^{frJxa%T4t%E;8dEKQ=*Vm zso)zN8Em9bP?VpQnp~o(U}&Ugqz6iD3=9k+3=9mQ{KCTE&A`AQ%)r3F!VnA>tAmSe zfwRuQSr6bWUPg#XEDWNI3=E=RQv%^)8E~;uMg|5kuxvjg1A{o2H6QA77KW9K3=EQB zv5kxj3{qg$DMkhcX)sG2t``&%pi+UE0hFO2EDlf}V_;xl28RelOn`xb0m1_L5)@L* z;4p%Sff6i)r2yBfmzJ563NoI7f#KhO28MLT+{Da0y=15moZ^SF7#S28m_T^~%7;;z zd70n>3KUCVH4MQnKJg&43>X<0AR@@67{~}_Mo=7r;sRz00|Rmi1}bQnK?)JlU>0)e z1<J5k)gYBzpfF=*1eIN2?QjCQ)M5pNBqONY0+m&8C18dun1qHbqc)U>N+C>FU;w$B zfx!%}03-qmpZMaG9Ec!D1jKR%5nv1x@dfih1WY6v!~tWNNIIAYB0wSqiKWG`7zEV< z5Zfz2(qIfylbn;9m<Q&82#`oC0|SFz5vbHwsj8}C$Vkjf$w`e*ElbTSDMpq6#bQ8y zPL3-`hM}M+Gp{7RxS%MrB$WZ|C6Eaa7O09UElMqBC<RppsqtW$qSUma)Z&cz^rFOq WjLhU>hRovl^u*lM`24ceA_f3&<}BI( literal 5716 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 XqWB`P0K(VB$wjHDd0@#raF7E40(Dd% diff --git a/spacecorridor.exe b/spacecorridor.exe index f6afb07d558e13762ed9955ea1aea9a6dfc42eda..9c007bfc6c0c05ab510c84aba673698a64238917 100644 GIT binary patch delta 28475 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	XS1D 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 DAd>i$ delta 28725 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 -- GitLab