Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
VAUTRIN Guillaume
Projet l2
Commits
24b555b7
Commit
24b555b7
authored
Dec 23, 2020
by
vautrin33u
Browse files
Interaction four / lavabo faite
parent
d008fe95
Changes
4
Hide whitespace changes
Inline
Side-by-side
Ressources/save.txt
View file @
24b555b7
This source diff could not be displayed because it is too large. You can
view the blob
instead.
constantes.h
View file @
24b555b7
...
...
@@ -11,7 +11,7 @@
//enum état pour décrire la direction du sprite
enum
etat
{
BAS
,
HAUT
,
DROITE
,
GAUCHE
,
MOBILE
,
FIXE
,
PORTE
,
POSE
};
enum
cuisson
{
INCONCERNE
,
FRIGO
,
FRAIS
,
SALE
,
PROPRE
,
CUIT
,
JETE
};
enum
cuisson
{
INCONCERNE
,
FRIGO
,
FRAIS
,
SALE
,
PROPRE
,
CUIT
,
CRU
,
JETE
};
/**
* \brief Largeur de l'écran
...
...
logique.c
View file @
24b555b7
...
...
@@ -223,6 +223,15 @@ void set_cuisson(sprite_t *ingre, int cuisson){
ingre
->
cuisson
=
cuisson
;
}
void
init_cuisson
(
sprite_t
*
sprite
){
if
(
sprite
->
nom
==
NOM_TOMATE
||
sprite
->
nom
==
NOM_SALADE
||
sprite
->
nom
==
NOM_CORNICHON
)
{
set_cuisson
(
sprite
,
SALE
);
}
if
(
sprite
->
nom
==
NOM_PAIN
||
sprite
->
nom
==
NOM_FROMAGE
||
sprite
->
nom
==
NOM_STEAK
)
{
set_cuisson
(
sprite
,
CRU
);
}
}
void
modif_position
(
sprite_t
*
sprite
,
int
x_move
,
int
y_move
){
//Ajoute les valeurs à la position actuelle d'un sprite
sprite
->
rect
.
x
+=
x_move
;
...
...
@@ -243,7 +252,6 @@ void handle_collision (sprite_t* spr_move, sprite_t* spr_fixed){
switch
(
return_state
(
spr_move
)){
case
BAS
:
//cas dans lequel le joueur descend 'à travers' un meuble
//spr_move->rect.y -= temp.h;
modif_position
(
spr_move
,
0
,
-
temp
.
h
);
break
;
...
...
@@ -474,10 +482,44 @@ void gestion_events(SDL_Event *event, world_t *world){
case
SDLK_SPACE
:
//Récupération des ingrédients du frigo
for
(
int
i
=
0
;
i
<
INGREDIENT_DISPO
;
i
++
){
if
(
has_interaction
(
&
world
->
joueur
,
&
world
->
frigo
)
==
SDL_TRUE
&&
has_collided
(
&
world
->
frigo
,
&
world
->
en_cuisine
[
i
])){
set_portable
(
&
world
->
en_cuisine
[
i
]);
handle_deplacement_ingredient
(
&
world
->
joueur
,
&
world
->
en_cuisine
[
i
]);
printf
(
"BOUH
\n
"
);
//Interaction avec le frigo (récupérer les éléments un par un)
sprite_t
*
ingredient
=
&
world
->
en_cuisine
[
i
];
sprite_t
*
joueur
=
&
world
->
joueur
;
if
(
has_interaction
(
joueur
,
&
world
->
frigo
)
&&
has_collided
(
&
world
->
frigo
,
ingredient
)
&&
return_state
(
ingredient
)
==
POSE
){
set_portable
(
ingredient
);
init_cuisson
(
ingredient
);
handle_deplacement_ingredient
(
joueur
,
ingredient
);
break
;
}
//Interaction avec le four
if
(
has_interaction
(
joueur
,
&
world
->
four
)
&&
has_collided
(
joueur
,
ingredient
)
&&
return_state
(
ingredient
)
==
POSE
&&
get_cuisson
(
ingredient
)
==
CUIT
){
//On retire un ingrédient du feu
set_portable
(
ingredient
);
handle_deplacement_ingredient
(
joueur
,
ingredient
);
break
;
}
if
(
has_interaction
(
joueur
,
&
world
->
four
)
&&
has_collided
(
joueur
,
ingredient
)
&&
return_state
(
ingredient
)
==
PORTE
&&
get_cuisson
(
ingredient
)
==
CRU
){
//On pose un ingrédient pour le cuire
set_posee
(
ingredient
);
set_cuisson
(
ingredient
,
CUIT
);
break
;
}
//Interaction avec le lavabo
if
(
has_interaction
(
joueur
,
&
world
->
lavabo
)
&&
has_collided
(
joueur
,
ingredient
)
&&
return_state
(
ingredient
)
==
POSE
&&
get_cuisson
(
ingredient
)
==
PROPRE
){
//On retire un ingrédient du lavabo
set_portable
(
ingredient
);
handle_deplacement_ingredient
(
joueur
,
ingredient
);
break
;
}
if
(
has_interaction
(
joueur
,
&
world
->
lavabo
)
&&
has_collided
(
joueur
,
ingredient
)
&&
return_state
(
ingredient
)
==
PORTE
&&
get_cuisson
(
ingredient
)
==
SALE
){
//On pose un ingrédient pour le laver
set_posee
(
ingredient
);
set_cuisson
(
ingredient
,
PROPRE
);
break
;
}
}
break
;
...
...
logique.h
View file @
24b555b7
...
...
@@ -284,6 +284,13 @@ int est_visible (sprite_t *sprite);
*/
void
init_data
(
world_t
*
world
);
/**
* @brief Initialise les cuissons à la sortie du frigo
*
* @param sprite
*/
void
init_cuisson
(
sprite_t
*
sprite
);
/**
* \brief retourne la valeur de fin de jeu (si 0: jeu continue)
* \param world les données du monde
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment