Skip to content
Snippets Groups Projects
Commit 248aa344 authored by vautrin33u's avatar vautrin33u
Browse files

Ajout de certaines fonctions de logique

parent 191f7cab
Branches
No related tags found
No related merge requests found
......@@ -34,4 +34,9 @@
* */
#define NB_INGREDIENT 5
/**
* \brief taille joueur
* */
#define SIZE_JOUEUR 50
#endif
\ No newline at end of file
......@@ -15,6 +15,10 @@ void init_data(world_t * world){ //faux
world->compteur_plats = 0;
world->score = 0;
world->attente = 0;
//Initialise le sprite du joueur en haut à gauche de l'écran, en état 0
init_sprite(&world->joueur, SCREEN_WIDTH*0.1, SCREEN_HEIGHT*0.1, SIZE_JOUEUR, SIZE_JOUEUR, SIZE_JOUEUR/2);
/*
init_sprite(&world->ship, SCREEN_WIDTH/2, SCREEN_HEIGHT-SHIP_SIZE, SHIP_SIZE, SHIP_SIZE, MOVING_STEP);
......@@ -42,6 +46,31 @@ int aleatoire (int a, int b){
return rand()%(b-a)+a;
}
void set_bas (sprite_t *sprite){
// Sprite va vers le bas
sprite->etat = 0;
}
void set_haut (sprite_t *sprite){
// Sprite va vers le haut
sprite->etat = 1;
}
void set_droite (sprite_t *sprite){
// Sprite va vers la droite
sprite->etat = 2;
}
void set_gauche (sprite_t *sprite){
// Sprite va vers la gauche
sprite->etat = 3;
}
int return_state (sprite_t *sprite){
//Retourne l'état du sprite
return sprite->etat;
}
void set_visible (sprite_t *sprite){
// Permet de rendre visible un sprite
sprite->is_visible=0;
......@@ -57,6 +86,30 @@ int estFini(world_t *world){
return world->gameover;
}
void limites_externes (sprite_t *sprite){
//Défini les limites selon les murs
if (sprite->x > (SCREEN_WIDTH*0.9)){
//mur droite
sprite->x = (SCREEN_WIDTH*0.9) - sprite->w/2;
}
if (sprite->x < (SCREEN_WIDTH*0.1)){
//mur gauche
sprite->x = (SCREEN_WIDTH*0.1);
}
if (sprite->y > (SCREEN_HEIGHT*0.9)){
//mur bas
sprite->y = (SCREEN_HEIGHT*0.9) - sprite->w/2;
}
if (sprite->y < (SCREEN_HEIGHT*0.1)){
//mur haut
sprite->y = (SCREEN_HEIGHT*0.1);
}
}
void gestion_events(SDL_Event *event, world_t *world){
SDL_PollEvent(event);
......@@ -67,13 +120,21 @@ void gestion_events(SDL_Event *event, world_t *world){
switch(event->key.keysym.sym){
case SDLK_ESCAPE:
world->gameover = 1; break;
/*Déplacement du joueur
//Déplacement du joueur
case SDLK_z:
set_haut(&world->joueur);
break;
case SDLK_s:
set_bas(&world->joueur);
break;
case SDLK_d:
set_droit(&world->joueur);
break;
case SDLK_q:
case SDLK_SPACE:
*/
set_gauche(&world->joueur);
break;
//case SDLK_SPACE:
}
}
}
......@@ -135,4 +196,5 @@ char** init_map (){
return tab;
}
*/
\ No newline at end of file
*/
......@@ -110,5 +110,48 @@ char** init_map ();
*/
void handle_collisions (world_t world, char** map);
/**
* @brief Indique que le sprite face le bas
*
* @param sprite
*/
void set_bas (sprite_t *sprite);
/**
* @brief Indique que le sprite face le haut
*
* @param sprite
*/
void set_haut (sprite_t *sprite);
/**
* @brief Indique que le sprite face vers la droite
*
* @param sprite
*/
void set_droite (sprite_t *sprite);
/**
* @brief Indique que le sprite face vers la gauche
*
* @param sprite
*/
void set_gauche (sprite_t *sprite);
/**
* @brief Retourne l'état du sprite
*
* @param sprite
* @return int valeur de l'état actuel du sprite
*/
int return_state (sprite_t *sprite);
/**
* @brief gestions des limites des murs
*
* @param sprite
*/
void limites_externes (sprite_t *sprite);
#endif
\ No newline at end of file
......@@ -103,3 +103,4 @@ test_lire_fichier();
test_generer_map();
test_lecture_map();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment