Questions pour la FAQ SDL :
Comment définir un curseur personnel ?
Si le curseur est en noir et blanc, on peut utiliser cette fonction :
A noter que la largeur du pixel doit être un multiple de 8.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SDL_Cursor * SDLCALL SDL_CreateCursor (Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);
Cette fonction permet d'avoir une souris en noir et blanc et d'un certain format. Cela peut suffir dans certains cas mais généralement, il est plus intéressant d'avoir une souris en couleur, animée ou n'ayant pas cette restriction de largeur. Ceci est possible en utilisant une surface et en désactivant la souris par défaut (Voir Comment définir un curseur de souris personnel sous SDL ?).
Comment définir un curseur de souris personnel sous SDL ?
La solution la plus portable et celle qui donnera le meilleur résultat est de définir une surface mouse qui contiendra l'image de la souris. Voici les morceaux de code importants pour avoir son propre curseur :
- La première chose à faire est de désactiver le curseur de base en utilisant :
- On charge la souris comme si c'était une surface :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // On enleve la souris actuelle SDL_ShowCursor(0);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // Pour la souris SDL_Surface *mouse = SDL_LoadBMP("cursor.bmp");
- Avant la fin du code de rendu, on ajoute :
Code à l'appui pour une source éventuelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int x,y; // On recupere la position de la souris SDL_GetMouseState(&x,&y); //On met a jour la structure rect rect.x = x; rect.y = y; //On met notre image de souris SDL_BlitSurface(mouse,NULL,ecran,&rect);
http://www.developpez.net/forums/sho...29&postcount=4
Partager