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

SDL Discussion :

Comment assigner un evenement a une image?


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut Comment assigner un evenement a une image?
    Salut je voudrais savoir comment faire pour assigner un evenement a une image. par exemple :
    si l'utilisteur clike sur une surface précise alor le programme se ferme un peu pour remplacer la croix quand on utilise SDL_NOFRAME...

    Voila merci de m'aider

  2. #2
    Expert confirmé

    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par nooblender
    Salut je voudrais savoir comment faire pour assigner un evenement a une image. par exemple :
    si l'utilisteur clike sur une surface précise alor le programme se ferme un peu pour remplacer la croix quand on utilise SDL_NOFRAME...

    Voila merci de m'aider
    Je ne comprends pas ce que tu entends par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    le programme se ferme un peu
    Ensuite, il suffit de capturer l'événement dans la boucle événementielle et gérer le changement d'état, qu'est-ce que tu ne comprends pas ?

    Jc

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut
    le fichier se ferme un peu pour simuler la croix du SDL_HWSURFACE

  4. #4
    Expert confirmé

    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par nooblender
    le fichier se ferme un peu pour simuler la croix du SDL_HWSURFACE
    Cela n'a aucun sens. SDL_HWSURFACE permet de dire que les surfaces se trouve en mémoire video et non dans la RAM conventionnelle. Comment est-ce que cela fait intervenir un fichier qui se ferme un peu...

    Si tu veux une réponse correcte, il faudrait poser un problème de façon correct. Voici un plan que tu peux suivre, parce que pour le moment je suis toujours perplexe :

    - Introduction au problème
    - Problématique
    - Exemple d'application (avec screenshots si applicable)
    - Bout de code montrant son idée de base
    - Explication de pourquoi cela pose problème

    Jc

  5. #5
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par nooblender
    Salut je voudrais savoir comment faire pour assigner un evenement a une image. par exemple :
    si l'utilisteur clike sur une surface précise alor le programme se ferme un peu pour remplacer la croix quand on utilise SDL_NOFRAME...

    Voila merci de m'aider
    Avec la SDL, c'est à toi de tout gérer... Tu captures les événements, et c'est à toi de voir ce qu'il faut en faire.

    Dans ce contextre, tu captures un clic de souris. Il faut alors que tu vérifies si ce clic est réalisé sur ton image. Pour ça, tu récupères les coordonnées de la souris, et tu les compares aux coordonnées de ton image. Dans une interface plus complexe (ce qui est vite le cas), il faut que tu gères aussi les superposition d'images, voire la transparence...

    Ensuite, une fois que tu as vérifié que ton clic se faisait sur ton image, tu n'as plus qu'à exécuter la fonction de fermeture de ta fenêtre...

    Bien sûr, on peut rendre toute cette gestion générique, mais c'est un peu plus dur de l'expliquer en 5 lignes (d'autant qu'il y a plusieurs méthodes pour ça, et qu'en plus ça dépend du language utilisé).

  6. #6
    Expert confirmé

    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Eusebe
    Bien sûr, on peut rendre toute cette gestion générique, mais c'est un peu plus dur de l'expliquer en 5 lignes (d'autant qu'il y a plusieurs méthodes pour ça, et qu'en plus ça dépend du language utilisé).
    A savoir que dans mon jeu de morpion, je traite de gérer de façon générique le clic de la souris vu que je permets de positionner les cases du morpion à partir d'un fichier texte. nooblender, tu pourrais commencer par regarder là :

    http://fearyourself.developpez.com/tutoriel/sdl/morpion

    Jc

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut
    Voila ce que je ve faire :



    a la place de sa :



    PS: Cool , c sympa de m'expliquer comment faire mais ne pourriez vous pas m'aider en me montrant et en m'expliquant la fonction comme sa je saurais le faire a vie lol.

    Merci

  8. #8
    Expert confirmé

    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Ahhh voilà une explication claire de ce que tu recherches ...

    Voici une réponse :

    - Pour faire clignotter une image :
    Regarde ici, cela devrait t'aider :
    http://www.developpez.net/forums/sho...47&postcount=5

    Pour iconifier ta fenêtre, tu peux utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /*
     * This function iconifies the window, and returns 1 if it succeeded.
     * If the function succeeds, it generates an SDL_APPACTIVE loss event.
     * This function is a noop and returns 0 in non-windowed environments.
     */
    extern DECLSPEC int SDLCALL SDL_WM_IconifyWindow(void);
    Pour rendre en plein écran (ils disent que ce n'est pas implémenté sous X11, mais ma version de SDL le fait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    /*
     * Toggle fullscreen mode without changing the contents of the screen.
     * If the display surface does not require locking before accessing
     * the pixel information, then the memory pointers will not change.
     *
     * If this function was able to toggle fullscreen mode (change from
     * running in a window to fullscreen, or vice-versa), it will return 1.
     * If it is not implemented, or fails, it returns 0.
     *
     * The next call to SDL_SetVideoMode() will set the mode fullscreen
     * attribute based on the flags parameter - if SDL_FULLSCREEN is not
     * set, then the display will be windowed by default where supported.
     *
     * This is currently only implemented in the X11 video driver.
     */
    extern DECLSPEC int SDLCALL SDL_WM_ToggleFullScreen(SDL_Surface *surface);
    Enfin, pour associer un bouton à un événement, il faut parcourir les objets de ta fenêtre et voir où se trouve le clic et je t'ai déjà donné une piste pour cela,
    Jc

  9. #9
    Membre expérimenté Avatar de Sixissor
    Étudiant
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Par défaut
    Une petite remarque au passage: c'est pas "pour: tuer le temp" mais "pour: tuer le temps".

    Sinon ça a l'air pas mal

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par fearyourself
    Pour rendre en plein écran (ils disent que ce n'est pas implémenté sous X11, mais ma version de SDL le fait)
    Si justement, c'est implémenté sur X11 mais pas sous Windows
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
     * This is currently only implemented in the X11 video driver.
    ...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. comment associer une evenement a une image
    Par dalilnet dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/08/2009, 10h48
  2. [FLASH MX2004] Evenement sur une image...
    Par JulPoWeR dans le forum Flash
    Réponses: 9
    Dernier message: 14/06/2007, 11h17
  3. [Graphique] Comment compter les couleurs d'une image ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 27
    Dernier message: 16/02/2005, 18h17
  4. Comment mettre un label sur une image
    Par dug dans le forum MFC
    Réponses: 3
    Dernier message: 07/04/2004, 10h40
  5. Comment copier un bitmap d'une image à une autre?
    Par gord's dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2003, 13h07

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