CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[flash]Pression de touche => action

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 19:59:13

Bonjour a tous ^^ :)
J´ai cherché et tenté plusieurs choses pour régler mon problème mais je m´avoue vaincue et espère que quelqu´un aura la réponse :-)

Voila je voudrait que lorsqu´on appuie sur la touche "haut" le personnage saute.

Voila mon code qui devrait faire sa :
if (Key.isDown(Key.UP)) {
yspeed=-10;

}

Malheureusement ce code fait : tant que la touche "haut" est enfoncé yspeed=-10;
Or je voudrait : lorsqu´on appuie sur la touche "haut" yspeed=-10;

j´ai d´abbord lu que les touches se comportent comme des interupteurs et que donc je ne pouvait pas faire sa a part en bidouillant :
J´ai cherché a faire :
Tant que la touche "haut" est enfoncé, pendant une seconde yspeed=-10; ensuite yspeed=0;
Et il faut donc réapuiyer sur la touche "haut" pour sauter a nouveau...
Mais même en utilisant la fonction qui donne la date et la focntion qui donne le temps depuis le lancement de l´animation et en bidouillant j´ai pas réussit :(

Ensuite j´ai cherché voir s´il n´y avait pas une fonction pour faire une action au relachement de la touche mais ce que j´ai trouvé ne marche pas non plu :(

Enfin voila si quelqu´un connait une façon de faire sa :
Lorsqu´on appuie/relache la touche "haut" yspeed=-10;

:merci: d´avance a quiconque poura m´aider ou m´éguyer vers un tuto ou n´importe quoi qui pourait m´ettre utile :-d

dynoplasmma
dynoplasmma
Niveau 9
06 mai 2006 à 22:25:26

Es ce que en flash, tu as quelque chose qui te dit si une touche est enfoncée, et si unt touche n´est pas enfoncé ?

Si oui :

INITIALISATION
PossibiliteSaut = 0
Saut = 0

TEST
Si (touche haut pressee) Possibilitesaut = 1
Si (touche haut relachee ET PossibiliteSaut ==1) possibiliteSaut = 0 ET saut = 1

ACTION
si (saut == 1 et hauteur ...
Apres ici tu met saut a 2, puis a 3, et a la fin il est egal a 0, comme ca tu fait sauter ton bonomme une fois, jusque a ce que possibilite saut revienne a 1 ainsi que la touche haut relachee.

J´espere t´avoir aidé :)

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 22:37:35

Super ton idée ! sa marche nickel :-d :merci:

Par contrei l me reste un problème : avec sa même en l´air je peut ressauter ^^
J´ai voulu rajouter une condition :
Si la touche haut est relachée et si la possibilité de saut vaut 1 et si la balle est immobile verticalement alors tu peut sauter ^^
Mais la sa marche plu :(

dynoplasmma
dynoplasmma
Niveau 9
06 mai 2006 à 22:45:03

Eviter que le perso ressaute en l´air ?

Premiere facon : tu inclu la hauteur, c´est a dire que tu peux sauter que si ta balle est a la hauteur ou tu peux sautter.

Deuxieme facon, la tienne en la corrigent, par exemple si la touche est relachée ET la possibiliteSaut vaut 1 ET le saut vaut 0, c´est a dire que le perso ne saut plus :)

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 22:57:22

je peut pas incluer la hauteur car je veut faire un genre de truc ou il faut justement grimper le plus haut possible en sautant sur des bout de terrain :snif:

Deuxieme facon, la tienne en la corrigent, par exemple si la touche est relachée ET la possibiliteSaut vaut 1 ET le saut vaut 0, c´est a dire que le perso ne saut plus :)

Jeu peut faire exactement :
"Apres ici tu met saut a 2, puis a 3, et a la fin il est egal a 0, comme ca tu fait sauter ton bonomme une fois, jusque a ce que possibilite saut revienne a 1 ainsi que la touche haut relachee. "

Mais c´est une bonne idée la aussi , faut que je rajoute une variable qui indique quand je saut est terminé :hap:

:merci: encore une fois

dynoplasmma
dynoplasmma
Niveau 9
06 mai 2006 à 22:59:43

Une variable pour dire quand le saut est terminee ?
pas besoin, le saut est terminee quand saut est egal a 0 !

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 23:08:29

sa doit ètre faisable en flash mais je peut pas a cause de la façon dont je fait bouger ma balle (enfin je coris ) :
(juste pour les mouvement en y )
Par défaut :
yspeed=-10;
gravity=2;
drag=0.95;

yspeed = yspeed*drag+gravity;

setProperty(_root.balle,_y,getProperty(_root.balle
,_y)+yspeed);

:d) donc lorsque je met saut elle part vers le haut puis yspeed devient de plus en plus grand a cause de l´effet "gravité" et ensuite quand il est positif poof la balle redescent et se pose.
Le problème c´est qu´avec sa la balle a tendance a avoir sa vitesse y qui augmente a l´infinnit :hap:
Donc j´ai rajouté un truc qui fait que lrosqu´elle touche le sol
yspeed=0;
mais au final a cause de la gravité
yspeed=2 :hap:

Je voulait donc rajouter une variable :
saut autorisé si touche haut non enfoncé, possibilité saut=1 et yspeed=2 mais la sa marche pas :-(

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 23:12:15

Ps : code de saut qui marche :
if (Key.isDown(Key.UP)) {
temps=1;
}

if (Key.isDown(Key.UP) == false) {
if (temps==1) {yspeed=-10; temps=0;}
else{}

}

Mais quipermet le saut en hauteur ^^

Code qui ne doi pas permtre le saut mais ne marche pas :( :

if (Key.isDown(Key.UP)) {
temps=1;
}

if (Key.isDown(Key.UP) == false) {
if (temps==1) {
if (yspeed==2) {yspeed=-10; temps=0;}
else{}

}
else {}
}

[J´ai mit temps a la place de possibilitésaut pour réson personelle ^^ ]

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 23:14:55

Ps2: (vivement la fonction édit sur jv.com :p) )
en faitsa vient pas de mon code mais du contact avec le sol faut quej e voit sa :doute:

dynoplasmma
dynoplasmma
Niveau 9
06 mai 2006 à 23:25:19

Hum, tu devrais mettre des noms de variables plus claire, drag, par exemple, je sais pas du tout se que ca signifie.

Mais pour faire sauter t´embete pas avec la gravité.

Moi pour gerer mes sauts, j´ai prit la hauteur du debut, je diminue balle.y, si il est arrivé a hauteurAvantSaut - hauteurDunSaut, alors il redescend jusque a la hauteurAvantSaut.

if(saut==1) HAS(hauteur avant saut) = balle.y, saut++;

if(saut==2 && perso_y>HAS-10)perso_y-=2;
if(saut==2 && perso_y==HAS)saut=3;

if(saut==3 && perso_y>HAS-20)perso_y-=1;
if(saut==3 && perso_y==550)saut=4;

if(saut==4 && perso_y<HAS-10)perso_y+=1;
if(saut==4 && perso_y==HAS)saut=5;

if(saut==5 && perso_y<HAS-5)perso_y+=2;
if(saut==5 && perso_y==HAS)saut=0;

Le probleme ici c´est que la vitesse c´est toi qui la definit, et non croissante/decroissante.

Ie-solarien
Ie-solarien
Niveau 10
06 mai 2006 à 23:45:24

J´ai réglé le problème en bidouillant en bout de ficelle :p) Au lieu de mettre une vitee y négative qui la fait monter puis descendre, elle monte d´un coup puis descend ^^ (C´est pas pro du tout mais c´est tout ce que je peut faire j´ai des problème avec la focntion "hitTest" :p) )

Hum, tu devrais mettre des noms de variables plus claire, drag, par exemple, je sais pas du tout se que ca signifie.

:d) Lorsque j´ai commencé le flash j´ai suivit un tuto qui explique comment simuler un déplacement en action scritp
( j´ai améloré le résultat final ici ^^
http://membres.lycos.fr/soly/monpremierjeu3.html et ici
http://membres.lycos.fr/soly/monpremierpong.html j´avoue que c´est pasl e top du top mais je suis fier vu que il y a une semaine je n´avais jamais toutché a flash :p) ) et pour tout les ddéplacment que j´ai eu a simuler j´ai gardé le même principe du coup je mi retrouve mais c´est sur que je fait pas clair ^^
drag=résistance de l´air ^^

:d) ta technique c´est de l´action script :doute: ^^
Enfin j´ai compris le principe et effectivement meêm si sa ma l´air plus compliqué c´est aussi plus pratique pour ce que je vais faire a l´avenir (un perso qui bouge & co ... ) mais sur le coup pour faire bouger mon perso je me suis servis de ce que je conaissait :hap:

Je vais enresgistrer sous et modifier sa si j´ai le courage parce que je suis crevé :sleep:

dynoplasmma
dynoplasmma
Niveau 9
07 mai 2006 à 00:21:36

Pas mal ton mini jeu ! :)

En effet c´est totalement different de ce que je pensais, ma technique est donc forcement mauvaise pour ce genre de situation.

Par contre dans ton pong on pourras jamais marquer un seul point.

Pourquoi ?
parce que la zone de la raquette ou l´on tappe la balle ne change rien, et vu que la raquette ennemi suit la coordonné verticale de la balle, et augmente sa vitesse, c´est impossible.
Faudrais lui donner une vitesse constante, et encore mieux, selon l´endroit ou l´on tappe la balle, la balle part differemment.

Ie-solarien
Ie-solarien
Niveau 10
07 mai 2006 à 11:25:15

:merci:

ben maintenant moi je m´en fiche du mouvement gravité etc... Ce qui m´importe c´est touche gauche bouge a gauche touche droite bouge a droite touche haut saute...
J´ai plu besoin de la gravité etc... Surtout que j´ai des problèmes dur a résoudre avec les bords après :hum:

Par contre dans ton pong on pourras jamais marquer un seul point.

Pourquoi ?
parce que la zone de la raquette ou l´on tappe la balle ne change rien, et vu que la raquette ennemi suit la coordonné verticale de la balle, et augmente sa vitesse, c´est impossible.
Faudrais lui donner une vitesse constante, et encore mieux, selon l´endroit ou l´on tappe la balle, la balle part differemment.
:d) je sias c´estl a seule AI que j´ai trouvé a faire avec mon niveau de connaissances :rire2:
Par contre pour selon l´endroit ou on tape la balle par différement cv´est possible : mais il fodrait que je décompose chaques raquette en plusieur morceau qui réagissent différement faudra quej e le fasse dès que j´ai le tems

dynoplasmma
dynoplasmma
Niveau 9
07 mai 2006 à 14:05:28

Oui, quand j´ai commencé mon pong ya longtempt (toujours pas finit) Je faisait pareil, je renvoyait directement, mais j´ai ensuite decoupé en zone, ca a ete source de bug, suffit de faire un calcul simple selon l´endroit ou l´on tappe ca te donne un chiffre de -5 a 5, et apres suffit de faire l: balle_y+=cechiffre;
ca devrait marcher je pense, apres fauf bidouller pour trouver le calcul, mais ca doit as etre si compliquer que ca.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment