Commit 248aa344 authored by vautrin33u's avatar vautrin33u
Browse files

Ajout de certaines fonctions de logique

parent 191f7cab
......@@ -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();
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment