Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉPLACEMENT D'UN PERSONNAGE ANIMÉ AVEC L'ACTION SCRIPT V2 (FLASH MX & MX2004)


Information sur la source

Catégorie :ActionScripts Niveau : Débutant Date de création : 23/01/2004 Date de mise à jour : 25/01/2004 12:50:29 Vu / téléchargé: 15 698 / 2 076

Note :
9 / 10 - par 4 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
C'est pas le code définitif mais ca commence a se mettre en place. Ne soyez pas trop dur avec moi je suis encor qu'un débutant ^^
Bref cette animation nous montre qu'on peut facilement bouger un personnage avec les fléches du clavier. Le bug a été a moitié corrigé, lorsqu'on appuie sur les deux touches en meme temps, une seule répond.
Tout le code se trouve sur l'image 1.
 

Source

  • // on defini ici deux variables qui nous serviront par la suite
  • vard = false;
  • varg = false;
  • // on implante un ecouteur de key
  • ecouteur = new Object();
  • // cet ecouteur sert a replacé l'occurence quand une touche est relaché
  • ecouteur.onKeyUp = function() {
  • // prendre le code de la touche
  • laTouche = Key.getCode();
  • //si le code de la touche = 39 ou 37 (droite ou gauche)
  • if (laTouche == 39 || laTouche == 37) {
  • //l'occurence valki va stopper sur l'image "repo"
  • _root.valki.gotoAndStop("repo");
  • // la variable vard et varg = false
  • _root.vard = false;
  • _root.varg = false;
  • }
  • //si le code de la touche = 37 (gauche)
  • };
  • Key.addListener(ecouteur);
  • // les instructions qui suivent seront éffectués 12 fois par secondes (onEnterFrame)
  • valki.onEnterFrame = function() {
  • // si la touche enfoncé est RIGHT
  • if (Key.isDown(Key.RIGHT)) {
  • // et si la variable varg = 0
  • if (_root.varg == 0) {
  • // le clip se tourne vers la droite
  • this._xscale = 100;
  • //l'occurence valki va jouer a partir de l'image "cour"
  • this.gotoAndPlay("cour");
  • // la variable varg est egale a 1 (si on n'utilise pas cette variable, l'occurence se met 12 fois par secondes sur l'image "cour" l'animation est donc impossible. Ici cette action (depuis if (Key.isDown(Key.RIGHT))n'est utilisé qu'une seule fois
  • _root.varg++;
  • }
  • // la position vertical de l'occurence est augmenté de 15 pixel, 12 fois par secondes
  • this._x += 15;
  • } else {
  • if (Key.isDown(Key.LEFT)) {
  • // et si la variable vard = 0
  • if (_root.vard == 0) {
  • // le clip se tourne vers la gauche
  • this._xscale = -100;
  • //l'occurence valki va jouer a partir de l'image "cour"
  • this.gotoAndPlay("cour");
  • // la variable vard est egale a 1
  • _root.vard++;
  • }
  • // la position vertical de l'occurence est diminué de 15 pixel, 12 fois par secondes
  • this._x -= 15;
  • }
  • }
  • };
// on defini ici deux variables qui nous serviront par la suite
vard = false;
varg = false;
// on implante un ecouteur de key
ecouteur = new Object();
// cet ecouteur sert a replacé l'occurence quand une touche est relaché
ecouteur.onKeyUp = function() {
	// prendre le code de la touche
	laTouche = Key.getCode();
	//si le code de la touche = 39 ou 37 (droite ou gauche)
	if (laTouche == 39 || laTouche == 37) {
		//l'occurence valki va stopper sur l'image "repo"
		_root.valki.gotoAndStop("repo");
		// la variable vard et varg = false
		_root.vard = false;
		_root.varg = false;
	}
	//si le code de la touche = 37 (gauche)
};
Key.addListener(ecouteur);
// les instructions qui suivent seront éffectués 12 fois par secondes (onEnterFrame)
valki.onEnterFrame = function() {
	// si la touche enfoncé est RIGHT
	if (Key.isDown(Key.RIGHT)) {
		// et si la variable varg = 0 
		if (_root.varg == 0) {
			// le clip se tourne vers la droite
			this._xscale = 100;
			//l'occurence valki va jouer a partir de l'image "cour"
			this.gotoAndPlay("cour");
			// la variable varg est egale a 1 (si on n'utilise pas cette variable, l'occurence se met 12 fois par secondes sur l'image "cour" l'animation est donc impossible. Ici cette action (depuis if (Key.isDown(Key.RIGHT))n'est utilisé qu'une seule fois
			_root.varg++;
		}
		// la position vertical de l'occurence est augmenté de 15 pixel, 12 fois par secondes
		this._x += 15;
	} else {
		if (Key.isDown(Key.LEFT)) {
			// et si la variable vard = 0
			if (_root.vard == 0) {
				// le clip se tourne vers la gauche
				this._xscale = -100;
				//l'occurence valki va jouer a partir de l'image "cour"
				this.gotoAndPlay("cour");
				// la variable vard est egale a 1
				_root.vard++;
			}
			// la position vertical de l'occurence est diminué de 15 pixel, 12 fois par secondes
			this._x -= 15;
		}
	}
};

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • valkyrieMX.flaTélécharger ce fichier [Réservé aux membres club]34 304 octets
  • valkyrieMX2004.flaTélécharger ce fichier [Réservé aux membres club]69 120 octets
  • valkyrieMX2004.swfTélécharger ce fichier [Réservé aux membres club]Voir ce fichier11 306 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de pegase31 le 23/01/2004 19:14:48 administrateur CS

Même remarque que pour les boules de neige : rien dans ton code ne justifie le format (MX 2004) de ta source et de ton anim ! :(

signaler à un administrateur
Commentaire de Prouprou_Sensei le 23/01/2004 20:00:13

C bon ca devrait etre compatible flash mx maintenant merci de m'avoir prévenu!
A tchao.

signaler à un administrateur
Commentaire de individis-bis le 24/01/2004 14:02:49

->>>pagase31
Et alors...? s'il n'a pas autre chose que MX 2004 il fait comment..???

signaler à un administrateur
Commentaire de Prouprou_Sensei le 25/01/2004 12:53:27

Voila je l'ai un peu modifié mais il reste toujours un probleme, si on appui sur la touche gauche et en meme temps sur la touche droite, la touche droit prend la prioritée mais j'aimerais bien que rien ne se passe si une touche est enfoncée et qu'on en enfonce une en meme temps.
Si quelqu'un a la solution...
Tchao !

signaler à un administrateur
Commentaire de pegase31 le 25/01/2004 14:24:11 administrateur CS

->>>individis-bis
Déjà, c'est "pegase" et pas "pagase" ...
ensuite, j'aimerais savoir si tu fais du flash depuis longtemps, car il y a un truc qui s'appel "paramètres de publication" et que dans l'onglet "flash" t'as un menu déroulant "version" ... et qui (Ô miracle) permet de sauvegarder ta source au formats antèrieurs de Flash.

pour Prouprou_Sensei :
Merci d'avoir si rapidement changé tes sources ! ;)

signaler à un administrateur
Commentaire de mywmaster le 26/01/2004 11:35:23

salut

>>>pegase31
Je suis débutant. Et ça ma fait froid dans le dos de voir ta réponse à individis-bis . Je pense que ce sont des remarques à éviter pour ne pas démotiver les troupes.
Voilà, C'était tout.

signaler à un administrateur
Commentaire de firfelin le 26/01/2004 18:34:03

hello,
c'est sûrement tout bête, mais j'ai un peu de peine à saisir l'emploi de tes deux variables...:-( Aurait tu l'amabilité de détailler un petit peu plus?

signaler à un administrateur
Commentaire de benjaoul le 26/01/2004 18:42:21

Franchemnt bien ta source mais j'aimerais savoir où faut-il placer un scrpit pour faire défiler un décor en fonction de la course du perso ?
merci

signaler à un administrateur
Commentaire de Prouprou_Sensei le 26/01/2004 22:09:28

jvé mettre des explications supplémentaires demain les gars si vous voulez, et benjaoul il suffit de mettre un script dans le meme genre que celui placé sur le perso mais ciblé sur un autre clip (le decor ici) je ferais un scrolling de paysage , je le mettrai dans la source tu verra c'est pas dur, je fais tout ca demain (mardi).
Tchao !
PS merci pour la note!

signaler à un administrateur
Commentaire de Prouprou_Sensei le 26/01/2004 22:44:56

PS2: allez voir sur http://cochire.free.fr/flashmo/valkyrie.html
...http://cochire.free.fr/flashmo/valkyrie.html...
c'est l'animation en entiere, c'est lourd (en taille) et c loin d'etre fini mais vous pouvez toujours jeter un coup d'oeil ^^
Tchao !

signaler à un administrateur
Commentaire de benjaoul le 27/01/2004 21:16:14

:D Bien l'anim. C'est carrément un jeu que tu vx faire, non ?
Sinon, ce serait cool que tu rajoutes le scrolling sur la source ; mon niveau de débutant ne me permettrait pas d'y parvenir :(  lol
merci
T'cha

signaler à un administrateur
Commentaire de Stan62970 le 26/03/2005 15:06:30

salut
où trouve tu le graphisme des perso ?????

signaler à un administrateur
Commentaire de Zakata le 03/09/2006 20:29:31

Salut à tous,

J'aime beaucoup ta source, je suis débutant en actionSript et j'aurais quelques questions:

je ne comprend pas l'utilité de ces deux lignes:

1)- Key.addListener(ecouteur);
et
2)- valki.onEnterFrame = function()

et oui je début vraiment ;)...
Pour la ligne 2), j'imagine que c'est une fonction qui s'éxécute mais je ne la comprend pas très bien.

J'ai aussi une remarque à faire:

j'ai l'impréssion que le else de la ligne 36 (sur le code ci-dessus)ne sert à rien. En gros tu fait:

# valki.onEnterFrame = function() {
#     if (Key.isDown(Key.RIGHT)) {
#         if (_root.varg == 0) {
#             [...]
#         }
#         this._x += 15;
#     } else {
#         if (Key.isDown(Key.LEFT)) {
#             if (_root.vard == 0) {
#                 [...]
#             }
#             this._x -= 15;
#         }
#     }
# };

C'est bizard de faire else et aprés if (Key.isDown(Key.LEFT)), car finalement le else sous entend le if (Key.isDown(Key.LEFT)) ?
Enfin peut être que je n'ai rien compris.

J'ai essayé de le suprimmer et ton code fonctionne très bien sans.

Voila a plus et encore merci d'avoir partagé ta source, elle répond exactement aux questions que je me posais.

Bonne journée.
Damien.

signaler à un administrateur
Commentaire de Prouprou_Sensei le 04/09/2006 01:30:48

Salut Zakata.

Alors attention, j'ai ecrit cette source quand j'aprennais a coder, et je te conseil d'utiliser plutot des tuto ou meme mieux des bouquins pour apprendre. Cela etant dis, je peut t'expliquer ce que tu ne comprends pas.

Key.addListener(ecouteur) permet d'enregistrer l'ecouteur en tant que tel sur l'objet Key. Ainsi, les evenements du clavier (utilisateur appuyant sur une touche ou la relachant) sont envoyé a l'ecouteur. On a definit la methode onKeyUp, le code contenu dans cette methode sera executé lorsque l'on relache une touche.

valki.onEnterFrame = function() : onEnterFrame est une methode de la classe movieClip qui permet d'executer du code a chaque frame (en fonction de l'animation donc)

Et effectivement j'aurais pu mettre :

# valki.onEnterFrame = function() {
#     if (Key.isDown(Key.RIGHT)) {
#         if (_root.varg == 0) {
#             [...]
#         }
#         this._x += 15;
#     } else if (Key.isDown(Key.LEFT)) {
#             if (_root.vard == 0) {
#                 [...]
#             }
#             this._x -= 15;
#         }
#     }
# };

Mais le else reste necessaire pour eviter l'appui des deux touches en meme temps, et le test de la condition aussi (if).

Bonne continuation !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.