| | Gestion de temps d'appuie d'une touche | |
| | Auteur | Message |
---|
Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Gestion de temps d'appuie d'une touche Mar 28 Aoû 2012 - 23:24 | |
| Bonjour, Petit script, simple, mais utile : - Code:
-
if keyboard_check(vk_space) //si pression sur la touche espace { if appuie==0 //si la touche etais relacher (appuie = 0) { temps_appuie=0 //mise a 0 du compteur } appuie=1 //la touche est presser } else //sinon (si on ne presse pas ou plus espace) { appuie=0 //la touche est relacher }
if appuie==1 //si la touche est presser { temps_appuie+=1 //incrementer le compteur a chaque step }
/*La suite ne sert qu'a montrer son utilite*/ if temps_appuie==0 //si le compteur es a 0 { draw_text_color(100,100,"Appuis sur espace.",c_black,c_black,c_black,c_black,0.8) //on affiche un message pour demander l'appuis de la touche espace } if temps_appuie>room_speed && appuie=0 //si le compteur de step est superieur a la vitesse de la room et que la touche est relacher { draw_text_color(100,100,"Tu as appuye plus d'une seconde.",c_black,c_black,c_black,c_black,0.8) //on affiche que la touche a etait presser plus d'une seconde draw_text_color(100,120,"Appuis de nouveau sur espace.",c_black,c_black,c_black,c_black,0.8) //on affiche un message pour demander de nouveau l'appuis sur espace } if temps_appuie<=room_speed && temps_appuie!=0 && appuie=0 // si le compteur de step est inferieur a la vitesse de la room, que le compteur ne vaux pas 0 (sinon le message reste toujours afficher), et que la touche est relacher { draw_text_color(100,100,"Tu as appuye moins d'une seconde.",c_black,c_black,c_black,c_black,0.8) //on affiche que la touche a etait presser moins d'une seconde draw_text_color(100,120,"Appuis de nouveau sur espace.",c_black,c_black,c_black,c_black,0.8) //on affiche un message pour demander de nouveau l'appuis sur espace } if appuie==1 //si la touche est presser { draw_text_color(100,100,"Tu appuis sur espace.",c_black,c_black,c_black,c_black,0.8) //on affiche que la touche est presser } Le code est entièrement commenter. Mais je vais tout de même donner une explication : Lors que l'on appuie sur espace ESPACE on vérifie que la touche a étais relâcher avant, pour mettre le compteur a 0 on montre que la touche est presser Sinon (si elle n'est pas presser) on montre que la touche n'est pas presser si on a montrer que la touche est presser on met en route notre compteur Puis la avec des conditions si le compteur vaux la vitesse de la room ( donc 1 seconde) si le compteur est superieur aux triple de la vitesse de la room ( donc plus de 3 sec) si le compteur vaux moins de dix fois la room ( donc moins de 10 sec) ... Cela en aidera quelques un, ou non. Je tiens à m'excuser pour les fautes en tout genre. _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Gestion de temps d'appuie d'une touche Mar 28 Aoû 2012 - 23:38 | |
| Tu te prend la tête pour pas grand chose je trouve. Tu peut faire tout simplement - Code:
-
if(keyboard_check(vk_space)) temps_appuie += 1 if(keyboard_check_released(vk_space)) temps_appuie = 0 Sinon ouai y a pas mal de fautes de français Petite astuce alacon pour différencier les 'é' et les 'er' -> Tu remplace ton mot par 'prendre', tu regarde si la phrase sonne faux, et ça fait des chocapics. Si ça sonne juste tu met 'er', sinon 'é'. Par exemple: J'ai mang[X] une pomme -> J'ai prendre une pomme -> Sonne faux -> Donc pas de 'er' a la fin -> J'ai mangé une pomme Il va me tap[X] -> Il va me prendre ( ) -> sonne bien -> Donc bien 'er' a la fin -> Il va me taper En plus ça te feras bosser ton algorithmie |
| | | Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: Gestion de temps d'appuie d'une touche Mer 29 Aoû 2012 - 0:11 | |
| Faux onilink,
Si le joueur veux assigner 2 action a 1 seule touche.
On vas prendre exemple sur Call of duty ( sur Xbox par exemple )
Un appuie court sur B, il s'assoie s'agenouille, un appuie long il se couche.
Là, ton personnage va en premier lieu s’asseoir, puis se coucher, en plus de ça, il lui faudra rester appuyer sur la touche.
Le script garde en mémoire si le joueur a appuyé long ou court sur la touche.
De plus, la fonction de "release" avec les joystick n'existe pas, ici il est pris en compte.
PS : merci pour l'astuce, ma femme me l'a dit X fois... _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Gestion de temps d'appuie d'une touche Mer 29 Aoû 2012 - 0:25 | |
| Mouai, j'ai pas trop capté ce que tu voulais faire en fait x) Sinon petit conseil, soigne mieux la syntaxe de ton code, la t'as fait un truc tout simple et pourtant je le trouve pas très lisible. Par exemple: - Code:
-
if(keyboard_check(vk_space)) { if(!check) check_timer = 0 check = true } else check = false
if(check) check_timer += 1 Bref chacun sa syntaxe, mais faut essayer de faire dans le lisible :b Sinon ton code est l'équivalent de celui ci en fait, je m'était gouré ouai ( ) - Code:
-
if(keyboard_check_pressed(vk_space)) check_timer = 0 if(keyboard_check(vk_space)) check_timer += 1 Sinon pour les joysticks, j'avais codé une dll pour la manette de xbox360 qui gérais tout (check, pressed, released, vibrations, etc). Si ça t'intéresse je peut essayer de la retrouver (je l'avais faite pour un truc mais au final jamais utilisé ni uploadé x) ) |
| | | Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: Gestion de temps d'appuie d'une touche Mer 29 Aoû 2012 - 1:00 | |
| Je ne sais pas du tout comment fonctionne un dll... Mais ça pourrais êtres fort intéressant oui. Et pour la syntaxe, bien, comme nous avons tous notre façon de marcher, parler, penser... Nous avons aussi notre façon de coder. quand c'est pour moi, je laisse le code comme je le sent, parce qu'il me permet de mieux lire de cette façon, mais là c'est vrai que j'aurais put mieux faire. Par contre ton code est toujours faux... Autant pour moi... avais lu release... _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri
Dernière édition par Caohimin le Mer 29 Aoû 2012 - 1:13, édité 2 fois |
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Gestion de temps d'appuie d'une touche Mer 29 Aoû 2012 - 1:05 | |
| Ben temps_appuie :b
Sinon une dll c'est très simple a utiliser, suffit d'avoir les scripts associés a ta dll, tu lance le script d'initialisation qui charge la dll et tu peut utiliser les autres scripts associés comme des fonctions tout a fait normales. C'est encore plus simple a utiliser sous la forme d'extension d'ailleurs, vu qu'y a rien a faire la a part utiliser les fonctions tranquillement :b |
| | | Caohimin Très bonne participation
Messages : 134 Localisation : Au coeur de cette charmante demoiselle.
| Sujet: Re: Gestion de temps d'appuie d'une touche Mer 29 Aoû 2012 - 1:17 | |
| Je la veux bien si tu remet la main dessus _________________ Caohimin Communauté Barbarre Nauséabonde Ahuri |
| | | Contenu sponsorisé
| Sujet: Re: Gestion de temps d'appuie d'une touche | |
| |
| | | | Gestion de temps d'appuie d'une touche | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |