Appuis d'une touche(rm2k3)

Démarré par pyromancer, 30 Avril 2007 à 23:15

0 Membres et 1 Invité sur ce sujet

30 Avril 2007 à 23:15 Dernière édition: 03 Mai 2007 à 02:15 par four_power
Bonjour je voudrais savoir s'il est possible que si ont appuis sur une touche cela fasse quelque chose mais que si on laisse enfoncer la touche indéféniment ou pendant un certain temps il se passe quelque chose.Merci.

Bah oui c'est possible. Il faut que tu crée une variable avec le nom de la touche (ex. 0001:Z) et tu vas dans évènements communs et tu crée un évènement commun avec le nom que tu veux et en processus parallèle. Tu fais "Détecter l'appuis sur les touches" et dans "Stoker le code de la touche", tu met la variable de la touche (0001:Z). Laisse attendre l'appui de la touche et coche la touche que tu veux que ça fasse quelque chose (ex. Validation (5) ). Fais fourchette de condition, variable, la variable de la touche (0001:Z) à nombre 5 et "Égal à" et décoche "Traitement auxiliaire si la condition n'est pas remplie". Et dans la fourchette de condition, met ce que tu veux que ça fasse quand tu appuie sur la touche.

Je crois qu'il y a un moyen pas mal plus simple MemoreX. ;)
J'edite si ça me revien à l'esprit...  :rolleyes:   

J'ai tellement une bonne mémoire dabord.  :lol:

Bah oui, la fourchette de condition après avoir préciser à quoi correspondront les variables... ;)
Je ne vois pas plus simple... :P

01 Mai 2007 à 00:10 #4 Dernière édition: 01 Mai 2007 à 00:12 par four_power
Bref j'ai pas trop compri mais je crois que c'est comme ca :
-On fait detecter la touche on choisi la touche (ex espace(5)) et on enregistre dans une variable.
-On fait si la variable = 5 et si 3 sec. attendues,on active un switch qui active ce que ca fait.

EDIT:Mais si tu appui 1 sec. et tu relache et que tu réapuis 2 sec. ca va marcher pareil.Il n'y a pas une facon pour que se soit 3 sec. en continu et non acumulées?

Je vais essayer de t'expliquer, ça me revien en mémoire mais très peut.  :lol:
Bon tout d'abord, explique nous se qui va se passer dans ton projet. Parce qu'il y a plusieurs façon de faire ça, mais on doit savoir précisément se que tu veux pour ça. ;)

Bah je voulais pas spoiler mais j'ai pas le choix donc : je veut faire un system d'item a la FSA.Comme par example je veut que la baguette de feu si ont laisse appuyer elle fait "lance-flame" mais si on appuie elle projette une boule de feu...Ou encore l'arc si on appuie on tire une flèche si on laisse enfoncer link étire la corde après 3 sec. il y a une étincelle et ont peut tirer 2X plus vite ect.

Oh la la la la!  :blink:
Avec RM03 en plus! Tu te lance dans de la programmation de pro là.  ;)
Remarque => Pro dans le sens RM03.  :P

Je ne connais pas ton style de programmation, ni ton niveau, mais je vais tanter de t'aider.
Je n'ai jamais essayer de faire ça, mais bon. Sans plus tarder:

Un example avec l'arc.

Tu programme ton arc ainsi( à ma façon)

<> Détecter l'apui d'une touche: (se que tu veux, moi je prend ''Shift(7)) dans la variable Bande-arc
     <> Si la variable Bande-arc = 7 (avec un sinon)
<>Attendre 0.1 sec.
<>Changer sprite: link arc séquence 1 (met sa flèche)
<>Changer sprite: link arc séquence 2 ( étire un peut la corde)
<>Changer sprite: link arc séquence 3 (sa corde est à moitié bandée)[size=1pt]J'utilise ce verbe parce que c'est le vrai mot tout simplement, et non parce que je suis un obsédé de sexe.  :ninja:[/size]
<>Changer sprite: link arc séquence 4 (arc entièrement badé, prèt à tirer la flèche)
<> Interupteur Arc pret ON
<> Attendre 0.1 sec.
       SINON
rien
FIN


Biensûr là je l'ai fait à la vite: J'ai pas mis la flèche lancée et si il nous reste assé de flèches etc... Mais bon, on a le principale, tu l'amélioraras à ta guise Jour_power. ;)

Ensuite, dans un autre event commun en processus parallel (//), tu fais:


<> Si interupteur Arc pret est ON Avec Sinon)
<> Demander l'apui d'une touche: Toujours shift (7) dans la même variable
<> Si variable (celle de l'arc) est = à 7
<> Interupteur Force arc niv.2 ON
<> Changer l'aparance du héro: Arc encore plus badé (J'aime vraiment pas dire ça) ^^
<> (Ici tu programme que tu tire ta flèhce)
   SINON (arc prèt OFF)
Rien
<>
Fin
<>


Voilà, tu as la base. Mais n'oubli pas que j'ai fas ça à la vite, j'ai rien vérifié, et je suis même pas certaic que ça marche. ;)
Pour le reste, je te fais confiance, tu sauras programmer tout seule. ;)
Bonne chance et bon courage.  :super:

01 Mai 2007 à 02:00 #8 Dernière édition: 01 Mai 2007 à 02:03 par four_power
Ok merci mais un petit détail : il y a 3 sprites : link qui tire,link qui étire,link qui étire(fixe).La c'est un peu hors sujet mais je veut juste savoir comment faire apparaître un event devan le héro.Je sais qu'il faut uttiliser les X et Y mais j'ésite vraiment.Merci.

EDIT:Lol tu m'a appelé jour_power.

Peut importe le nombre d'animation, en s'en taponne. ;)
Pour positionner un event, c'est assé simple, il y a un event dans une des 3 pasges qui s'appel(dans ma version d'RPG maker) Déplacer/positionner un evenement.

Puis les coordonées X et Y, tu dois savoir utiliser un plan quartésien. ;)
Tu apprendras tout ça à l'école.  :)

HS: Vive la puissance du jour!  :linkXD:

Citation de: Ganondark le 01 Mai 2007 à 23:46
Peut importe le nombre d'animation, en s'en taponne. ;)
Pour positionner un event, c'est assé simple, il y a un event dans une des 3 pasges qui s'appel(dans ma version d'RPG maker) Déplacer/positionner un evenement.

Puis les coordonées X et Y, tu dois savoir utiliser un plan quartésien. ;)
Tu apprendras tout ça à l'école.  :)

HS: Vive la puissance du jour!  :linkXD:

Un plan cartésien ... qu'est-ce ? :)
The Legend Of Zelda : Minish Shield's

Oui je connais le plan cartésien mais comment délimiter le centre de la carte si elle est en nombres impairs de carraux(je veut dire si elle est de 27X42 exemple)

Il faudrait peut-être chercher un peu....  -_-

Chaques cases fait 16 pixel par 16 pixel, donc après, reste plus qu'à calculer.
Je crois qu'avant de vouloir faire un jeu, tu devrais peut-être t'exercer un peu, car là, c'est vraiment la base, et tu n'y arrive même pas seul.

Ah oui je vois là ! Je sais bien sûr m'en servir sinon j'aurais pas fait l'anim de l'épée de link ! <_<
Mais je savais pas que c'était ça mais je le maîtrise exellement bien ! :)
The Legend Of Zelda : Minish Shield's

Alors rpg maker delimiterais le pixel central de chaque case?Un pixel égal un sur le plan?Merci d'expliquer.

Oui....
Donc en résumé, dans rm2k, une case = 16 pixel par 16 pixel.

Mais vous savez donc pas répondre vous??? Il a demandé ça:
Citationje veut juste savoir comment faire apparaître un event devan le héro.Je sais qu'il faut uttiliser les X et Y mais j'ésite vraiment.Merci.

et
CitationOui je connais le plan cartésien mais comment délimiter le centre de la carte si elle est en nombres impairs de carraux(je veut dire si elle est de 27X42 exemple)

Mais les réponses...  <_<

Citation de: Asturias le 02 Mai 2007 à 00:00
Il faudrait peut-être chercher un peu.... -_-

Chaques cases fait 16 pixel par 16 pixel, donc après, reste plus qu'à calculer.
Je crois qu'avant de vouloir faire un jeu, tu devrais peut-être t'exercer un peu, car là, c'est vraiment la base, et tu n'y arrive même pas seul.

Si personne ne sait répondre comme du monde, NE POSTEZ DONC RIEN!!  -_-
Bon pour ton aide four_power, oubli tout se qu'ils t'ont dit. ;)
Bon, d'abord, tu te créé un event en processus // (commun) et tu met juste ces 2 lignes:

<> Variable Xhéro = (affecter) La valeur de X héro.       (Cette valeur est plus bas dans les options, tu verras.)
<> Variable Yhéro = (affecter) La valeur de Y héro.        (même chose ^^)<


Et sur la carte, tu fais un event en porcessus // qui fait:

<> Variable X flèche = à X héro
<> Variable Y flèche = à Y héro


C'est aussi simple que ça. Quand tu la positionne, tu ajoute:

<> ... (les autres events)
<> Positionner un event: flèche à X et Y héro
<> Si héro est vers le bas,
<> déplacer flèche bas bas bas bas basbas (tant que tu veux)
<> Et etc...


C'est très très simple, si tu as du mal à comprendre, c'est que tu as encore de la révision à faire. ;)
Si tu veux savoir te servir d'RPG maker sans trop de difficultés en prog., tu dois savoir te servir des mathématiques. Et minimum savoir maîtriser le plan quartésien, et un peut être quelques bases d'algèbres... Mais là, on va dans du plus compliqué.  :P

J'ai trouvé une erreur dans ton code Ganondark :

<> Détecter l'apui d'une touche: (se que tu veux, moi je prend ''Shift(7)) dans la variable Bande-arc
     <> Si la variable Bande-arc = 7 (avec un sinon)
<>Attendre 0.1 sec.
<>Changer sprite: link arc séquence 1 (met sa flèche)
<>Changer sprite: link arc séquence 2 ( étire un peut la corde)
<>Changer sprite: link arc séquence 3 (sa corde est à moitié bandée)[size=1pt]J'utilise ce verbe parce que c'est le vrai mot tout simplement, et non parce que je suis un obsédé de sexe.  :ninja:[/size]
<>Changer sprite: link arc séquence 4 (arc entièrement badé, prèt à tirer la flèche)
<> Interupteur Arc pret ON
<> Attendre 0.1 sec.
       SINON
rien
FIN


Si tu ne met pas "Attendre 0.1 seconde" entre les frames de changer le sprite, tu ne verra pas les animation! Ça donne donc :

<> Détecter l'apui d'une touche: (se que tu veux, moi je prend ''Shift(7)) dans la variable Bande-arc
     <> Si la variable Bande-arc = 7 (avec un sinon)
<>Attendre 0.1 sec.
<>Changer sprite: link arc séquence 1 (met sa flèche)
<> Attendre 0.1 sec.
<>Changer sprite: link arc séquence 2 ( étire un peut la corde)
<> Attendre 0.1 sec.
<>Changer sprite: link arc séquence 3 (sa corde est à moitié [s]bandée[/s] tendue (ça c'est le vrai verbe)
<> Attendre 0.1 sec.
<>Changer sprite: link arc séquence 4 (arc entièrement tendue, prèt à tirer la flèche)
<> Interupteur Arc pret ON
<> Attendre 0.1 sec.
       SINON
rien
FIN

Ah oui effectivement!  :)
Heureusement que j'ai dit que c'était juste une base.  :rolleyes:

P-t'être pas finalement! Non c'est pas vrai ch'suis plus malin que ça. lol

La prochaine fois, je révise le code. X_X

Ma réponse était dans le but de le mettre sur la piste, et non de lui donner tout, tout cru dans l'bec comme tu l'as si bien fais.  Bref, bien joué! -_-

S'il n'apprend rien de lui même, et qu'il ne cherche jamais de solution par lui même, il n'aboutira à rien. C'est aussi simple que ça.

02 Mai 2007 à 02:28 #20 Dernière édition: 03 Mai 2007 à 01:54 par four_power
Merci ganondark mais comme l'a dit asturia tu n'était pas oubliger de me donner tout cuit mais merci beaucoup.Mais il y a une erreure dans ton code : si le héro est vers le droite il faut mettre un sprite transparent avant de décaler une fois vers la droite pour ensuite changer le sprite comme la flèche car sinon la flèche apparaitra au dessu du héro ce qui n'est pas logique.Un dernier truc je crois qu'il faut cocher ignorer commande si imprévu et ensuite détruire l'event ai-je raison?

EDIT:Ah et vous pouvez m'appeler four et pour les plus intime c'est mon petit ours en sucre ;)

EDIT2:Mais pour la colision il faut que les X et Y du monstre soitles même que les X et Y de la flèche mais ceux-ci représentent celle du héros.Que faire?

Bon ok j'ai juste 10 minutes pour t'expliquer ça mon p-tit ours en sucre.  :P
Comme je l'ai dit, ce n,est qu'une base, donc le strict minimum. Donc si tu veux que link étir son arc encore plus, c'est pas en battle charset que tu dois les faire,mais en sprites. ;)

Ensuite, moi si je dit des rponses comme ça tout cuit comme vous dites si bien, c'est parce que moi aussi j'aurais aimé avoir des réponses quand j'avais ce niveau. Et j'en n'ai jamais eu, ou presque. C'étais souvent des réponses style: Cherche un peut, c'est super facile et blablabla. Moi j,avais que 12 ans, donc les math j'en savais que les multiplication divisions soustractions et additions. Plus quelques autes trucs. Heureusement qu'un ami m,a aidé... du forum.  :rolleyes:
Bon assé parlé de moi.

CitationUn dernier truc je crois qu'il faut cocher ignorer commande si imprévu et ensuite détruire l'event ai-je raison?
Détruir quel event? On est en event commun ici!  :PO peut juste l mettre à OFF avvec une switch que tu peux cocher en haut à droite.  ;)

CitationEDIT2:Mais pour la colision il faut que les X et Y du monstre soitles même que les X et Y de la flèche mais ceux-ci représentent celle du héros.Que faire?

Le XetY héro qui est = à X et Y flèches n,est que pour la positionner. ;)
Ensuite, elle n,est que no were cette donnée. ;) Mais si tu veux éviter un quelquonque bug, une fois que ta flèche est lancé, essaie d'effacer cette donnée. ;)
Bonne chance. Et j'espère t'avoir aidé.  :)

Mais y a un prob : a chaque foit que je fait un evenement en procesus // ou en déclenchement automatique,le héros ne bouge plus! :(

Pardon!?!  :huh: Bizarre, c'est anormale ça!  :blink:
Montre moi une scren de ta prog. et qu'ça saute.  :P

En fait ca fait longtemps que j'ai détruit le projet sur lequel j'avais fait cet event.Je vais faire un truc a la va-vite et te le passer sous forme de démo.j'édite quand elle est prete.

En fais si c'est en automatique, c'est normal qu'il ne bouge pas. C'est parce que l'évènement jouera en boucle ne tant qu'évènement unique jusqu'à ce qu'il soit détruit ou annulé. Assure-toi qu'il est bien en parallele process, dans ce cas tout devrait aller comme sur des roulettes!

03 Mai 2007 à 01:53 #26 Dernière édition: 03 Mai 2007 à 01:57 par four_power
Non je me suis trompé finalement c'était un event automatique pas un event en //.Et si j'ai bien comprit,il faut toujour un event qui représente la flèche sur la map?Et c,est cet event qui va être teleporter aux X et Y du héro.Si c'est ca je comprend tout!

Oui, mais met le sur une page vide en appuis sur une touche et sous le héros et met le code de l'event (si tu en a) sur une autre page avec une switch pour l'activer, la page ayant le sprite de la flèche. Dans ton code, lorsque tu tire la flèche, active la switch qui activera ta page mais n'oublie pas de la désactiver lorsque la flèche devra disparaitre. Avec ça, ça t'évitera de ne pas pouvoir passer sur l'event avec Link.

D'accord...c'est un peu comme si on transformait l'event.Merci du conseil.Maintenant que les X et Y sont reglés,je pourrai faire la baguette de feu(de base),l'arc(de base),le grappin et les bombes chat.Maintenant reste plus qu'a trouvé une facon de faire l'appuis d'une touche pendant 3 sec. sans interuption de suite et je serai ravi!

03 Mai 2007 à 02:35 #29 Dernière édition: 03 Mai 2007 à 02:42 par MemoreX
Facile ça (je ne sas pas si je fais bien de te le dire, je le met en spoiler, si tu préfères trouver par toi-même c'est ton choix).

[spoiler] Tu as choisit la facilité? Je plésante. C'est super simple. Tu fais comme je t'ai dit plus haut mais en ajoutant quelques petites choses (fais attention que l'event soit en parralele process, je le redit mais sinon ça ne marchera pas!) :

<>étiquette 1
<>Détecter touche Valider(5) var : 0001:Z
<> FORK var : 0001:Z = 5
    <>Attendre 3.0 sec
    <> FORK var : 0001:Z var = 0 (pour voir si tu appuis toujours dessus après 3 secondes)
        <>Aller etiquette 1
    <> Sinon
     (évènement de l'arc ou autre objet)
    <> FIN
<> FIN


Voilà!
[/spoiler]

EDIT : Pour une raison quelconque, le spoiler ne fonctionne pas...

Tu pourrais mettre le code en francais car j'ai la version francaise et je suis pas top en anglais.

EDIT:Ah dommage que ca ne marche pas.Si tu trouve une autre facon dit le moi stp.Je suis ouvert a toute solution.

Ça ne fonctionne pas? Bizarre, avec moi ça fonctionne... Je dois avoir une autre part de programmation à part et le code doit être dépendant de celle-ci... Enfin, pour l'instant je ne vois pas trop comment.

Ah je crois que je sais! La variable reste à 5, même quand on lache la touche. Donc, il faudrait faire en sorte que lorsqu'on lache la touche, la variable se mette à 0...

03 Mai 2007 à 03:03 #32 Dernière édition: 03 Mai 2007 à 13:20 par four_power
LOL!Tu as dit que le spoiler ne marchait pas je croyais que tu parlais du contenu du spoiler!Mais sinon j'aime être ordoner dans mes events et j'ai mieu plein de petits events que pas beaucoup de gros donc je vais mettre un interupteur a la place des events de l'arc ect. Bah sinon merci beaucoup
EDIT : Si je récapitule ca fait ca :
Si arc équipé sur on
Étiquette1
Détecter touche valider(5) ((variable):code touche)
Si ((variable):code touche) = 5
Att. 1 sec
Si ((variable):code touche) = 5
Att. 1 sec
Si ((variable):code touche) = 5
Att. 1 sec
Si ((variable):code touche) = 5
arc boosté ON
sinon
aller a étiquette 1

Citation de: MemoreX le 03 Mai 2007 à 02:55
Ça ne fonctionne pas? Bizarre, avec moi ça fonctionne... Je dois avoir une autre part de programmation à part et le code doit être dépendant de celle-ci... Enfin, pour l'instant je ne vois pas trop comment.

Ah je crois que je sais! La variable reste à 5, même quand on lache la touche. Donc, il faudrait faire en sorte que lorsqu'on lache la touche, la variable se mette à 0...

Je crois que dans l'event ''détecter l'apui d'une touche''m il faut décocher la case qui dit: Attendre l'apui d'une touche. Et ensuite, cocher la case'' Stocker la durée de l'apui dans (Variable) ''

Je crois que c'estça qu'il faut faire. :)

Tu n'a pas comprit ; il a dit que le spoiler ne marchait pas et je croyais que c'était le contenu du spoiler.Si chez lui ca marche cela marcheras surement chez moi!