Salut à toi journal.
Petit problème de progrmmation avec la librairie SDL.
J'ai écrit (ou plutot tenté...), après lecture d'un tutoriel, une appli qui affiche à l'écran des carré de 15*15 pixels aux coords des 20 dernieres positions lorsque le bouton de la souris est enfoncé.
Ca marche quand je détecte SDL_MOUSEMOTION, mais pas avec SDL_MOUSEBUTTONDOWN
le code
while (SDL_PollEvent (&event))
{
switch (event.type)
{
case SDL_QUIT:
done = 1;
break;
case SDL_MOUSEMOTION:
break;
case SDL_MOUSEBUTTONDOWN:
if ( ((SDL_MouseButtonEvent*)&event) -> state == SDL_PRESSED) {
mouse_x[mouse_pos] = ((SDL_MouseButtonEvent*)&event)->x;
mouse_y[mouse_pos] = ((SDL_MouseButtonEvent*)&event)->y;
mouse_pos++;
if(mouse_pos == MAX_MOUSE_POS)
mouse_pos = 0;} else
break;
case SDL_MOUSEBUTTONUP :
break;
}
}
Le tableau mouse_x et y enregistrent les 20 dernières valeurs, on les affichent, pas de problème là dessus.
Ca marche pas tout à fait comme je veux : Je voudrais que les points s'affichent lorsque je RESTE cliqué.
Le problème c'est que mouse_pos ne s''incrémente que lorsque je relache le bouton.
Faut cliquer à chaque fois pour afficher un carré,
Merci aux courageux qui tenteront de répondre ! :o)
# Re: Pb de dev avec lib SDL.
Posté par Mathieu Pillard (site web personnel) . Évalué à 2.
En gros ce que tu peux faire donc c'est avoir une variable grab, l'initialiser lorsque t'as un SDL_MOUSEBUTTONDOWN, et l'enlever lors d'un SDL_MOUSEBUTTONUP, et a chaque tour de ta boucle faire du SDL_GetMouseState... ou utiliser SDL_MOUSEMOTION :)
# Re: Pb de dev avec lib SDL.
Posté par Christophe GRAND (site web personnel) . Évalué à 2.
Idem pour UP : l'èvènement correspond au relâchement.
Solution : soit GetState soit tu positionne un flag à 1 lorsque tu reçois DOWN, dans MOTION tu teste d'abord si flag==1, et dans UP tu remets ton flag à 0.
[^] # Re: Pb de dev avec lib SDL.
Posté par Mathieu Pillard (site web personnel) . Évalué à 1.
[^] # Re: Pb de dev avec lib SDL.
Posté par Ontologia (site web personnel) . Évalué à 1.
thx ! ;o)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.