Forums Développement Multimédia

Aller au contenu

[Tutorial] Déplacer et animer un personnage

CODE

49 réponses à ce sujet

#1 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 14 mars 2010 - 17:44

Bonjour,

Il y a une question qui reviens régulièrement sur le forum : comment faire pour déplacer un personnage animé ?

J'ai donc monté un petit tuto rapide en quelques lignes qui apporte la solution pour les débutants, vous le trouverez ici : http://ressources.me...ents-personnage

Pour l'instant il n'y a que trois actions possibles : repos, gauche, droite

Mais je rajouterai d'autres possibilités par la suite.

EDIT : ce qui viens d'être fait avec l'ajout du tir, du saut et de la visée, et également avec le passage du moteur en AS3.

N'hésitez pas si vous avez des questions.
Bonne journée.

#2 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2 723 messages

Posté 14 mars 2010 - 17:48

super, moi j'attend la version sans MC !! :roll:

#3 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 14 mars 2010 - 17:53

Bah çà sera pour un niveau autre que le niveau "débutant" ;-)

Là le but du tuto c'est surtout de répondre à la demande lorsqu'elle est formulée, maintenant si tu veux rajouter une partie sans MC, avec Spritesheet et compagnie n'hésites pas çà sera une évolution.

#4 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5 771 messages

Posté 14 mars 2010 - 20:33

Voir le messageMonsieur_Spi, le 14 mars 2010 - 17:53 , dit :

[…] avec Spritesheet et compagnie n'hésite pas ça sera une évolution.

je souscris (plussoie en novlange :mrgreen: )

Sans dec ! Comment il tombe bien celui là de tuto :) je cherchais justement une décomposition de la marche :cool:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#5 ... j'ai pas de pseudo

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 17 mars 2010 - 13:11

la suite la suite la suite :D :D :D

#6 carton

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 339 messages

Posté 21 mars 2010 - 14:56

bravo super initiative
;-)
merci

Modifié par pierrotlalune, 21 mars 2010 - 14:57 .


#7 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2 992 messages

Posté 23 mars 2010 - 14:29

Quand je suis arrivé à la fin du tuto je me suis dit "Déjà? Ça y est? C'est fait? Incroyable..."
C'est vraiment super flash parfois :P
Merci.



p.s: Je sens qu'un de ces jours va falloir que j'ajoute aux ressources la possibilité de voir un tuto en mode d'affichage AS2 ou AS3. Pour celui-là par exemple c'est 3 fois rien à changer pour qu'il soit aussi compatible AS3. Enfin, je vais peut-être quand même attendre l'AS4 pour faire ça :texas:

#8 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 23 mars 2010 - 14:46

Merci à vous de vos retours ;-)

Citation

Quand je suis arrivé à la fin du tuto je me suis dit "Déjà? Ça y est? C'est fait? Incroyable..."
Vi j'aimes bien les choses simples qui marchent, après c'est peut être pas LA solution la plus optimisée mais tant que çà marche et que çà explique bien le concept ;-)

#9 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2 992 messages

Posté 23 mars 2010 - 15:19

J'avais lu une fois une recommandation pour nommer les fonctions: utiliser des verbes.
Effectivement, je trouve que ça fait des noms plus explicites et facilite la lecture du code.
Je sais plus où j'avais lu ça. C'est pas là en tout cas http://ressources.me...ge_des_methodes ;)

#10 ... j'ai pas de pseudo

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 09 avril 2010 - 19:52

la suite la suite la suite c'est super :D :D :D

#11 Hirkle

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 13 avril 2010 - 09:55

Merci beaucoup, ça vient de me débloquer :Hola:

#12 Nayrolph

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 08 mai 2010 - 08:24

Bonjours, et merci pour ce Tuto :o.

j'ai un souci j'ai repris cette logique et codé le tout en AS3.

stop();

//Variable si Hero avance.
var bouge:Boolean = false;

//Appel Ecouteurs
stage.addEventListener(KeyboardEvent.KEY_DOWN,avancer);
stage.addEventListener(KeyboardEvent.KEY_UP,assi);
stage.addEventListener(Event.ENTER_FRAME,tomber);

//mouvement au clavi test
function avancer(evt:KeyboardEvent) {

        if (evt.keyCode==32) {
                Hero.y = Hero.y-150;
        }
        if (evt.keyCode==39) {
                deplacement(1);
                if (!bouge) {
                        bouge = true;
                        Hero.gotoAndStop(2);
                }
        }
        if (evt.keyCode==37) {
                deplacement(-1);
                if (!bouge) {
                        bouge = true;
                        Hero.gotoAndStop(2);
                }
        }
}
function assi (evt:KeyboardEvent) {
                Hero.gotoAndStop(1);
                bouge = false;
}
function tomber(evt:Event) {
        if (Hero.hitTestObject(terre)) {
                trace("Touche le sol");
        } else {
                Hero.y += 10;
        }
}
function deplacement(sens) {
        Hero.x += 10*sens;
        Hero.scaleX = 1*sens;
}

//Fin Hero

On remarquera l'ajout d'un Boolean, car Flash en as3 lit que la premier image quand on reste appuyé sur la flèche.

Mais le résultat n'est pas fluide comme en AS2. Le personnage fait 1 sec e surplace.
ex: le premier est en as2 le deuxième en as3.





Merci d'avance pour votre aide.

Tuch ! :smile:

Fichier(s) joint(s)


Modifié par Nayrolph, 08 mai 2010 - 08:29 .


#13 remidebra

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 282 messages

Posté 08 mai 2010 - 09:11

Tiens Nayrolf, j'avais eu le même problème au portage en AS3 d'un de mes jeux. Vers la fin du topic il y a une des solutions plausibles: Remake Street Fighter II

#14 Nayrolph

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 08 mai 2010 - 09:25

Voir le messageUthor le cruel, le 08 mai 2010 - 09:11 , dit :

Tiens Nayrolf, j'avais eu le même problème au portage en AS3 d'un de mes jeux. Vers la fin du topic il y a une des solutions plausibles: Remake Street Fighter II

Merci :P

Je regarde ça tout de suite ^^

#15 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2 992 messages

Posté 11 mai 2010 - 13:35

Voir le messageNayrolph, le 08 mai 2010 - 08:24 , dit :

On remarquera l'ajout d'un Boolean, car Flash en as3 lit que la premier image quand on reste appuyé sur la flèche.

Mais le résultat n'est pas fluide comme en AS2. Le personnage fait 1 sec e surplace.
ex: le premier est en as2 le deuxième en as3.

Bonjour,
Si tu t'en sors n'hésites pas une seconde à venir partager le résultat. On pourra ajouter l'AS3 au tuto comme ça.
Bonne recherche.

#16 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 11 mai 2010 - 13:38

Yep,

N'hésitez pas à faire évoluer de vous même le tuto, j'avoue avoir commencé çà il y a quelques temps mais ne pas avoir le temps de m'y pencher en ce moment, je finirai la partie "à la timeline" plus tard, mais cela ne vous empêche pas de proposer des solutions plus avancées à la suite du tuto, je viendrais combler par la suite.

#17 Nayrolph

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 11 mai 2010 - 16:50

Voir le messagelilive, le 11 mai 2010 - 13:35 , dit :

Bonjour,
Si tu t'en sors n'hésites pas une seconde à venir partager le résultat. On pourra ajouter l'AS3 au tuto comme ça.
Bonne recherche.

Je n'ai pas eu le temps de m'y replonger et donc pas encore résolut la chose.
je manquerai pas de la partager.

#18 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 22 mai 2010 - 17:38

Salut,

Mise à jour rapide du tuto, ajout du saut, gravité, visée, tir et nettoyage du moteur.

@>Nayrolph

Je pense que ton problème viens de la manière dont AS3 gère les touches.
Pour palier à çà moi j'utilise en général une boucle permanente qui se charge de déplacer tout le temps le perso.
Et de Booleans pour indiquer comment il doit se déplacer lors de l'appui d'une touche.


EDIT : bon du coup j'ai aussi ajouté le passage en AS3 du tuto tant qu'à faire, la suite du tuto (si il y en a une) se fera donc en AS3.

#19 Hirkle

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 24 mai 2010 - 10:34

Très chouette. Hâte de tester tout ça :mrgreen:

#20 remidebra

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 282 messages

Posté 25 mai 2010 - 11:18

Votre grandeur vous honore Monsieur_Spi! (Ah mais non, il a déjà mis les sources disponibles, pas besoin de tenté de l'amadouer alors...)

#21 Nayrolph

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 27 mai 2010 - 13:25

Voir le messageMonsieur_Spi, le 22 mai 2010 - 17:38 , dit :

Salut,

Mise à jour rapide du tuto, ajout du saut, gravité, visée, tir et nettoyage du moteur.

@>Nayrolph

Je pense que ton problème viens de la manière dont AS3 gère les touches.
Pour palier à çà moi j'utilise en général une boucle permanente qui se charge de déplacer tout le temps le perso.
Et de Booleans pour indiquer comment il doit se déplacer lors de l'appui d'une touche.


EDIT : bon du coup j'ai aussi ajouté le passage en AS3 du tuto tant qu'à faire, la suite du tuto (si il y en a une) se fera donc en AS3.


Merci pour ses informations qui vont mettre très très très utile. :P

#22 ... j'ai pas de pseudo

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 27 juin 2010 - 10:18

merci beaucoup pour ce super tuto monsieur_spi,
cependant comment puis-je faire pour arriver au meme resultat avec une degaine de trois images clefs ?
j'ai fouillé peandant des heures et pour l'instant le meilleur reultat que j'ai obtenu est juste le perso qui degaine sans pouvoir tirer avec un code stop(); au dessu de le troisième frame du clip "perso_degaine"
c'est surement super simple mais comme je suis un tres grand debutant....
bon enfin , merci d'avance

Modifié par ... j'ai pas de pseudo, 27 juin 2010 - 10:19 .


#23 Spip93

    Ceinture Jaune

  • Members
  • PipPip
  • 18 messages

Posté 13 août 2010 - 10:05

Bonjour Messieurs, notamment Monsieur_Spi

J'ai "commencé" à lire le tuto "Déplacer et animer" un perso, mais je me suis arrêté en cours de route car j'ai deux soucis :
1) J'aimerai faire une animation "simple" (bien que ce soit un abus de langage de ma part :mrgreen: ) puisque j'aimerai que mon perso se déplace sans l'intervention de l'utilisateur; en gros, sans que l'utilisateur appuie sur la touche droite, la touche gauche etc.... Par conséquent, que dois-je modifier, voire supprimer, dans le code AS pour que mon perso se déplace tout seul ?

2) Ensuite, j'ai lu dans le tuto, qu'il fallait entre 15 et 30 images. Cela veut-il dire qu'il faut faire entre 15 et 30 dessins :shock: ? Je suis inquiet parce que, déjà je suis un dessinateur moyen (ce qui est un comble pour un infographiste) et décliner un même perso 15 fois (et je ne parle pas de 30 fois)... :? Ensuite, quand bien même j'arrive à reproduire 15 à 30 fois le même perso, je suis incapable de savoir quelle posture doit prendre mon perso, image par image. Faut-il que je me plonge dans les bouquins d'animation et de dessin ou ce n'est pas nécessaire ?

Pouvez-vous m'aider et (eventuellement) me rassurer SVP ?

D'avance merci

Modifié par Spip93, 13 août 2010 - 10:06 .


#24 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 13 août 2010 - 10:20

Salut,

Citation

1) J'aimerai faire une animation "simple" (bien que ce soit un abus de langage de ma part :mrgreen: ) puisque j'aimerai que mon perso se déplace sans l'intervention de l'utilisateur; en gros, sans que l'utilisateur appuie sur la touche droite, la touche gauche etc.... Par conséquent, que dois-je modifier, voire supprimer, dans le code AS pour que mon perso se déplace tout seul ?

En toute logique il suffit de remplacer les interventions de l'utilisateur (écouteurs clavier) par des variables ou des constantes qui vont déterminer le sens et la vitesse de déplacement. Tout dépend de ce que tu veux faire en fait, là le tuto est prévu pour animer un personnage dans un jeu. Si tu veux faire de l'animation classique, c'est à dire juste un personnage qui bouge d'un point A à un point B tu n'es pas obligé de passer par tout çà, il te faut juste l'animation de ton personnage qui bouge que tu colle dans un clip et de déplacer ce clip avec un petit code ou une Tween.

Citation

2) Ensuite, j'ai lu dans le tuto, qu'il fallait entre 15 et 30 images. Cela veut-il dire qu'il faut faire entre 15 et 30 dessins :shock: ? Je suis inquiet parce que, déjà je suis un dessinateur moyen (ce qui est un comble pour un infographiste) et décliner un même perso 15 fois (et je ne parle pas de 30 fois)... :? Ensuite, quand bien même j'arrive à reproduire 15 à 30 fois le même perso, je suis incapable de savoir quelle posture doit prendre mon perso, image par image. Faut-il que je me plonge dans les bouquins d'animation et de dessin ou ce n'est pas nécessaire ?

Là encore tout dépend de ce que tu veux faire, mais Flash n'est pas une baguette magique non plus, j'entends par là que ce n'est pas Flash qui va dessiner ton perso à ta place, lui il ne va servir qu'à l'animer et au mieux te donner des outils pour le dessiner.

Dans le tuto j'utilise une suite d'image pour faire l'animation de mon perso, comme je maîtrise un peu le logiciel Poser (soft d'animation 3D) je l'ai utilisé pour dessiner mon perso et ses mouvements. Mais rien ne t'oblige à faire çà, comme dit plus loin dans le tuto tu peux très bien le dessiner en plusieurs blocs : la tête, le torse, les bras, les jambes, par exemple, et animer chaque partie indépendamment, ce qui t'évite de redessiner tout ton perso à chaque fois.

Citation

Faut-il que je me plonge dans les bouquins d'animation et de dessin ou ce n'est pas nécessaire ?
Ben disons que sans vouloir être vexant, un infographiste qui ne sais pas faire l'animation simple d'un perso qui se déplace me pousserait à te répondre oui ! Il y a des bases à connaître, là avec mon tuto je donne les bases pour manipuler un personnage dans un jeu vidéo mais pas pour dessiner proprement ton personnage, çà c'est une base qu'on ne peut pas apprendre comme çà, il faut soit beaucoup de talent, soit connaître les logiciels et techniques qui vont te permettre de mettre en place tout çà.

Bon courage.

#25 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2 992 messages

Posté 13 août 2010 - 12:34

Voir le messageMonsieur_Spi, le 13 août 2010 - 10:20 , dit :

Si tu veux faire de l'animation classique, c'est à dire juste un personnage qui bouge d'un point A à un point B tu n'es pas obligé de passer par tout çà, il te faut juste l'animation de ton personnage qui bouge que tu colle dans un clip et de déplacer ce clip avec un petit code ou une Tween.
Bonjour,
Si tu pars sur cette piste, peut-être seras-tu intéressé par ce tout nouveau tutoriel qui explique les bases de l'animation dans flash:
http://ressources.me...cipestechniques
et
http://ressources.me...ationsmouvement

#26 lolalilo

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 03 novembre 2010 - 05:18

Alors pour le passage en AS3, je suis etonné que personne n'est fait la remarque mais y a un petit probleme sur le saut.
D'ailleurs quand on telecharge le .fla on s'en rend compte c'est que la fonction qui controle la gravité ne peut pas fonctionner du fait que false ou true, ne peuvent pas etre des valeur 1 ou 0.
Ca aurais été cool de donner la solution il me semble...

#27 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 03 novembre 2010 - 10:00

Hello,

Citation

du fait que false ou true, ne peuvent pas etre des valeur 1 ou 0

Essayes :

trace(int(true))
trace(int(false))

La valeur de l'entier correspondant à true ou false peut être trouvée sans problème.
Il n'y a donc aucun problème particulier.

#28 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 13 novembre 2010 - 14:34

Salut !
J'ai une petite question sur la gravité du personnage : lorsque le personnage redescend on voit bien qu'il revient sur le sol à gravite++, ce qui le rend fluide, sans à-coups, mais pour le faire monter, si ici je met la gravité à -20, pourquoi ne va-t-il pas par à-coups, de manière sacadée, de -20 à -20 pendant la fonction enter_frame? (je crois que l'incrémentation en "y" est faite plusieurs fois dans la fonction enter_frame n'est-ce pas : 3 fois par seconde quelque chose comme ça?) Or là la montée du perso est fluide, comme si on incrémentait la montée comme la descente, 1 par 1. Pourquoi ? :)

if (perso.y>=300) {
                perso.y = 300;
                gravite = -int(haut)*20;
        } else {
                gravite++;
        }
       
        // déplacements          
        perso.y += gravite;// vertical

Merci ! ;)

#29 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 13 novembre 2010 - 15:58

Hello, la meccanique est expliquée juste un peu plus haut dans la partie AS2 (à lire si on fait le tuto car les explications y sont données) :

Citation

Passons au vertical à présent : perso._y += gravite;

Rien de plus simple, la position du héros sur l’axe des Y est égale à la position actuelle du héros + la gravité.

Si le héros est au sol et qu’on appuie sur la touche haut sa position s’incrémente de -10.
Mais comme dès que le héros ne touche plus le sol la gravité s’incrémente de +1.
Alors la gravité va réduire à chaque pas du programme.

C’est pas clair ? Un exemple, un exemple, un exemple…

Ok voyons ça concrètement pas à pas :

Le héros est au sol, la gravité est de 0.
On appuie sur la touche « haut », la gravité est de -10 (on monte) le héros monte de 10 pixels, il n’est donc plus en contact avec le sol.
Au prochain pas du programme (la prochaine fois que la boucle est lue) la gravité est de -10+1 = -9, le héros se déplace de -9 sur l’axe Y.
Puis : -9+1=-8
Puis : -8+1=-7
Puis : -7+1=-6
Puis : -6+1=-5
Puis : -5+1=-4
Puis : -4+1=-3
Puis : -3+1=-2
Puis : -2+1=-1
Puis : -1+1=0

Ha ! Nous avons atteint le haut de courbe, à présent le héros va redescendre.

Puis : 0+1=1
Puis : 1+1=2
Puis : 2+1=3


Etc, jusqu’à ce qu’il touche le sol et que la gravité revienne à 0.

EDIT : remarque que Lilive m'avait faite, "gravité" n'est pas vraiment le bon terme ici pour représenter cette constante, je corrigerais çà dès que j'ai un peu de temps.



EDIT 2 :

Ce qui te géne c'est sans doute :

if (perso.y>=300) {
      perso.y = 300;
      gravite = -int(haut)*20;
} else {
      gravite++;
}

Si la position du perso est supérieure ou égale à 300 (donc sous le sol ou sur le sol)
  • Place le perso sur le sol
  • Si on saute la gravité est égale à -20 (le perso monte de 20 et n'est donc plus sur ou sous le sol)
Au prochain pas du programme le perso n'est plus sur le sol donc :
  • gravite++

A partir de ce moment la mécanique de la gravité se met en marche jusqu'à ce que je perso retouche le sol.

#30 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 13 novembre 2010 - 20:07

ah exact j'ai du zapper ça dans mon esprit, c'est très clair, merci de ton explication ;)

#31 user255294

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 24 avril 2012 - 16:02

Merci pour ce tutoriel très bien développé :)
Grâce à toi j'ai pu faire mon animation sur mon personnage comme je le souhaitais.

Mais j'ai une question :
lorsque que j'importe mon "perso" dans mon animation principale (sachant qu'il est censer appraître à l'image 302 de ma scène avec comme position x:353 et y:363), celui-ci ne se déplace plus.
Il exécute très bien les animations voulu en fonction des touches mais il ne se déplace plus sur l'axe "y".

Et là je sèche royalement :/

#32 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 24 avril 2012 - 16:08

Salut et merci.

Il n'est jamais bon de mélanger animation à la timeline et code complexe dans un même projet, surtout pour un jeu.
C'est une source d'erreur fréquente et qui va te pourrir la vie tout au long de ton projet.

Si le perso exécute bien ses mouvements c'est qu'il n'y a pas de problème avec les touches de déplacements, ni avec l'objet "perso" que le programme trouve bien. Reste à savoir ce qui peut bloquer le perso sur un axe, tu parles de l'axe Y, est-ce que sur X le perso se déplace bien ? Si c'est le cas vérifie quelle limite tu as mis aux déplacements sur Y, comme indiqué dans le tuto j'ai choisi de placer un sol virtuel à 300 pixels, regardes de ce côté là.

Si tu ne trouve pas envoie nous le bout de ton code qui pose problème (isole le et essaye de faire fonctionner le tout sur un fla simplifié, juste pour vérifier que le bug vient bien du code et pas de l'utilisation de la timeline au sein du projet).

#33 user255294

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 24 avril 2012 - 16:28

Merci pour ta réponse rapide, je me suis trompé concernant l'axe de déplacement, mon "perso" ne se déplace plus sur l'axe "x", et non "y".
Effectivement je souhaite l'intégrer dans un CV interactif à la manière d'un jeux-vidéo.

Voici le code pour mon perso, sachant que sur ma scène je n'ai aucuns autre code pour le moment.
(je ne sais pas si le forum resize les capture d'écran donc je met le lien directement : http://nsa21.casimag...53912203393.png ).

#34 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 24 avril 2012 - 16:37

Je ne vois rien qui puisse bloquer dans le code.
Si tu dis que le perso réagit bien (mouvements) quand tu appuie sur les touches c'est que tout est sensé fonctionner.

Envoie un FLA simplifié (supprime tout ce qui ne concerne pas le perso) au format CS3 et je regarderai ça.

#35 user255294

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 24 avril 2012 - 16:52

Bon en faisant une énième exportation, cela fonctionne correctement, sans avoir touché à quoi que ce soit.
Désolé pour le dérangement occasionné du coup :/

Encore merci pour le tutoriel qui est vraiment bien expliqué ! ;)

#36 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 24 avril 2012 - 17:22

ok pas de quoi, bon courage.

#37 Piwys

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 14 septembre 2012 - 18:31

Un tout grand merci à Monsieur Spi :D
Je suis en train de suivre le tuto, et il est tout simplement génial !! Bon par contre je ne le suis pas à la lettre, (je change les touches (j'ai créé des boutons pour y jouer sur android), j'y chipote ^^ (je ne le suis pas à la lettre, mais je le suis de A à Z, pas confondre ;)), ce qui expliquerai peut-être mon souci, mais quelle joie de trouver seul les solutions ^^
Par contre, j'ai une question, si je désire rajouté plus de map, comment je dois m'y prendre ? Jusqu'au bout du tuto, il n'y a que deux salles. Après avoir regardé (comme il faut ? ) je ne vois que deux endroits ou l'on parle de la deuxième map :
* calque 'variables' : var nbrMaps:int = 2 (qui indique donc le nombre total de map)
* calques 'murs' et 'decor' (où l'on dessine les maps)
Pourtant en ne changeant que là, ben ça fait planter le jeu...
Je m'y prends donc mal ?
Un merci d'avance quoi qu'il en soit, car j'ai appris des choses avec toi ;)

#38 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 14 septembre 2012 - 18:47

Hello,

Merci de tes retours.

En fait tu parle de ce tuto : http://forums.mediab...eux/arcade-base
La discution sur le forum à propos de ce tuto est là : http://forums.mediab...-de-plateforme/

Ta question concerne la gestion des tableaux (levels), la page qui y répond est là : http://forums.mediab...e-base/tableaux

Il faut vraiment lire le tuto en entier si tu veux comprendre comment les choses fonctionnent, tu ne peux pas te contenter de récupérer la dernière source et faire des modifs tout en lisant le tuto, il y a trop de choses à saisir avant d'en arriver à l'étape finale et le code bouge tout le temps ;-)

A la fin [etape 8 : outils], tu as un éditeur de maps qui te simplifie la vie pour la gestion/construction des levels, voir ici : http://forums.mediab...ade-base/outils
Mais le but est de comprendre comment il a été construit et pour ça il te faut te fader tout le tuto en entier sans essayer d'aller trop vite.
Si j'ai bien fait mon boulot tu devrais t'y retrouver sans problème.

Bon courage.

#39 Piwys

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 14 septembre 2012 - 19:32

Arf, désolé de mettre trompé de fil de discutions... :eusa_doh:
J'ai bien la bonne page devant les yeux depuis un moment, mais apparemment, je m'y prends mal... Bon ben j'y retourne la lire une ènième fois :)
Mais sinon, encore une fois, merci pour ce tuto ;)

EDIT: non je ne trouve vraiment pas... Soit je suis fatigué, soit je suis bête, mais une chose est sûr, je ne trouve pas :(

#40 julio69

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 22 septembre 2012 - 14:48

Bonjours, je suis un lecteur assidu de votre tutoriel.
Je suis parvenu, grâce à celui-ci, à faire bouger mon perso à gauche et à droite et à l'accroupir.
Seulement, je ne parvient pas à le faire bouger tout en gardant accroupis.
Voilà le code du "moteur" :


function moteur() {

// variables
sens = k(d)-k(g);// orientation
aucune = !k(g) && !k(d) && !k(h) && !k( B)// aucune action
lateral = k(d) || k(g);// mouvement latéral
accroupis = k( B);

// déplacements
corp._x += vitesse*sens;// horizontal

// mouvements
if (sens)corp._xscale = 100*sens;// oriente le perso
if (aucune) mouvement(1);// repos
if (lateral) mouvement(2); // droite et gauche
if (accroupis) mouvement(3); // accroupis
if (accroupis && lateral) corp.anim.play();
}
// animation du perso
function mouvement(mouv) {
if (corp._currentframe != mouv) {
corp.gotoAndStop(mouv);
}
}
Pouvez-vous m'aider?

#41 julio69

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 22 septembre 2012 - 14:49

Oups. le smiley correspond à : k( b )

#42 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 22 septembre 2012 - 15:24

Bonjour,

Qu'entends tu par "marcher accroupis" ?
Tel quel le tuto n'est pas fait pour combiner ces deux mouvements, pour bien faire il faudrait rajouter une animation spéciale où le perso marche accroupi et appeller cette animation lorsqu'on utilise la combinaison de deux touches (bas et droite ou bas et gauche par exemple).

Si je ne me trompe pas tu utilise la ligne suivante :

if (accroupis && lateral) corp.anim.play();

Mais tu ne coupe pas les mouvements précédents, c'est à dire :

if (lateral) mouvement(2); // droite et gauche
if (accroupis) mouvement(3); // accroupis

Pour bien faire il faudrait quelque chose du genre :


if (lateral && !accroupis) mouvement(2); // droite et gauche
if (accroupis && !lateral) mouvement(3); // accroupis
if (accroupis && lateral) mouvement(4); // le mouvement qui correspond (à créer)
 

D'autre part, je te conseille de partir avec la version AS3 du tutoriel, tu la trouvera à la fin de la page, c'est beaucoup mieux car AS2 est obsolète depuis un moment.

Bon courage.

#43 julio69

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 22 septembre 2012 - 20:31

Je ne sais pas si vous connaissez super Castlevania 4? Le personnage que l'on contrôle (Simon Belmont) peut : se déplacer à gauche et à droite, sauter, s'accroupir et se déplacer tout en restant accroupis.
Voilà ce que j'entend par "marcher accroupis"

#44 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6 598 messages

Posté 22 septembre 2012 - 21:23

Oui donc il te faut une animation spécifique, ou comme dit dans le tuto, il faut que tu prévoie de travailler ton personnage en deux blocs distincts (torse et jambes). Quand au code, comme je te le disais plus haut, il faut faire attention sur les commandes afin que l'une ne prenne pas le pas sur les autres, il faut donc bien étudier tous les mouvements possibles et dire à ton programme de n'exécuter tel mouvement que si tel ou tel autre mouvement ne vient pas perturber l'ensemble.

#45 julio69

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 22 septembre 2012 - 23:32

ok, merci



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP