Skip to content
Snippets Groups Projects
Commit a82c40d2 authored by SmallIshMink's avatar SmallIshMink
Browse files

Ajout isOverScreen (2)

parent c123734d
No related branches found
No related tags found
No related merge requests found
#include "../../sdl2-light.h" #include "../../sdl2-light.h"
#include "../World/world.h" #include "../World/world.h"
#include "../../constante.c" #include "../../constante.c"
#include <stdio.h>
#include <stdlib.h>
#ifndef DISPLAY_H #ifndef DISPLAY_H
#define DISPLAY_H #define DISPLAY_H
......
...@@ -8,6 +8,14 @@ ...@@ -8,6 +8,14 @@
void update_data(world_t *world){ void update_data(world_t *world){
world->ligneArriver->y += INITIAL_SPEED - world->speed_h; world->ligneArriver->y += INITIAL_SPEED - world->speed_h;
world->mur->y += INITIAL_SPEED - world->speed_h; world->mur->y += INITIAL_SPEED - world->speed_h;
if (isOverScreen(world->vaisseau)){
if (world->vaisseau->x < 0) world->vaisseau->x = 0;
if (world->vaisseau->x + world->vaisseau->w > SCREEN_WIDTH) world->vaisseau->x = SCREEN_WIDTH - world->vaisseau->w;
if (world->vaisseau->y < 0) world->vaisseau->y = 0;
if (world->vaisseau->y + world->vaisseau->h > SCREEN_HEIGHT) world->vaisseau->y = SCREEN_HEIGHT - world->vaisseau->h;
}
} }
/** /**
...@@ -20,6 +28,13 @@ int is_game_over(world_t *world){ ...@@ -20,6 +28,13 @@ int is_game_over(world_t *world){
return world->gameover; return world->gameover;
} }
int isOverScreen(sprite_t *sprite){
if(sprite->x < 0 || sprite->x + sprite->w > SCREEN_WIDTH || sprite->y < 0 || sprite->y + sprite->h > SCREEN_HEIGHT){
return 1;
}
return 0;
}
void print_sprite(sprite_t *sprite){ void print_sprite(sprite_t *sprite){
printf("x = %d, y = %d, w = %d, h = %d\n", sprite->x, sprite->y, sprite->w, sprite->h); printf("x = %d, y = %d, w = %d, h = %d\n", sprite->x, sprite->y, sprite->w, sprite->h);
} }
......
#include <stdio.h>
#include <stdlib.h>
/** /**
* \brief Fichier qui contient les données du monde du jeu * \brief Fichier qui contient les données du monde du jeu
* *
...@@ -41,6 +42,13 @@ struct world_s{ ...@@ -41,6 +42,13 @@ struct world_s{
typedef struct world_s world_t; typedef struct world_s world_t;
void update_data(world_t *world); void update_data(world_t *world);
/**
* \brief La fonction indique si le jeu est fini en fonction des données du monde
*
* \param sprite
* \return int 0 si le sprite est dans l'écran, 1 sinon
*/
int isOverScreen(sprite_t *sprite);
int is_game_over(world_t *world); int is_game_over(world_t *world);
...@@ -50,6 +58,6 @@ sprite_t *init_sprite(sprite_t *sprite, int x, int y, int w, int h); ...@@ -50,6 +58,6 @@ sprite_t *init_sprite(sprite_t *sprite, int x, int y, int w, int h);
void init_data(world_t * world); void init_data(world_t * world);
void free_data(world_t * world); void clean_data(world_t * world);
#endif #endif
No preview for this file type
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "sdl2-light.h" #include "sdl2-light.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include "library/Display/Display.h" #include "library/Display/Display.h"
#include "library/World/world.h" #include "library/World/world.h"
...@@ -41,6 +42,7 @@ void handle_events(SDL_Event *event,world_t *world){ ...@@ -41,6 +42,7 @@ void handle_events(SDL_Event *event,world_t *world){
switch (event->key.keysym.sym) switch (event->key.keysym.sym)
{ {
case SDLK_d: case SDLK_d:
world->vaisseau->x += MOVING_STEP; world->vaisseau->x += MOVING_STEP;
break; break;
case SDLK_q: case SDLK_q:
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment