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 .
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 .
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
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.
bonsoir dsl pour le retard , voici le code :
Utilisation du clavier juste après le clique de la souris.
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; }
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.
Alors déjà plusieurs erreur de mémoire tu alloue avec les fonction
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 IMG_Load("fleche.jpg"); TTF_RenderText_Blended(police2, "RECHERCHES", couleurEcran);
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.
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; }
Pas vraiment tu dois faire comme ceci :
Si tu veux modifier lettre[0] :
Code : Sélectionner tout - Visualiser dans une fenêtre à part struct Alphabet alphabet;
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 struct Alphabet alphabet; alphabet.lettre[0] = x;
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; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager