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

SDL Discussion :

(SDL_GetXState) Position d'un bmp


Sujet :

SDL

  1. #1
    Membre actif
    (SDL_GetXState) Position d'un bmp
    Voila j'ais remarqué que SDL propose une fonction assez sympathique pour recueillir la position du curseur de la souris.Cette fonction se présente sous la forme :

    int x;
    int y;

    SDL_GetMouseState(&x,&y);

    Ainsi , on peut utiliser cette fonction notamment pour se faire un curseur " customisé ". Mais ce n'est pas de cela dont je veux parler.
    Je me suis penché sur cette fonction et je me suis posé une question : est il possible de recueillir la position d'un .bmp en utilisant cette bete fonction ?
    J'ais essayé multiples bricolages et je ne vois toujours pas comment faire...

  2. #2
    Membre expert
    Voila j'ais remarqué que SDL propose une fonction assez sympathique pour recueillir la position du curseur de la souris.Cette fonction se présente sous la forme :

    int x;
    int y;

    SDL_GetMouseState(&x,&y);

    Ainsi , on peut utiliser cette fonction notamment pour se faire un curseur " customisé ". Mais ce n'est pas de cela dont je veux parler.
    Je me suis penché sur cette fonction et je me suis posé une question : est il possible de recueillir la position d'un .bmp en utilisant cette bete fonction ?
    J'ais essayé multiples bricolages et je ne vois toujours pas comment faire...
    Non, certainement pas avec cette fonction...

    Mais je n'ai pas bien compris ce que tu voulais faire... récupérer la position d'une image que tu as affichée avec la SDL ? Ou récupérer la position d'une surface ? Ou autre ?

  3. #3
    Expert éminent sénior
    Citation Envoyé par ironzorg

    Ainsi , on peut utiliser cette fonction notamment pour se faire un curseur " customisé ". Mais ce n'est pas de cela dont je veux parler.
    Je me suis penché sur cette fonction et je me suis posé une question : est il possible de recueillir la position d'un .bmp en utilisant cette bete fonction ?
    J'ais essayé multiples bricolages et je ne vois toujours pas comment faire...
    C'est une fausse question. Tout .bmp que tu afficheras a été fait par une fonction SDL ou par l'intermédiaire d'OpenGL.

    Au moment de faire l'affichage, tu as la position du .bmp affiché.

    Stocke le pour un usage futur.

    Ou n'ai-je rien compris à la problématique ?

    Jc

  4. #4
    Membre actif
    En fait je déclare le bmp comme étant une surface rectangulaire ( d'où le posPlayer.x=50; etc... ) et je voudrais que la position de cette surface soit stockée et actualisée à chaque mouvement du bmp.
    Exemple :
    SDL_Surface *player=NULL;
    SDL_Rect posPlayer;
    player=SDL_LoadBMP("./gfx/player.bmp");
    posPlayer.x=50;
    posPlayer.y=50;

    On considère la boucle qui fait se déplacer le personnage.
    Mon idée principale est de faire un truc du genre :
    if ( posPlayer.x == 52 )
    {
    une action ...
    }
    Seulement il faut d'abord que le prog récupère et estime posPlayer ...

  5. #5
    Membre expert
    A toi de le mettre à jour...
    De toutes façons, ta surface ne va pas se déplacer toute seule, il faut bien que ce soit toi qui lui indiques sa nouvelle position...

    Et j'ai l'impression que tu prend le problème à l'envers... Il ne faut pas que tu déduises la position de tes joueurs en fonction de l'image qui les représente, mais que tu les affiches en fonction de leur position...

  6. #6
    Expert éminent sénior
    Citation Envoyé par Eusebe
    A toi de le mettre à jour...
    De toutes façons, ta surface ne va pas se déplacer toute seule, il faut bien que ce soit toi qui lui indiques sa nouvelle position...

    Et j'ai l'impression que tu prend le problème à l'envers... Il ne faut pas que tu déduises la position de tes joueurs en fonction de l'image qui les représente, mais que tu les affiches en fonction de leur position...
    Entièrement d'accord. La position des joueurs est stockée quelque part et tu fait le rendu avec ces informations.

    Dans le code que tu montres, pour bouger le joueur c'est posPlayer qui serait modifié donc pas besoin d'estimer sa position...

    Regarde comment fonctionne le pong que j'ai fait. Cela te donnera sûrement les réponses que tu cherches :

    http://fearyourself.developpez.com/t...riel/sdl/pong/

    Jc

  7. #7
    Membre actif
    OK c'est bon j'ai identifié le probleme merci pour vos remarques