IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[FAQ][SOURCE][SDL] Souris sous SDL


Sujet :

Contribuez

  1. #1
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut [FAQ][SOURCE][SDL] Souris sous SDL
    Questions pour la FAQ SDL :


    Comment définir un curseur personnel ?


    Si le curseur est en noir et blanc, on peut utiliser cette fonction :

    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);
    A noter que la largeur du pixel doit être un multiple de 8.

    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        // On enleve la souris actuelle
        SDL_ShowCursor(0);
    - On charge la souris comme si c'était une surface :
    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 : 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);
    Code à l'appui pour une source éventuelle :
    http://www.developpez.net/forums/sho...29&postcount=4

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Mes propositions de modification sous les citations du texte d'origine.

    Citation Envoyé par fearyourself
    A noter que la largeur du pixel doit être un multiple de 8.
    Notez que la largeur de l'image doit être un multiple de 8 pixels.

    Attention : à partir d'une certaine taille (variable selon l'environnement d'exécution), un bug d'affichage du curseur peut survenir. Pour l'éviter, il faut gérer vous-même le curseur (Voir Comment gérer soi-même le curseur de souris sous SDL ?)

    Citation Envoyé par fearyourself
    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 ?).
    Cette fonction permet de créer un curseur de souris en noir et blanc, d'une taille personnalisée. Si vous souhaitez créer un pointeur de souris en couleur, animé ou sans restriction de largeur, il faut utiliser une surface et désactiver la souris par défaut (Voir Comment gérer soi-même le curseur de souris sous SDL ?).


    Citation Envoyé par fearyourself
    Comment définir un curseur de souris personnel sous SDL ?
    Comment gérer soi-même le curseur de souris sous SDL ?

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Eusebe
    Notez que la largeur de l'image doit être un multiple de 8 pixels.

    Attention : à partir d'une certaine taille (variable selon l'environnement d'exécution), un bug d'affichage du curseur peut survenir. Pour l'éviter, il faut gérer vous-même le curseur (Voir Comment gérer soi-même le curseur de souris sous SDL ?)
    Je suis d'accord, je n'arrivais pas à le formuler sans dire que c'est SDL qui se planter (puisqu'on n'a aucune preuve...). Ta facon de le dire me convient...

    Jc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SDL][FAQ/Source] Comment savoir si le programme est actif ?
    Par fearyourself dans le forum Contribuez
    Réponses: 3
    Dernier message: 26/07/2007, 10h34
  2. [Programme] Jeu 2D sous SDL
    Par stilobique dans le forum Projets
    Réponses: 20
    Dernier message: 20/05/2007, 00h46
  3. Réponses: 4
    Dernier message: 02/01/2007, 11h20
  4. usage de SDL events sous Linux console
    Par morning_wind dans le forum SDL
    Réponses: 1
    Dernier message: 28/12/2006, 16h54
  5. [FAQ] [Source] [SDL] Nombre de fps
    Par fearyourself dans le forum Contribuez
    Réponses: 10
    Dernier message: 25/07/2006, 09h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo