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 :

Plusieur evenement a la suite.


Sujet :

SDL

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Points : 4
    Points
    4
    Par défaut Plusieur evenement a la suite.
    Bonsoir a tous et bonne année, j ai besoin d aide voici mon probleme :

    quand je clic sur mon texte il disparait , et il y a une fleche en bas de la fenetre .
    C est la que je bloque : juste apres j ai besoin du clavier .

  2. #2
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 624
    Points : 1 558
    Points
    1 558
    Par défaut
    Bonsoir,

    Sans plus de précision et de source, ça va être dur-dur pour t'aider!
    Précise...

    Edgar

    EDIT: à moins que ça ne fasse partie de la discussion précédente?
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  3. #3
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je pense que c'est la continuité des posts précédents , mais il faut plus de détails parce que la ^^'
    Le problème que tu as est du a un mauvais code est pas un problème lié a la SDL en particulier.

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    bonsoir dsl pour le retard , voici le code :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL_ttf.h>
    #include <SDL_image.h>
     
    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *titre = NULL, *titre2 = NULL, *lettre[24],
        *fleche = NULL,
        *A = NULL;
        SDL_Rect positionTitre, positionTitre2, positionLettre[24],
        positionFleche,
        positionA;
        SDL_Event event;
        TTF_Font *police = NULL, *police2 = NULL;
        SDL_Color couleurNoire = {0, 0, 0}, couleurEcran = {216, 198, 160};
        int continuer = 1;
     
        SDL_Init(SDL_INIT_VIDEO); // Initialisation de la SDL
        TTF_Init();
     
        ecran = SDL_SetVideoMode(1240, 780, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); // Ouverture de la fenêtre
        SDL_WM_SetCaption("Pirates des Indes", NULL);
     
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 216, 198, 160));
     
        police = TTF_OpenFont("labuse.ttf", 15);
        police2 = TTF_OpenFont("labuse.ttf", 15);
     
     
        positionTitre.x = 450;
        positionTitre.y = 300;
        titre = TTF_RenderText_Blended(police, "RECHERCHES", couleurNoire);
        SDL_BlitSurface(titre, NULL, ecran, &positionTitre);
     
        while (continuer)
        {
        SDL_PollEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
     
                    case SDL_MOUSEBUTTONDOWN:
            if (event.button.button == SDL_BUTTON_LEFT)
            {
            if (event.button.x >= 450 && event.button.x <= 788
                && event.button.y >= 300 && event.button.y <= 320)
                positionTitre2.x = 450;
                positionTitre2.y = 300;
                titre2 = TTF_RenderText_Blended(police2, "RECHERCHES", couleurEcran);
                SDL_BlitSurface(titre2, NULL, ecran, &positionTitre2);
            {
            if (event.button.x >= 450 && event.button.x <= 788
                && event.button.y >= 300 && event.button.y <= 320)
     
                fleche = IMG_Load("fleche.jpg");
                positionFleche.x = 1100;
                positionFleche.y = 650;
                SDL_BlitSurface(fleche, NULL, ecran, &positionFleche);
                break;
            }
            }
            }
     
     
            SDL_Flip(ecran);
        }
     
        TTF_CloseFont(police);
        TTF_Quit();
     
        SDL_FreeSurface(titre);
        SDL_Quit();
     
        return EXIT_SUCCESS;
    }
    Utilisation du clavier juste après le clique de la souris.
    Et aussi je voudrais savoir comment on fait , pour mettre le clavier dans un fichier a part (modulaire), merci de bien vouloir m aide, juste le début.

  5. #5
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Alors déjà plusieurs erreur de mémoire tu alloue avec les fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IMG_Load("fleche.jpg");
    TTF_RenderText_Blended(police2, "RECHERCHES", couleurEcran);
    mais tu les libères pas ,donc y a dans ton code une fuite de mémoire (on plus dans ta boucle donc a chaque boucle + si les Evénement sont valide y a une fuite de mémoire).


    ton texte disparait parce qu'il est pas dans la boucle principal et
    le texte que tu as mis a la boucle principal et soumis a la condition tres precise évènement "if (event.button.button == SDL_BUTTON_LEFT)".

    Tu peux mettre l’évènement dans un autre fichier mais tu dois d'abord le mettre dans une fonction (en créant une structure Evenement par exemple).

    Bref tu dois plus pensé a mettre des booleen (variable Vrai/faux) , ça te permettra de régler ton problème ,celui de moduler ton code ,si on fait un clik droit ,une variable est vrai(1) sinon faux(0) pareil pour pour affichage de ton texte si on clique sur la flèche une variable devient vrai.

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Ok merci , pour les structures es ce que je peut mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    struct Alphabet
    {
    int lettre[24]
    };

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main(int argc, char *argv[])
    {
     struct Alphabet lettre[0]; 
     
    return 0;
    }

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Pas vraiment tu dois faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct Alphabet alphabet;
    Si tu veux modifier lettre[0] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    struct Alphabet alphabet;
    alphabet.lettre[0] = x;
    Mais je te conseille t'utilisé typedef , plus pratique pour le déclarer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    typedef struct
    {
       int lettre[24]
    }Alphabet;
     
    int main()
    {
         Alphabet alphabet;
         alphabet.lettre[0] = 0;
         return 0;
    }

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/03/2007, 11h50
  2. gérer plusieurs evenements sur checkbox
    Par nicerico dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/11/2006, 09h46
  3. [vba - excel] manipuler plusieurs fichers excels à la suite
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/09/2006, 16h11
  4. comment imbriquer plusieurs evenements
    Par nazimb dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 05/07/2006, 14h57
  5. [.bat][FOR][IF]executer plusieurs commandes a la suite
    Par ¤FRIX¤ dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 23/03/2004, 09h24

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