Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C > Saisir du texte avec SDL? > Lecture du sujet

Saisir du texte avec SDL?

Voici MA solution

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2  3  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1  2  3  Suivante
Hors ligne Vhann # Posté le 18/03/2008 à 06:51:45
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
EDIT 22 Août 2008: J'ai ouvert un nouveau sujet pour présenter la version 2.0.0. Si vous êtes intéressés, c'est par ici.

EDIT 7 Août 2008: Je viens de me remettre au codage de la version 2.00.
La version actuellement disponible ( 1.03 ), décale tout ce qui est à l'écran lorsqu'on ouvre une zone de saisie.
Ce bug sera corrigé lorsque la version 2.00 sortira. En attendant, je retire les liens vers Badongo qui, de toutes façons, semble obliger les utilisateurs à payer pour télécharger...

EDIT 26 Juin 2008: Version 1.03 sortie. Voici les changements:
-Correction des noms de fichiers (SDL_input -> SDL_Input) qui causaient des problèmes aux utilisateurs à cause de la casse du "Input".
Tout ce qui a trait à la SDL_Input s'appelle maintenant SDL_Input.
-Correction du nombre d'octets alloués lors de l'allocation de SDL_Input->chaine (sizeof( SDL_Input->chaine ) -> sizeof( *SDL_Input->chaine )).
-Correction du bug qui plaçait un '\0' à l'endroit du curseur lors de l'appui sur entrée (ce qui coupait la chaîne si le curseur n'était pas à la fin de la chaîne).
-Correction des quelques avertissements que la version 1.02 donnait.
-Ajout de la version de la bibliothèque (SDL_INPUT_VERSION)
Autres nouveautés:
-Upload du tarball (Linux): RETIRÉ
-Upload du rarfile (Windows): RETIRÉ
Attention: Avec Windows, j'ai dû mettre le fichier de bibliothèque statique dans le dossier SDL de CodeBlocks (C:\Program Files\CodeBlocks\MinGW\SDL\lib chez moi) pour que ça fonctionne (le mettre dans le même dossier ne fonctionnait pas).

Attention 2: N'oubliez pas de "link'er" libSDL_Input.a au projet.

----
Les changements à venir sont:
-Texte défilant (définition d'un zone de largeur X pouvant contenir un texte plus long que X)
-Possibilité de définir la largeur et la hauteur de la zone de texte (SDL_Input->position.w/h)
-Des exemples (snippets) d'utilisation de la bibliothèque dans la documentation
-Faire la documentation au format html
-Possiblement ajouter la possibilité de copier/coller/couper en se servant du presse-papiers (à voir).

Faudrait que je songe à créer un site perso pour tout ça (question d'arrêter de bouffer tous l'espace disque des serveurs du SdZ :lol: (me reste plus qu'à apprendre xHTML/PHP plus sérieusement :p ))

Les éditions précédentes infos concernant les versions précédentes sont ici (pour ceux que ça intéresse :-° )

Nota: le projet prend maintenant le nom de SDL_Input.

La documentation est ici

Le code source est ici

----------------------------------------Post originel---------------------------------------------------

Bonjour à tous,

il y a longtemps (très longtemps!), j'avais commencé une fonction de saisie pour la SDL (que j'ai probablement posté quelque part sur ce forum). Enfin, j'ai remarqué récemment que beaucoup de Zér0s cherchent à saisir du texte avec la SDL. J'ai donc déterré les vestiges perdus de ma fonction et je me suis mis en tête de la rendre potable.

Bref, c'est chose faite, ma petite bibliothèque de saisie en SDL fonctionne. J'ai encore beaucoup à faire dessus (les saisies multilignes ne sont pas encore gérées, je dois encore travailler sur la documentation des fonctions, etc.

Enfin, toujours est-il que je la mets à disposition des Zér0s qui souhaiteraient s'en servir.

La bibliothèque propose pas mal d'options intéressantes (enfin, selon moi :lol: ):
  • -La bibliothèque gère l'unicode, il n'y a donc pas de problème avec les claviers AZERTY\QWERTY et cie.
  • -Il est possible d'effacer la saisie avec [RETOUR ARRIERE] (backspace) ainsi qu'avec [SUPPR.] (del).
  • -Lors de l'effacement, la surface située sous la saisie est "restorée", c'est-à-dire que la fonction s'occupe elle-même de rafraîchir la zone de saisie.
  • -J'ai implémenté un curseur, qu'il est possible de positioner dans la saisie pour aller éditer les premières lettres sans pour autant devoir tout effacer (ce fut plus difficile que je ne l'aurais cru, mais ça fonctionne :D ).
  • -La fonction permet de définir quel fonction TTF utiliser (RenderUTF8_Solid, Shaded ou Blended)
  • -Possibilité d'arrêter une saisie et de la continuer plus tard (c'est-à-dire que la chaîne est conservée dans l'état ou elle était auparavant) ou bien, a contrario, de vider la chaîne et de reprendre de zéro.
  • L'utilisation de structures permet d'avoir plusieurs chaînes en mémoire en même temps et de les organiser comme bon vous semble
  • -Et plein d'autres choses que je vous laisse découvrir


Et surtout, surtout, ne vous gênez pas pour commenter le code: si mes fonctions sont trop longues, si certaines parties semblent obscures, inutiles, etc.

Merci d'avance.
Cordialement,
Vhann.
Édité le 22/08/2008 à 06:36:56 par Vhann

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Fvirtman # Posté le 18/03/2008 à 10:32:57
Avatar
Groupe : Membres
GG, je pense que tu vas faire des heureux ! :)

--- "Toute tâche répétitive est automatisable..." ---
Tuto C/C++ basés sur des exemples :
http://perso.numericable.fr/~fvirtman/info/tuto/index.html
Mes programmes a peu pres finis :
http://perso.numericable.fr/~fvirtman/progs/index.html
 
Hors ligne Vhann # Posté le 19/03/2008 à 01:10:21
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
EDIT: Je vais me servir de cette réponse pour lister les changements apportés (puisque mon autre post est déjà trop long pour ma connexion Internet :lol: ):
Secret (cliquez pour afficher)

EDIT 9 Juin 2008: La bibliothèque compile parfaitement, malgré quelques avertissements (warnings) concernant le signe de la chaîne de caractères. Cependant, ces avertissements sont nécessaires puisqu'il est uniquement possible de conserver des caractères accentués dans un tableau de "unsigned char". Pour ceux que ceci dérange, il vous suffit de suivre <lien url="http://www.siteduzero.com/tuto-3-10623-1-creer-des-bibliotheques-avec-code-blocks.html">l'excellent tuto de seb13 pour compiler la bibliothèque</lien>.

EDIT 4 Juin 2008: Apparement, le code fonctionne parfaitement. Rapellez-vous qu'avec le main() de test il faut appuyer sur la touche '1' pour voir la zone de texte apparaître (ahh, ces utilisateurs :lol: ).

EDIT 28 Mai 2008: Attention, un utilisateur m'a informé que la bibliothèque plantait. Je ne peux pas actuelleement tester, ayant réinstallé ma Linux (je n'ai pas pensé à installer SDL et SDL_ttf). En ce moment, je n'arrive pas à me connecter à Internet via mon modem (donc impossibilité de vérifier tout ça) (je suis sur un autre ordinateur en ce moment). Je crois que le problème vient de la différence d'encodage entre Linux et Windows. Désolé à tous du contre-temps :( .

EDIT 27 Mai 2008 (2): J'ai décidé d'utiliser des ancres vers mes autres posts pour rapetisser ce post. Dès que j'aurai une connexion Internet fonctionnelle sur ma Linux, je vais upload'er les fichiers sur un site d'upload (fichiers sources, fichier de bibliothèque .a, Documentation).

EDIT 27 Mai 2008: Et voici la documentation :D ! Attention, il est possible qu'il y ait quelques erreurs d'encodage dans les sources et d'autres problèmes de ce type, puisque je n'ai pas encore réussi à configurer mon modem sous Linux ce qui m'oblige à utiliser un autre ordinateur sous Windows (donc problèmes d'encodage etc).

EDIT 20 mai 2008: Version 1.02: il est maintenant possible d'afficher des caractères accentués.

EDIT 19 mai 2008: je sors maintenant la version 1.01! Même si j'ai encore plein d'idées d'améliorations et de choses à faire, j'espère que ça vous plaira.

Nouveautés de la version 1.01:
-Plus aucun arrêt du programme par la bibliothèque (sauf si vous le faites exprès). C'est-à-dire qu'il n'y a plus trace de "exit( -1 );" dans le code. Toutes les fonctions qui peuvent planter retourne maintenant un code d'erreur qu'il vous appartient de gérer.
-Les touches «Début» ('HOME') et «Fin» ('End') sont maintenant gérées
-Quelques fonctions ajoutées
-Meilleure gestion du "poll'ing"
-La bibliothèque est maintenant disponible sous forme de bibliothèque (fichier .a) [version Linux x86] (merci à seb13 pour son tuto sur le sujet :) )

19 mars 2008: Correction de l'erreur de compilation provoquée par le changement des noms des fichiers sans changer leur référence dans le code (le projet devrait compiler sans erreur maintenant). Si votre compilateur vous indique une/des erreurs, merci de me le signaler sur ce sujet ou via MP.

19 mars 2008: Bug découvert (et corrigé) qui n'empêchait pas la compilation, mais provoquait un buffer overflow lorsqu'on appelait saisirSDL la 2e fois.

20 mars 2008: Bug découvert (et corrigé) qui plantait le programme lorsque l'utilisateur tappait plusieurs touches par secondes tout de suite après avoir appellé saisirSDL(): le bug était dû au fait que la police de caractère (TTF_Font*) était déclarée dans le prototype de la fonction comme un pointeur constant ce qui, apparement, faisait planter TTF_SizeText(). Le pointeur n'est plus déclaré constant, mais ne sera pas modifié pas la fonction, ne vous en faites pas ;) .

20 mars 2008: Bug découvert: le programme plantait dû à un oubli de ma part: j'avais oublié de réserver une case-mémoire pour le caractère de fin de chaîne ('\0'). Le programme plantait lorsqu'il essayait de libérer cette case donc (corrigé).

20 mars 2008: Bug découvert: Il pouvait arriver que le programme libère deux fois de suite le même emplacement mémoire, provoquant une erreur de segmentation.

20 mars 2008: Ajout: Remise systématique des pointeurs à NULL une fois libérés (corrige le bug ci-haut mentionné).

20 mars 2008: Bug découvert: Écrire du texte pour ensuite l'effacer en alternant "retour arrière" et "supprimer" provoquait une erreur de segmentation dûe à test (if) incomplet (corrigé).

20 mars 2008: Je n'ai pas réussi à faire replanter le programme. J'imagine donc que toutes les erreurs ont été corrigées.


@Fvirtman:
Merci de ton soutien :) !

J'espère surtout avec des commentaires/réponses :) (pour savoir quels points sont à améliorer).

P.S.: GG = Go Go? Good G... ?

Cordialement,
Vhann.
Édité le 26/06/2008 à 20:43:09 par Vhann

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne maxima # Posté le 19/03/2008 à 15:39:17
Code, code et code
Avatar
Groupe : Membres
Good Game ^^ Je voulais tenter de faire une fonction de saisie avec SDL mais la plus la peine ;) (j'ai pas encore testé mais dés que je fait un projet sous SDL je teste ^^ )

Cela ne rend pas plus intelligent, mais ça rend moins con - MaXimA
 
Hors ligne siine # Posté le 19/03/2008 à 18:54:25
Avatar
Groupe : Membres
Salut,

GG ou good game, ou GaGné en l’occurrence et avec une mauvaise traduction fr ^^

Ca semble vachement sympa en tous cas, ca mérite à mon avis plus qu’un post sur le forum. Une petite page web dédiée serait la bienvenue!

Donc bravo et merci ca va être bien utile :D
Hors ligne Vhann # Posté le 20/03/2008 à 02:59:09
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Documentation (SDL_Input Documentation.odt):
**RETIRÉ**

------------------
Message d'origine:

Ça signifie pas d'erreur lors de la compilation ça? :D

Sinon, je ne considère pas le projet assez important pour faire une page web. Il faut d'abord que je termine. C'est-à-dire gérer la saisie multiligne ( définir un "message box" et "clip'per" l'affichage en fonction de ce rectangle), créer une documentation sous forme de pages html, gérer correctement les erreurs dans la bibliothèque (renvoi d'une valeur d'erreur plutôt qu'un simple exit( -1 )) et peut-être plus qui sait.

Enfin, merci de vos réponses, c'est plaisant de savoir que ça sera utile à quelqu'un :) .

Cordialement,
Vhann.
Édité le 01/09/2008 à 18:16:15 par Vhann

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne groscask # Posté le 20/03/2008 à 11:29:56
Groupe : Membres
Au passage, si tu veux un truc un peu "joli" :
Code : C - Afficher / masquer les numéros de ligne
  1. int saisirCaractereSDL( int saisieBloquante, int *caractereSaisi, int *touche ) {
  2.     int caractereAffichable = 0;
  3.     SDL_Event event;
  4.     int (*GetEvent)(SDL_Event *) = saisieBloquante ? SDL_WaitEvent : SDL_PollEvent;
  5.  
  6.     do {
  7.        /* Cela revient avec ton if, sauf que le test est fait une fois
  8.         * pour determiner quel est la fonction a appeler.
  9.         */
  10.        GetEvent( &event );
  11.        ...
  12.     }
  13.     ...
  14. }


En espérant que je ne me sois pas trompé. Je trouve simplement cela plus esthétique, niveau perf, j'en ai aucune idée ^^'. A vue de nez, je dirais que tu n'y perds pas.
Hors ligne Vhann # Posté le 20/03/2008 à 17:19:57
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Si j'ai bien compris ton exemple groscask, il s'agit en fait de créer un pointeur de fonction nommé GetEvent qui prend comme argument un pointeur sur "SDL_Event" (tout comme les deux fonctions SDL_WaitEvent() et SDL_PollEvent() ?

Déjà, si j'ai bien compris, ça reste pas clair pour moi: comment le compilateur sait-il qu'il s'agit d'une fonction et non pas d'une variable (puisque les parenthèses sont absentes)? Pourquoi ne pas plutôt faire &SDL_WaitEvent( NULL ) ?

Sauf pour atexit( ), je n'utilise pas les pointeurs de fonctions.

Merci de ta contribution toutefois.

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne groscask # Posté le 20/03/2008 à 20:08:59
Groupe : Membres
Oui c'est exactement cela !
Citation : Vhann

Déjà, si j'ai bien compris, ça reste pas clair pour moi: comment le compilateur sait-il qu'il s'agit d'une fonction et non pas d'une variable (puisque les parenthèses sont absentes)? Pourquoi ne pas plutôt faire &SDL_WaitEvent( NULL ) ?


Cela est dû à deux choses :
- Primo, la syntaxe de la déclaration un peu particulière :
Code : C - Afficher / masquer les numéros de ligne
  1. int (*GetEvent)(SDL_Event *);

Vient de la priorité des opérateurs... Ce n'est donc là qu'une question de syntaxe et d'habitude au final.
- Secundo, le nom d'une fonction représente également son adresse en C. D'où l'absence du & classique. Note bien que cette syntaxe est également admise !

Cordialement,
G.csk
Hors ligne Vhann # Posté le 20/03/2008 à 20:42:49
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
D'accord, merci de la précision.

Je vais tester tout ça, mais plus tard, car la bibliothèque est (enfin!) en version stable. :)

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne maxima # Posté le 05/04/2008 à 20:01:18
Code, code et code
Avatar
Groupe : Membres
j'ai moi même créé ma lib pour faire des champ de saisie mais pour mes applications SDL/OpenGL

J'utilise les même fonctionnalités que les tiennes mais je vais rajouté la possibilité de selection et de Copier/Coller
puis je tenterais l'overflow (barre de défilement (gauche/droite) )

Si quelque veut les sources je veut bien les montrer

Edit : j'ai ajouter maintenant le défilement

PS: j'utilise la SDL (pas SFML) en C++
Édité le 06/04/2008 à 01:22:11 par maxima

Cela ne rend pas plus intelligent, mais ça rend moins con - MaXimA
 
Hors ligne Vhann # Posté le 06/04/2008 à 03:09:06
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Citation : maxima
j'ai moi même créé ma lib pour faire des champ de saisie mais pour mes applications SDL/OpenGL

J'utilise les même fonctionnalités que les tiennes mais je vais rajouté la possibilité de selection et de Copier/Coller
puis je tenterais l'overflow (barre de défilement (gauche/droite) )

Si quelque veut les sources je veut bien les montrer

Edit : j'ai ajouter maintenant le défilement

PS: j'utilise la SDL (pas SFML) en C++


Hum, l'utilisation du "clipboard" m'intéresse. Est-ce que ton projet est portable ou bien utilise-t-il l'API Windows? Je serais curieux de connaître comment on envoie une chaîne à Klipper et associés (équivalents du Windows "clipboard").

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Gigotdarnaud # Posté le 06/04/2008 à 10:34:35
Avatar
Groupe : Membres
Hum, ça m'a l'air hyper intéressant ça ! Je test et je te dis ce que j'en pense...

J'ai fait une fonction qui gère les menus en SDL, personnellement. Il faudrait un gros topic épinglé avec toutes les fonctions SDL crées par les membres pour se simplifier la vie ^^.
Hors ligne maxima # Posté le 06/04/2008 à 13:19:33
Code, code et code
Avatar
Groupe : Membres
Oui c'est sûr faudrait en parler à un modérateur pour faire un sujet comme celui là

On pourrait y mettre plein de fonction SDL pour : gerer les menus, gerer les champs textes, gerer les grands champs de saisie, gerer les cases à cochers etc... ;)

Edit (pas vu le message de vhann) : je suis en train de faire ma fonction Copier/Coller, j'ai fait ceci mais ça ne sera pas portable c'est ça le principale problème, faudrait avoir pour faire les mêmes fonctions avec un système Unix et MacOS

PS: les fonctions ne sont pas de moi ^^

Code : C++ - Afficher / masquer les numéros de ligne
  1. #include <windows.h>
  2.  
  3. #define REDIRECT_IF(condition, label) if(condition) goto label
  4.  
  5. #define EXIT_LABEL local_exit
  6. #define EXIT_IF(condition) REDIRECT_IF(condition, EXIT_LABEL)
  7.  
  8. char const *GetClipboardText()// Coller
  9. {
  10.     char *text = NULL;
  11.  
  12.     EXIT_IF(!IsClipboardFormatAvailable(CF_TEXT));
  13.  
  14.     EXIT_IF(!OpenClipboard(NULL));
  15.  
  16.     {
  17.         char *textMem = (char*)GetClipboardData(CF_TEXT);
  18.  
  19.         /* delete devra être utilisé une fois le texte utilisé */
  20.         text = new char[lstrlen(textMem)+1];
  21.         lstrcpy(text, textMem);
  22.     }
  23.  
  24.     CloseClipboard();
  25.  
  26.     EXIT_LABEL:
  27.         return text;
  28. }
  29.  
  30. int SetClipboardText(char const *text)// Coppier
  31. {
  32.     int ret = 0;
  33.  
  34.     HANDLE hGlobalMem = GlobalAlloc(GHND, lstrlen(text)+1);
  35.     char *lpGlobalMem = NULL;
  36.  
  37.     EXIT_IF(hGlobalMem == NULL);
  38.  
  39.     lpGlobalMem = (char*)GlobalLock(hGlobalMem);
  40.  
  41.     EXIT_IF(lpGlobalMem == NULL);
  42.  
  43.     lstrcpy(lpGlobalMem, text);
  44.  
  45.     GlobalUnlock(hGlobalMem);
  46.  
  47.     EXIT_IF(!OpenClipboard(NULL));
  48.  
  49.     EmptyClipboard();
  50.  
  51.     if(SetClipboardData(CF_TEXT, hGlobalMem) != NULL)
  52.         ret = 1;
  53.  
  54.     CloseClipboard();
  55.  
  56.     EXIT_LABEL:
  57.         return ret; /* 1 : Succeed, 0 : Failure */
  58. }


PS² : j'essaie de trouver quelque chose pour accepter la saisie de caractere spécial ( é, à, è...) dans ma classe de Saisie si vous avez une idée...
Édité le 06/04/2008 à 13:34:39 par maxima

Cela ne rend pas plus intelligent, mais ça rend moins con - MaXimA
 
Hors ligne Vhann # Posté le 10/04/2008 à 16:26:50
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
(La dernière réponse date d'il y a longtemps, mais je viens de la remarquer).

Maxima, je ne comprends pas pourquoi tu viens faire de la publicité pour ton code ici:

1- C'est en C++ alors que ce forum est un forum C.
2- Je remarque qu'il y aurait beaucoup à critiquer sur la fonction que tu as trouvé sur le net: (non-portable, utilisation de goto & labels)

Du fait que ta lib (sic!) soit en C++ et ma bibliothèque en C, elles sont toutes deux complémentaires et non en compétition -c'est l'impression que ta première *deuxième* réponse me laisse.

Donc, je crois que tu devrais plutôt poster pour ta bibliothèque dans le forum C++.

Cordialement,
Vhann.
Édité le 10/04/2008 à 16:32:09 par Vhann

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne aska990 # Posté le 09/05/2008 à 01:06:33
Je vais manger moult frites !
Avatar
Groupe : Membres
ouah thank you Vhann c'est ce que je cherchais
ça va être super pour entrer les noms des joueurs dans un tableau de score par exemple :)
 
Hors ligne Vhann # Posté le 09/05/2008 à 02:10:19
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Content que ça te plaise :) .
Je devrais publier une prochaine version bientôt (avec garbage collector :p ).

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Vhann # Posté le 19/05/2008 à 12:09:16
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Pour ceux que ça intéresse, je viens de sortir la nouvelle version (1.01).

EDIT: le garbage collector a été abandonné bien que parfaitement fonctionnel puisque inutile.

Cordialement,
Vhann.
Édité le 19/05/2008 à 12:10:24 par Vhann

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Vhann # Posté le 20/05/2008 à 18:19:24
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Je ne sais pas si mon projet en intéresse certains, mais les caractères accentués sont maintenant parfaitement gérés (et la compilation ne produit aucun warning).

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Nakio # Posté le 20/05/2008 à 19:20:56
C != C++
Avatar
Groupe : Membres
Bien sûr que si ça intéresse ! Très utile, bien coder, parfait ! ^^ Merci beaucoup Vhann je suis sur que ça vas en aider plus d'un !

Age: 15ans
Profession: Lycéen à mes heures perdu.
Passions: Amis, Guitare, Parapente, Programmation
Musique: Mon groupe: Spiritual Popcorn
Langages: C/C++, xHTML, PHP, et d'autres...
OS: Ubuntu 8.04 / Windows XP Coccinelle
 
Hors ligne Vhann # Posté le 20/05/2008 à 19:59:05
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Et bien merci Nakio, c'est encourageant de recevoir des commentaires (qu'ils soient positifs ou négatifs).

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Gigotdarnaud # Posté le 20/05/2008 à 20:03:37
Avatar
Groupe : Membres
Je n'en ai pas l'utilitée pour l'instant, mais ta lib pourrait m'être utile un jour ^^.
Par contre, tu devrai soit fournir le .a et un .h, soit fournir une archive avec les sources...
Hors ligne madmax02 # Posté le 20/05/2008 à 20:04:30
Groupe : Membres
serait-il possible d'avoir le projet compiler pour windows ou alors un tuto pour le compiler avec CodeBlock

Avancement Super Mario: |||||||||||||||||||| 10%
 
Hors ligne Vhann # Posté le 20/05/2008 à 20:19:14
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
@gigotdarnaud: Les sources sont là (en secret pour ne pas encombrer la page). Pour le .a, il me faudrait un endroit (les sites comme megaupload sont peu fiables pour assurer la pérennité d'un lien de téléchargement). Je pense traduire la bibliothèque et la proposer sur le site de la SDL (on verra s'ils en veulent ou pas) une fois que j'aurais terminé la documentation.

@madmax02: Tu peux soit aller voir le tuto de seb13 dans Tutoriels->Non officiels->Programmation->C->Créer des bibliothèques avec Code::Blocks ou bien tu peux tout simplement créer des fichiers SDL_input.h, SDL_inputAfficher.c, SDL_inputGestion.c, les ajouter à tes projets, puis copier le code posté ici dedans.

Cordialement,
Vhann.


"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Masado # Posté le 25/05/2008 à 20:48:04
I'm a noob =)
Groupe : Membres
Salut, j'ai un petit soucis, j'ai eu beau lire tout ton code, je n'arrive pas a récupérer la saisie dans un tableau de type char.

Donc j'ai éssayé
Code : C
1
2
3
4
5
while (i <= 24)
{
    info->nomGolf[i] = saisie->chaine[i];
    i++;
}


mais je n'arrive a rien ...
Édité le 25/05/2008 à 20:51:18 par Masado

Mon projet achevé : Alphator

Jeu réalisé en C++ a l'aide de la SDL. Version actuelle : 1.1.


 
Hors ligne Vhann # Posté le 26/05/2008 à 04:02:46
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
Citation : Masado
Salut, j'ai un petit soucis, j'ai eu beau lire tout ton code, je n'arrive pas a récupérer la saisie dans un tableau de type char.

Donc j'ai éssayé
Code : C
1
2
3
4
5
while (i <= 24)
{
    info->nomGolf[i] = saisie->chaine[i];
    i++;
}


mais je n'arrive a rien ...


le code plus approprié serait sûrement:
Code : C
1
2
3
for( i = 0; saisie->chaine[ i ] != NULL; i++ ) {
info->nomGolf[ i ] = saisie->chaine[ i ];
}


En déclarant info->nomGolf comme étant une chaîne de unsigned char, ça devrait fonctionner (je ne suis pas sur le bon ordinateur, mais je tester pour être certain que ça fonctionne aussitôt que possible).

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Masado # Posté le 26/05/2008 à 19:36:01
I'm a noob =)
Groupe : Membres
Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
case SDL_KEYDOWN:
                if( event.key.keysym.sym == SDLK_1 )
                 {
                    erreur = SDL_InputSaisir( saisie, ecran, police, &couleurTexte,
                            &couleurFond, SDL_INPUT_FOND_UNI, 1 );

                    fprintf(stderr, "erreur = %ld", erreur);

                    for( i = 0; saisie->chaine[ i ] != NULL; i++ )
                    {
                        info->nomGolf[ i ] = saisie->chaine[ i ];
                    }


                            SDL_Flip(ecran);
                }
                break;


voilà apparemment j'entre pas dans la boucle d'event car mon fichier stderr ne se rempli pas lorsque j'appuye sur une touche alors que tout les autres evenements fonctionnent ^^

EDIT :

J'ai trouvé l'erreur, elle vient du main que tu fournis

tu as écrit :

Code : C
1
if( event.key.keysym.sym == SDLK_1 )


au lieu de :

Code : C
1
if( event.key.keysym.sym )


Sans ca, mon code marche a la perfection

EDIT2 :

Voilà que je rencontre a nouveau un probleme, a chaque fois que je presse la touche entrée, (suivez bien ^^) ma fenêtre ne bouge pas mais ce qui est a l'interieur se déplace en bas a droite, ce qui fait que ce qui est en bas a droite disparait de l'écran ... J'ai en fait éssayé de modifier la position du texte mais je trouve pas la bonne variable =D
Édité le 26/05/2008 à 20:23:46 par Masado

Mon projet achevé : Alphator

Jeu réalisé en C++ a l'aide de la SDL. Version actuelle : 1.1.


 
Hors ligne Vhann # Posté le 27/05/2008 à 08:29:01
VIM Has Anything u Need, Nerd
Avatar
Groupe : Membres
"if( event.key.keysym.sym == SDLK_1 )" c'est pour ne pas activer la saisie à chaque frappe de touche (quand on "debug", ça va mieux comme ça :lol: ).

Sinon, pour modifier l'emplacement du texte, c'est [structure SDL_Input]->position.x ( et/ou .y ).

Pour le reste, je ne crois pas que le problème soit dû à ma bibliothèque.

P.S.: Oui, je sais, il manque une documentation pour tout ça parce que là vous devez parcourir mon code pour pouvoir l'utiliser, mais c'est long et ennuyant écrire une doc :p (ok ok, je m'y mets :lol: ).

Cordialement,
Vhann.

"root@darkstar:~# fortune
There once was an old man from Esser,
Who's knowledge grew lesser and lesser.
It at last grew so small, [He knew nothing at all,
And now he's a College Professor" :lol:
Saisir du texte avec SDL facilement? C'est ici (SDL_Input)
Vous voulez rire?
-Internet Explorer ne plante jamais
-Google WTF?!?
-BSOD, le meilleur jeu sous Windows
Amusez-vous :D
 
Hors ligne Masado # Posté le 27/05/2008 à 18:17:11
I'm a noob =)
Groupe : Membres
Salut, pourrait - tu donner un exemple car j'ai éssayé ca

Code : C
1
2
saisie->position.x = 20;
   saisie->position.y = 150;


mais ca bug toujours, l'interieur de l'écran se déplace en bas a droite donc tout se décale , mon champ d'écriture est la ou je veux mais le reste du texte s'enfuit ^^ donc voilà. Sinon merci pour cette bibliothèque :)

Mon projet achevé : Alphator

Jeu réalisé en C++ a l'aide de la SDL. Version actuelle : 1.1.


 
Hors ligne Eleval # Posté le 27/05/2008 à 18:49:36
Datte Bayo
Groupe : Membres
Simple question(désolé si quelqu'un l'a deja écris/demandé), y-a-til un moyen de récuperer dans un bete tableau de char de la fonction main la chaine écrite avec ce code?

EDIT: Non c'est bon j'ai réussis :p
Édité le 27/05/2008 à 18:51:21 par Eleval
 

Retour au forum "Langage C" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 69 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0402s (0.025s)