| keyboard check et alarm | |
|
|
Auteur | Message |
---|
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: keyboard check et alarm Sam 23 Fév 2013 - 0:30 | |
| Rebonsoir
autre soucis, j'ai besoin d'utiliser la fonction keyboard_check pour certaines raisons, et surtout pas keyboard_check_pressed, le problème c'est que dans ce genre de cas, j'ai l'impression que si on met une alarme dans la suite, elle se déclenche quand on relache la touche et non quand on la presse au début.. comment je peux faire? pour contourner le soucis, j'ai rajouté d'autres lignes avec check pressed à part juste pour déclencher l'alarm mais, dans un cas en particulier quand je fais une certaine action l'alarm se déclenche pas.. |
|
| |
Mobi Utilisateur confirmé: Rang ****
Messages : 1256 Localisation : Dijon
| Sujet: Re: keyboard check et alarm Sam 23 Fév 2013 - 0:50 | |
| pourquoi pas pressed ?
_________________ |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Sam 23 Fév 2013 - 0:55 | |
| en fait c'est pour faire une "esquive". Donc je veux que tant qu'on appuie sur la touche, ça esquive, MAIS il y a quand même une limite! Donc j'aimerais que l'alarme se déclenche au début de la suite d'action qu'il y a dans l'esquive.. l'alarme sert à arrêter l'esquive. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: keyboard check et alarm Sam 23 Fév 2013 - 11:08 | |
| if(keyboard_check(key) && !alarm[0]) alarm[0] = blablabla |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Sam 23 Fév 2013 - 23:21 | |
| ça ne marche pas, dès qu'on appuie sur la touche, l'alarm s'enclenche et le !alarm n'est plus valable et ça arrête l'esquive. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Sam 23 Fév 2013 - 23:48 | |
| je vais réexpliquer mon soucis, plus clairement, mais plus longuement.. si quelqu'un est motivé pour m'aider à trouver le bug ce serait sympa! Pour commencer je suis apparemment obligé de faire 2 actions séparées pour faire une esquive, une avec keyboard_check, qui va faire l'esquive et l'autre avec keyboard_check_pressed pour lancer l'alarm qui va stopper l'esquive. MAIS,si jamais je tire ou si je met un coup d'épée et que j'appuie tout de suite après sur l'esquive, l'esquive est sans limite! Donc je me dis que c'est parce que l'alarm se déclenche pas.. dans le step - Code:
-
if esquive=1 and end_Hero>0 and v>0 and !keyboard_check_pressed(vk_down) and keyboard_check(vk_control) and Setat==1 // Setat c'est si le hero est libre de faire certain mouvement
{sprite_index=spr_heroNesq
if d==1 {if place_free(x+12,y) {x+=12; end_Hero-=1; invinesq=1; gravity=0; vspeed=0}} // invinesq c'est l'invincibilité pendant l'esquive
if d==0 {if place_free(x-12,y) {x-=12; end_Hero-=1 ; invinesq=1; gravity=0; vspeed=0}}} A la suite - Code:
-
if keyboard_check_pressed(vk_control) and esquive==1 and end_Hero>0 and v>0 and esqa==0 and !keyboard_check_pressed(vk_down) and Setat==1
{sound_play(spectral01); alarm[3]=15; esqa=1;}} //esqa est mis pour éviter d'enclencher à nouveau l'alarm pendant un certain temps Dans l'alarm [3] - Code:
-
invinesq=0; alarm[4]=90; esquive=0; keyboard_clear(vk_control); et dans la 4 - Code:
-
esquive=1; keyboard_clear(vk_control); esqa=0; Au passage je précise que je veux pas utiliser quelque chose genre un keyboard_check_pressed et x+120 direct, ça résoudrait mes soucis mais c'est pas ce que je veux ^^
Dernière édition par tales le Dim 24 Fév 2013 - 11:12, édité 2 fois |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 9:32 | |
| Perso je t'aiderais bien mais tu code de façon complètement illisible. Met un peu d'indentation, fou pas tout sur une seule ligne et tu verra la magie du beau code. Sinon pour savoir si c'est ton alarm qui déconne, suffit de l'afficher et voir ce que ça donne. Si elle reste a -1 c'est qu'elle n'a pas été déclenchée. Pour la propreté du code je te conseillerais de mettre des parenthèses aux if: if d==1 => if(d==1) Toujours utiliser l'opérateur de comparaison: if esquive=1 => if(esquive==1 .. Indenter après chaque { et faire un saut de ligne après chaque instruction: if place_free(x+12,y) {x+=12;end_Hero-=1; invinesq=1;gravity=0;vspeed=0} => - Code:
-
if(place_free(x+12,y) { x+=12 end_Hero-=1 invinesq=1 gravity=0 vspeed=0 }
Et aussi, soit tu met des ; a chaque fin d'instruction, soit tu n'en met pas du tout (t'en a pas mis a vspeed=0 par exemple) car sous GM ils servent a rien. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 10:48 | |
| merci pour ta réponse mais bon.. je code comme ça pour que ce soit clair pour moi ^^ Je met tout sur une seule ligne pour gagner de la place entre autre et parce que je trouve ça beaucoup plus clair de tout mettre à la suite, j'ai 2 step sur mon hero dont un qui fait 600lignes.. alors je préfère faire comme ça! Cela dit ça change rien, c'est pas ça qui va faire bugger le jeu, c'est comme les parenthèse aux if ou l'operateur ==, gm s'en fout complet comme les ;... Mais si je reviens à la ligne à chaque condition comme tu l'as écris et que je fais àa pour tout, je vais me retrouver avec 5000lignes de code pour que dalle et je trouve ça moins lisible et pas du tout pratique.. Alors que là toutes les première conditions sont sur la même lignes et c'est très clair pour moi.. Bref tant pis je me doutais que ce serait trop compliqué pour être expliqué ici. Merci tout de même pour tes conseils, c'est noté.
"Et aussi, soit tu met des ; a chaque fin d'instruction, soit tu n'en met pas du tout (t'en a pas mis a vspeed=0 par exemple) car sous GM ils servent a rien."
donc on s'en fout que j'en mette à chaque fin d'instruction ou un sur deux si ça sert à rien? c'est juste pour que ce soit plus clair pour moi. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 10:55 | |
| Quand on code on code avant tout pour que ce soit lisible pour les autres, et en général quand c'est pas clair pour les autres c'est pas tellement clair pour toi x) Il vaux mieux changer sa manière de coder et s'habituer aux conventions. Le dev est en général un travail d'équipe, et si tu bosse en solo tu y viendra forcément un jour. La preuve rien que pour demander de l'aide tu doit poster des bouts de code. Si tu as trop de lignes de codes, tu peut utiliser des piece of code, des scripts, des event user, bref c'est pas une excuse :p Sinon imagine un peu la gueule des gros projets Pourquoi ne pas virer chaque espace alors si ça fait gagner de la place xD |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 11:02 | |
| Mais je me plains de rien là, pourquoi vous faites toujours compliqué? si tu veux pas m'aider parce que j'écris - Code:
-
{if place_free(x+12,y) {x+=12; end_Hero-=1; invinesq=1; gravity=0; vspeed=0}} au lieu de comme toi tu veux - Code:
-
if(place_free(x+12,y) { x+=12 end_Hero-=1 invinesq=1 gravity=0 vspeed=0 } bin c'est dommage, je vais pas te retaper mes 600lignes de codes pour mettre des espaces, c'est très clair pour moi et franchement c'est du chipotage là.. c'est pas du tout un soucis en plus, ça marche très bien, j'ai juste une alarm qui se déclenche pas, ça n'a rien voir avec tout ça.. J'ai pas trop de lignes, y'en a jamais assez!! Ca va être une perte de place énorme, je vais m'étaler comme c'est pas possible tu te rends pas compte... et puis c'est inutile surtout.. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 11:06 | |
| C'est juste un conseil hein, t'en fait ce que tu veux.
Pour ce qui est de monde aide je suis peut être ******, mais je ne lirais pas de source que je ne trouve pas claire (manque de temps, et aussi d'envie de lire du GML disposé de cette manière).
Et aussi, normalement tu as des 'syntax cleaner' qui traînent sur le web, donc pas besoin de tout recoder. Y en a un dans codeblocs aussi, en addon. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 11:10 | |
| je comprend ce que tu dis, je t'explique juste pourquoi je trouve plus simple de faire comme je fais. Le principal de toute manière c'est que ça bug pas, c'est juste des préférences personnelles tout ce qu'on raconte. "soit on met des ; partout soit on en met pas, mais de toute manière ça sert à rien" donc on s'en fout en fait.. bref tant pis. Merci pour tes conseils tout de même. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 20:56 | |
| je viens de comprendre le bug mais je sais pas comment le résoudre..
En fait, quand je tire, si j'appuie sur control pour faire l'esquive, je fais l'esquive à partir du moment où j'ai fini de tirer, à la fin du tir toutes les conditions sont remplie pour faire l'esquive. MAIS, la partie avec keyboard_check_pressed pour lancer l'alarm (qui arrête l'esquive) ne se lance pas puisque le bouton a déjà été appuyé à un moment où l'esquive ne pouvait pas se lancer... donc je fais une esquive sans fin... j'arrive pas à caser une variable dans lesquive pour que l'alarme se lance puisque quand j'esquive, toute les conditions tournent en boucle et l'alarme se lance en boucle aussi... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 21:06 | |
| Avant d'enclencher ton alarm, tu vérifie qu'elle ne tourne pas déjà avec un if (alarm[id]==-1). Et Oni a raison, c'est complètement illisible, tu comprend peut-être sur le moment, mais quand tu voudra relire plus tard, ce sera une autre paire de manche... |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 21:26 | |
| YESSSSSSSSSSSSSSSSSSSSSSSSSSSS b**** de p***** a m***** de ****** aux olives. Il m'énervait ce bug!!! J'ai du changer d'autres trucs à côté mais finalement (alarm[id]==-1) ça a résolu mon soucis!! .. merci infiniment pour votre aide à tous les deux! Promis je ferai un truc plus lisible la prochaine fois que je poste beaucoup de code!
en fait j'ai viré toute la partie check_pressed
if keyboard_check_pressed(vk_control) and esquive==1 and end_Hero>0 and v>0 and esqa==0 and !keyboard_check_pressed(vk_down) and Setat==1
et j'ai juste mis if invinesq!=0 and (alarm[3]==-1) pour enclencher l'alarm! et ça marche nikel! |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 22:35 | |
| C'est ce que j'avais dit tout en haut ... x) - Citation :
- [...]&& !alarm[0]) blablabla
|
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: keyboard check et alarm Dim 24 Fév 2013 - 23:17 | |
| oui j'ai vu! En fait quand j'ai testé ça, je l'ai mis comme t'as écris, dans la première partie de l'esquive, dans le keyboard_check, et mis comme ça, ça marche pas, j'aurais du tester tout de suite dans la deuxième partie. Cela dit grace à tous ces essais, la solution finale est très courte et sans bug de boucle. Merci dans tous les cas! ^^ |
|
| |
Contenu sponsorisé
| Sujet: Re: keyboard check et alarm | |
| |
|
| |
| keyboard check et alarm | |
|