[lib SDL] Script C++ Pour Le Scrolling Automatique
03/09/2007 a 11h36 | 1408 hits
Les positions négatives avec la librairie SDL sont difficiles à gérer . Pour arriver à placer une surface à une position inférieure à 0, il faut utiliser une méthode appelé "Scrolling" . Pour ne pas ce soucier de ce défaut, voici un script qui fera tout automatiquement !
La fonction SDL_BlitSurface de la librairie SDL, de son vrai nom "SDL_UpperBlit" ne vous permet pas d'afficher des positions inférieures à 0 que ce soit sur l'axe x ou y .
Je vais tout d'abord vous expliquer comment palier ce problème .
Commençons tout d'abord par expliquer le prototype de la fonction SDL_BlitSurface, elle pourrait se résumer à cela :
SDL_BlitSurface(surface, partie_a_blitter, support, position_sur_le_support);
Tous ces paramètres sont des pointeurs ! Si position_sur_le_support.x < 0 alors position_sur_le_support.x = 0 (pareil pour position_sur_le_support.y) . En effet, puisque vous envoyez un pointeur, la fonction SDL_BlitSurface modifie sa valeur si elle est inférieure à 0 !
Le scrolling consiste donc à "blitter" que ce qui doit être blitté si il y a une position plus petite que 0 grâce au deuxième paramètre !
Vous ne voulez pas vous ennuyez à faire ceci (ce qui se comprend), voici donc un "patch" qui modifiera la fonction SDL_BlitSurface :
Télécharger :
SDL_BlitSurface.h [2ko]
Voici comment installer ce bout de code :
¤ Premièrement, rendez-vous dans le dossier des headers de la lib SDL (sur linux, c'est /usr/include/SDL/ et n'oubliez pas d'ouvrir le dossier en root !)
¤ Puis, déplacez le fichier téléchargé dans ce dossier
¤ Pour finir, dans vos sources, quand vous inclurez SDL.h, vous inclurez juste
après SDL_BlitSurface.h
exemple :
#include < SDL/SDL.h >
#include < SDL/SDL_BlitSurface.h >
Et le tour est joué ! vous pouvez désormais poser des surfaces à des positions négatives !
retour
lire/ajouter des commentaires [0]