Bah de toute façon, nous n'existons pas réellement, nous sommes dans une simulation gigantesque
Je viens aussi d'obtenir une commode 64 de ma marraine ! J'espère pouvoir faire quelque truc avec ![]()
Fais de la démoscène, ou un raytracer, le code loge tranquille dans les 64k de mémoire. ![]()
"Bah de toute façon, nous n'existons pas réellement, nous sommes dans une simulation gigantesque"
On est dans la Matrix ![]()
Je regarderai à tout ça
Sinon je suis sur le point de jubiler... J'ai enfin trouvé ou presque une solution à tous ces problèmes de claviers avec SDL 1.2 !
Je n'invente probablement rien mais j'ai trouvé aucune solution sur le web.
En gros :
J'enregistre l'état de toutes les touches du clavier dans un tableau de booléen. Mais je gère également l'unicode ! Il me manque juste une chose, ce que je suis occupée à faire :
inventer un état de touche "dépressée" avec l'unicode.
Quand j'aurai fini ça, j'aurai le total contrôle du clavier. Enfin !
Ou alors tu utilise la SFML et c'est bien plus simple ![]()
Plus tard, je ne vais quand même pas changer de bibliothèque maintenant pour ça. Par contre c'est vrai que c'est la galère... Je suis sur le point de réussir, mais c'est vraiment un casse tête.
En plus quand j'aurai fini, je serai capable de :
gérer l'appui de plusieurs touches
gérer l'appui long ou non des touches
gérer l'unicode (pression et dépression des touches)
gérer la pression ou dépression des autres touches.
Tout est fait, la seule chose qui me reste à faire c'est créer un état de dépresser des touches "unicode", et c'est le truc qui me pose le plus de soucis.
http://commons.wikimedia.org/wiki/File:Emacs23.3.1-screenshot-cpp.png
Il y aurait pas une erreur sur cette image ?
Un T majuscule à la place du t minuscule à la 2ème ligne au 2ème parametre ?
Yep
J'ai un petit problème en php ![]()
Si j'exécute ce script, tout marche bien:
$im = imagecreatefrompng('aaaac.png');
header ("Content-type: image/png");
imagepng($im);
exit();
ça affiche l'image mais quand j'essaie d'appeler cette page depuis une balise html
<img source="thumbnails.php"></img>
l'image n'est pas affichée ![]()
erreur de merde c'est src pas source ![]()
J'ai un problème sur Emacs pour changer de cadre
Quand je fais C-x o, ça marche pas, le seul moyen que j'ai c'est de faire M-x other-window
C'est la version 24 que j'ai je crois (c'est emacs24-nox que j'ai installé)
Quelqu'un sait svp ? ![]()
VampireGirl Voir le profil de VampireGirl
Posté le 9 septembre 2013 à 02:43:38 Avertir un administrateur
En plus quand j'aurai fini, je serai capable de :
gérer l'appui de plusieurs touches
gérer l'appui long ou non des touches
gérer l'unicode (pression et dépression des touches)
gérer la pression ou dépression des autres touches.
Tout est fait, la seule chose qui me reste à faire c'est créer un état de dépresser des touches "unicode", et c'est le truc qui me pose le plus de soucis.
état de dépresser, lorsqu'on relache la touche ?
T'utilises pas la valeur de event.type ? En verifiant si sa valeur est SDL_KEYDOWN qui veut dire que l'évenement est un relachement de touche, c'est pas ça que tu veux ?
SDL_KEYUP pour le relâchement des touches. Mais il n'est pas géré par SDL 1.2 si tu actives l'Unicode.
Je pense ruser de cette manière :
Si un événement de type unicode est produit, je sauvegarde la touche utilisée. Si elle est dépressée, je met l'événement correspondant dans le tableau à false. Je vais essayer ça. Si ça marche je serai tranquille !
VampireGirl, Tu partages les sources quand tu auras fini?
Et il est où ton smiley fetish?
Oui pas de problème. Je vais continuer au soir, j'ai une autre idée pour faire ça plus facilement.
J'essaye de me mettre à Emacs sur Xubuntu, parce qu'il "parait" que c'est super puissant (on est plus rapide avec une fois maitrisé si j'ai bien compris), c'est pourquoi j'ai essayé de m'y mettre parce que ça m'a l'air d'être intéressant.
Lorsque que je créé plusieurs cadre avec C-x 2 et/ou 3, je peux pas me déplacer de cadre en cadre en faisait C-x o, le seul moyen que j'ai c'est de faire M-x other-window, mais je doute que ça soit super efficace à la longue
Et toutes les "vertus" racontés un peu partout à propos d'Emacs, c'est plus pour Emacs en mode console ou Emacs en mode graphique ? Quels sont les inconvénients de l'un et de l'autre d'après votre expérience ?
Est-ce que ça vaut le cout que j'en fasse un topic ? ![]()
Ma solution fonctionne ! La translation se fait, j'ai aussi vérifié avec un qwerty. Et la dépression de touche est détectée.
Reste un petit bug, si j'essaye en faisant maj + un nombre ou le _ on ne sait plus faire le -. C'est surement tout bête, mais je verrai ça demain ![]()
Ca marche ! J'avais une simple erreur sur un test par rapport au numéro des touches dans sdlkeysym !
Je vais faire un tuto et distribuer le code, ça pourrait vraiment en aider pas mal j'imagine, je n'ai pas trouvé d'équivalent sur le net...
Voilà mes deux fonctions principales que j'utilise pour gérer l'unicode, ainsi qu'une structure. Vous n'êtes pas obligé d'utiliser une structure mais je trouve ça beaucoup plus simple.
http://pastebin.com/C4Wkq5f9
http://pastebin.com/45uThTJ0
Pour commencer, je vais parler de la structure Event_s. Elle "remplace" le type SDL_Event. Elle contient une variable de type SDL_Event, un tableau de booléen pour garder une trace de l'état des touches, et un tableau de SDLKey pour contrôler les touches réellement pressées et dé-pressées.
La fonction updateEvents() est factice, mais très utile. En effet, pour gérer les touches il faut faire une série de switch fastidieux, et récupérer l'événement géré. C'est long, lourd, chiant, et il est difficile par exemple de contrôler l'état de plusieurs touches appuyées...
La fonction updateEvents se charge donc d'inscrire l'état des touches dans un tableau de booléen (true pour pressé, false pour dépressée).
La fonction unicodeTranslation() se charge elle de faire correspondre l'unicode si il le faut. Si les valeurs sont inférieures à 256 (au delà ce sont les touches comme les flèches, etc non gérées par unicode).
Si l'événement unicode remplit les conditions, on sauvegarde la valeur unicode comme valeur à la touche pressée. (sym).
Sinon, on sauvegarde la valeur sym tout simplement.
Cette manipulation est le coeur de toute la démarche !
Pour revenir à updateEvents(), pour garder l'état des touches, il faut simplement donner la valeur de la touche sym utilisée dans le tableau de booléen, et le mettre sur true ! Pareil pour SDL_KEYDOWN mais à false.
Finalement, comme faire pour gérer une touche vous aller me dire ? Simplement, voici un exemple de mon code :
http://pastebin.com/EQe20HPN
Il suffit simplement de tester la valeur du tableau de booléen !
Par défaut, vous n'avez même plus besoin de gérer l'appui long des touches ! Vous devrez cependant maintenant gérer le fait que ça n'appuie qu'une fois. C'est très simple, vous mettez manuellement vous même la valeur dans le tableau de booléen à false après vos instructions !
Voilà, je ne m'exprime pas super bien, posez-moi vos questions si jamais. Mais ça marche !