Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // On parcoure la liste des plateformes
- for (t_object *tmp = decors->first; tmp != NULL; tmp = tmp->next)
- {
- // On définie la frame et la visibilité des sprites des plateformes ici
- if (((t_decor*)tmp->data)->sprite != NULL)
- {
- // Distance entre la plateforme et le centre de la tour
- platform_distance = abs(tower_center - (((t_decor*)tmp->data)->posx + ((t_decor*)tmp->data)->real_width/ 2));
- // Est on a gauche ou a droite du centre ? Flip le sprite selon
- if ((((t_decor*)tmp->data)->posx + ((t_decor*)tmp->data)->real_width/ 2) > tower_center)
- SPR_setHFlip(((t_decor*)tmp->data)->sprite, TRUE);
- else
- SPR_setHFlip(((t_decor*)tmp->data)->sprite, FALSE);
- // Calcul de la bonne frame a donner au sprite en fonction de la distance par rapport au centre de la tour
- u16 frameToset = ((t_decor*)tmp->data)->sprite->animation->numFrame - fix32ToInt(fix32Div(FIX32(platform_distance),FIX32(3.5)));
- if (frameToset >= 0 && frameToset < ((t_decor*)tmp->data)->sprite->animation->numFrame)
- {
- SPR_setFrame(((t_decor*)tmp->data)->sprite, frameToset);
- }
- // Si la plateforme va trop loin on la rend invisible
- if(((t_decor*)tmp->data)->posx < 12 || ((t_decor*)tmp->data)->posx > 238)
- SPR_setVisibility(((t_decor*)tmp->data)->sprite, 1);
- else
- SPR_setVisibility(((t_decor*)tmp->data)->sprite, 0);
- }
- // Déplacement de la plateforme
- if (players[0].yorder != 1)
- ((t_decor*)tmp->data)->posx -= players[0].xorder * 2;
- // On téléporte la plateforme de l'autre coté de la tour pour simuler un tour entier de déplacement
- if(((t_decor*)tmp->data)->posx >= 320){
- ((t_decor*)tmp->data)->posx = 1;
- } else if(((t_decor*)tmp->data)->posx <= 0){
- ((t_decor*)tmp->data)->posx = 319;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement