Planches ne bougeant pas ping pong SDL langage C
RésoluDouglasmcdo Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
- Planches ne bougeant pas ping pong SDL langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Port ping - Forum Windows
- Avoir du ping expression ✓ - Forum Réseau
- C est quoi un ping??????? - Forum Réseau
5 réponses
Ta planche est quelque part, tu dessines ta planche.
Ta planche va ailleurs, tu dessines ta planche.
Ce que tu vois, c'est tout ce que tu as dessiné!...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPhil_1857 à écrit :
Ne faudrait-il pas effacer puis ré afficher la planche à sa nouvelle position ?
Oui. Il faut même effacer l'écran avec SDL_RenderClear(), car SDL_RenderPresent() invalide le contenu du backbuffer sur lequel la SDL2 dessine.
https://wiki.libsdl.org/SDL_RenderPresent
Pour résoudre le problème, il faut donc :
- effacer le contenu du buffer avec la couleur de fond choisie (le noir) dans la boucle d'animation (en début de boucle)
SDL_SetRenderDrawColor(rendu, 0, 0, 0, 255); SDL_RenderClear(rendu);
- remettre la couleur de dessin au blanc choisi par Douglasmcdo avant de dessiner les "planches" (blanches)
SDL_SetRenderDrawColor(rendu, 255, 255, 255, 245) != 0; SDL_RenderFillRects(rendu, planche, 2);
Appeler SDL_RenderPresent() pour rendre (afficher) le contenu du buffer après qu'on ait dessiné ce qu'il fallait dedans, et avant de boucler de nouveau dans la boucle d'animation
SDL_RenderPresent(rendu);
(Douglasmcdo le faisait déjà)
Cela serait une bonne idée de temporiser la boucle pour éviter au programme de consommer trop de temps processeur, en faisant une gestion du temps avec SDL_GetTicks() et SDL_Delay(), mais déjà, avec les changements mentionnés ci-dessus, le programme SDL2 de Douglasmcdo devrait se comporter comme il l'attend.
Donc, le truc à comprendre c'est que l'écran est redessiné entièrement à chaque tour de la boucle d'animation.
C'est comme cela que tu donnes l'illusion que les éléments sur ton écran "bougent".
Mais normalement c'est pas les coordonnées qui définissent sa position ?
J'ai finalement découvert le problème : ma planche peut bouger mais laisse un tracé derrière elle