begin process at 2012 05 27 02:19:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

deplacement d'un personnage pour un jeu


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

deplacement d'un personnage pour un jeu

samedi 28 juillet 2007 à 13:05:06 | deplacement d'un personnage pour un jeu

mystif

bonjour,

je suis débutant et essaie de faire un petit jeu.
le probleme est le suivant : je parviens a deplacer mon personnage, avec les touches directionnelles du clavier, mais lorsque je relache la touche, le personnage continue de s'animer (bras et jambes), alors que je voudrais qu'il passe a la position statique.

voici le code

function variables()
{
fee_mc.mouvement=15;
fee_mc.attack = false;
fee_mc.statique= 1;

keydown=false;

}



function Movement()
{

if (Key.isDown (Key.RIGHT) )
{

fee_mc.statique=1;
fee_mc._x+=fee_mc.mouvement;
fee_mc.gotoAndStop("marche-droite");

}



else if (Key.isDown (Key.LEFT) )
{

fee_mc.statique=1;
fee_mc._x-=fee_mc.mouvement;
fee_mc.gotoAndStop("marche-gauche");

}




else if (Key.isDown (Key.DOWN) )
{
fee_mc.statique=1;
fee_mc._y+=fee_mc.mouvement;
fee_mc.gotoAndStop("marche-face");

}

else if (Key.isDown (Key.UP))
{
fee_mc.statique=1;
fee_mc._y-=fee_mc.mouvement;
fee_mc.gotoAndStop("marche-dos");
}

else if (!Key.isDown () )
{
fee_mc.gotoAndStop("statique");


}
};


variables();





onEnterFrame = function()
{


RenderEnemy();



if(!fee_mc.attack && !fee_mc.jump)
{
Movement();
}

if(fee_mc.jump)
Jump();

if(fee_mc.attack)
{
Attack();
}



if (Key.isDown (Key.CONTROL))
{
keydown=true;
}
else keydown=false;


}




merci par avance de votre aide
mardi 31 juillet 2007 à 13:37:42 | Re : deplacement d'un personnage pour un jeu

Darkrats

Salut,


Je n'ai pas testé ton code pour le débugger mais voici un code que j'ai déjà maintes fois utilisés et qui fonctionne très bien (ce code n'est pas de moi à la base, je l'ai trouvé en étudiant des tutoriaux sur la conception de jeu : Tonypa) :
(j'ai supprimé les actions qui ne t'étaient pas utiles)
function detectKeys() {
var keyPressed = false;
if (Key.isDown(Key.RIGHT)) {
keyPressed= true;
} else if (Key.isDown(Key.LEFT)) {
keyPressed= true;
} else if (Key.isDown(Key.UP)) {
keyPressed= true;
} else if (Key.isDown(Key.DOWN)) {
keyPressed=true;
}
if (!keyPressed) {
ob.clip.char.gotoAndStop(1);
} else {
ob.clip.char.play();
}
}
Ce code lancé dans ta boucle du jeu te permet d'annuler l'action dés qu'on relache la touche. (grâce à la variable qui ne prend la valeur "vraie" que lorsqu'une touche est enfoncée), ça permet aussi une plus grande optimisation du code car l'animation du déplacement est géré de manière plus générique.

Pour ton code, comme je l'ai dit, je ne l'ai pas testé, mais le problème doit venir de là :
if (!Key.isDown () ){
    fee_mc.gotoAndStop("statique");
}
Je pense que !Key.isDown() ne sera jamais vrai car il faut passer un paramètre à la propriété : isDown.

Courage

--------- Darkrats ---------
la loi est dure mais c'est la loi
Si je ne réponds pas assez vite, rappelez-moi par MP (assez vite, j'ai dit :P)
lundi 31 mai 2010 à 01:52:07 | Re : deplacement d'un personnage pour un jeu

solf



une autre solution; tu utilise un ecouter pour savoir si la touche du clavier à bel et bien été relâchée

var keyListener:Object = new Object();

keyListener.onKeyUp = function() {

if (Key.getCode() == Key.RIGHT) {
trace("vraie"); (ici par exemple tu peux mettre l'action a jouer)
}
Key.addListener(keyListener);

SOLF


Cette discussion est classée dans : mc, key, statique, isdown, fee


Répondre à ce message

Sujets en rapport avec ce message

Jeu de plateforme > saut de personnage [ par Gizmil ] Salut, J'ai décidé de créer un petit jeu de plateforme en Flash mais je ne suis pas encore un génie en ActionScript, loin de là, donc j'aimerais c dupliquer un clip et ses fonctions [ par nat74 ] Bonjour.J'ai créé des clips que l'on peut déplacer dans tous les sens par drag and drop, quel'on peut faire tourner avec   les flèches du clavier et q Flash AS [ par gozila ] Alors je vous presente mon probleme.Je veux deplacer mon perso et qu'il se remette de face a chaque fois que l'on relache les fleches car la sur mon c Problème de fluidité [ par Palleas_44 ] Bonjour, Je suis en train de développer un jeu de vaisseau pour le fun, et il s'avère que le déplacement de mon vaisseau principal n'est pas fluide du flash ne reconné pas les code pour l'activation des touches [ par analplus ] bonjour je fé un pti jeu flash mais mon gro pb est ke flash ne reconnait pas les touche ex; je ve lancer l'anim sur la touche "a" il me la lance sur n déplacement d'un ennemi pour un jeu de combat [ par vegetalain ] Coucou... alors voilà je voudrais faire un jeu de combat genre street fighter...dans le clip de mon perso principal j'ai mis ça :onClipEvent(load){sau Double pression touche clavier key.isDown [ par palancas ] Hello à tous, bonne année 2011 ! J'aimerais avoir un peu d'aide par rapport à l'utilisation de la méthode key.isDown Je réalise un mini-jeu vidéo en mon perso ne s'arret jamais de courrire... [ par bloodnail ] bonjour,j'ai commencer un nouveau jeux d'aventure au style Double Dragon au nes.voici le script que jai mis sur mon perso :--------------------------- déplacer images [ par JCpp ] <?xml:namespace Désactiver une touche du clavier ...onEnterFrame ..Key.isDown(32).. [ par syl999 ] Pour un simple jeu, il faut que l'utilisateur presse la barre d'espace entre la frame 100 et 110 pour gagner. J'ai donc placé un movie clip nommé [i]


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales