| Touches vk et... ? | |
|
|
Auteur | Message |
---|
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Touches vk et... ? Sam 17 Juil 2010 - 17:09 | |
| J'aimerais tester si certaines touches comme la touche minuscule/majuscule (au dessus de shift) ou ver num, syst ect... son pressées ou pas. vk_... ne peux pas le faire. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:12 | |
| les vk_ sont des constantes
pour shift -> 16 pour maj -> 20 ver num -> 144 |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:15 | |
| |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:15 | |
| aussi
keyboard_get_numlock() Retourne si la touche de verrouillage numérique (Verr num) est actuellement en fonction. keyboard_set_numlock(on) Mets en service (true) ou hors service (false) la touche de verrouillage numérique (Verr num).
Pour les touches correspondant aux lettres, utilisez par exemple ord('A') (lettres capitales). Pour les touches correspondant aux chiffres, utilisez par exemple ord('5') pour obtenir la touche <5>. Les constantes suivantes peuvent être seulement utilisées avec keyboard_check_direct :
vk_lshift touche shift gauche vk_lcontrol touche contrôle (Ctrl) gauche vk_lalt touche alt gauche vk_rshift touche shift droite vk_rcontrol touche contrôle (Ctrl) droite vk_ralt touche alt droite |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:17 | |
| il y a pas de fonction pour ça à la base (pour savoir si verr maj est activé), mais ce que je propose, c'est de faire une variable globale global.alpha si à 0, on écrit en minuscule, si on est à 1, c'est des majuscules. Changer l'état quand on appuye sur la touche, c'est pas difficile, il faut juste choper son état au début, je propose qu'à un moment tu demandes à l'utilisateur d'appuyer sur une lettre choisie (A dans mon exemple), et tu appelle ce code : - Code:
-
while(keyboard_lastkey!=ord('A')) { if keyboard_lastchar="A" { global.alpha=1 } else { global.alpha=0 } } |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:20 | |
| t'est meme pas obligé de lui demander en plus, je rappel qu'on peut simuler les appuis de touches |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:38 | |
| ouais, mais faut quand me^me conanitre l'état de la touche au début, parce qu'en simulant l'appui sur verr maj, on sait pas si ça va activer ou desactiver... |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 17:46 | |
| je parlais de simuler l'appui d'une lettre ^^ |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 18:08 | |
| J'ai un autre problème, avec mon système (c'est pour un login), quand je presse ctrl+V ça marque un truc bizarre? |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 18:12 | |
| la je crois pas qu'on puisse faire grand chose sans un bout de code a ce mettre sous la dent :nah: |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 18:18 | |
| Ca fait un peu bloc mais bon, c'est pas trop compliqué: j'ai créé une variable text dans laquelle j'ajoute/soustrais des caractères. - Code:
-
if(selected==1) {draw_sprite(s_tourbarresel,-1,x,y); if(keyboard_check_pressed(vk_anykey)&&!keyboard_check_pressed(vk_add) &&!keyboard_check_pressed(vk_alt)&&!keyboard_check_pressed(vk_backspace)&&!keyboard_check_pressed(vk_control) &&!keyboard_check_pressed(vk_decimal)&&!keyboard_check_pressed(vk_delete)&&!keyboard_check_pressed(vk_divide) &&!keyboard_check_pressed(vk_down)&&!keyboard_check_pressed(vk_end)&&!keyboard_check_pressed(vk_enter) &&!keyboard_check_pressed(vk_escape)&&!keyboard_check_pressed(vk_f1)&&!keyboard_check_pressed(vk_f2) &&!keyboard_check_pressed(vk_f3)&&!keyboard_check_pressed(vk_f4)&&!keyboard_check_pressed(vk_f5) &&!keyboard_check_pressed(vk_f6)&&!keyboard_check_pressed(vk_f7)&&!keyboard_check_pressed(vk_f8) &&!keyboard_check_pressed(vk_f9)&&!keyboard_check_pressed(vk_f10)&&!keyboard_check_pressed(vk_f11) &&!keyboard_check_pressed(vk_f12)&&!keyboard_check_pressed(vk_home)&&!keyboard_check_pressed(vk_insert) &&!keyboard_check_pressed(vk_multiply)&&!keyboard_check_pressed(vk_pagedown)&&!keyboard_check_pressed(vk_pageup) &&!keyboard_check_pressed(vk_pause)&&!keyboard_check_pressed(vk_printscreen)&&!keyboard_check_pressed(vk_return) &&!keyboard_check_pressed(vk_right)&&!keyboard_check_pressed(vk_left)&&!keyboard_check_pressed(vk_shift) &&!keyboard_check_pressed(vk_subtract)&&!keyboard_check_pressed(vk_tab)&&!keyboard_check_pressed(vk_up) &&!keyboard_check_pressed(20)&&!keyboard_check_pressed(91)&&!keyboard_check_pressed(93) ) {text += keyboard_lastchar;} if(keyboard_check_pressed(vk_backspace)){text = string_copy(text,0,string_length(text)-1);} if(keyboard_check_pressed(vk_control)&&keyboard_check_pressed(ord("V"))){text=clipboard_get_text();} }
if(mouse_in(x,y,x+260,y+30,false)) {draw_sprite_ext(s_tourbarre,-1,x,y,1,1,0,c_white,0.8); if(mouse_check_button_released(mb_left)) {selected = 1;o_pass.selected=0;} }
draw_set_color(c_white); if(selected==1){draw_text(x+6,y+3,string(text)+"|");} else{draw_text(x+6,y+3,string(text));} draw_set_color(c_black); |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 18:34 | |
| met - Code:
-
if(keyboard_check(vk_control)&&keyboard_check_pressed(ord("V"))) au lieu de - Code:
-
if(keyboard_check_pressed(vk_control)&&keyboard_check_pressed(ord("V"))) de plus le code serais plus propre de cette maniere - Spoiler:
- Code:
-
if(!variable_local_exists('nbad_key')) { badkey[0] = vk_add badkey[1] = vk_alt badkey[2] = vk_backspace badkey[3] = vk_control badkey[4] = vk_decimal badkey[5] = vk_delete badkey[6] = vk_divide badkey[7] = vk_down badkey[8] = vk_enter badkey[9] = vk_escape badkey[10] = vk_end badkey[11] = vk_f1 badkey[12] = vk_f2 badkey[13] = vk_f3 badkey[14] = vk_f4 badkey[15] = vk_f5 badkey[16] = vk_f6 badkey[17] = vk_f7 badkey[18] = vk_f8 badkey[19] = vk_f9 badkey[20] = vk_f10 badkey[21] = vk_f11 badkey[22] = vk_f12 badkey[23] = vk_home badkey[24] = vk_insert badkey[25] = vk_multiply badkey[26] = vk_pagedown badkey[27] = vk_pageup badkey[28] = vk_printscreen badkey[29] = vk_pause badkey[30] = vk_right badkey[31] = vk_return badkey[32] = vk_left badkey[33] = vk_subtract badkey[34] = vk_tab badkey[35] = vk_shift badkey[36] = vk_up badkey[37] = 20 badkey[38] = 91 badkey[39] = 93 nbad_key = 40 }
if(keyboard_check_pressed(vk_anykey)) { can = 1 for(i=0 ; i<nbad_key ; i+=1) if(keyboard_check_pressed(badkey[i])) { can = 0 ; break } if(can) text += keyboard_lastchar } if(keyboard_check_pressed(vk_backspace)) text = string_copy(text,0,string_length(text)-1) if(keyboard_check(vk_control)&&keyboard_check_pressed(ord("V"))) text = clipboard_get_text()
|
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: Touches vk et... ? Sam 17 Juil 2010 - 19:09 | |
| Merci, ça marche comme sur des roulettes |
|
| |
Contenu sponsorisé
| Sujet: Re: Touches vk et... ? | |
| |
|
| |
| Touches vk et... ? | |
|