Dans ce petit tutoriel Flash je vais vous montrer comment créer une une gravité sur un personnage comme dans la pluspart des jeux de plateformes.
Commençons !
Télécharger les fichiers
- Sauvegarder sur votre ordinateur ces 2 images (Click droit > Enregistrer sous)
- Ourvir Flash (CS3, CS4 ou CS5) et créer un nouveau document ActionScript 3.0
- Régler les propriétés du document à 24 ips, et 550×400 px (propriétés par défaut)
Création d'un MovieClip pour le héros
- Créer un nouveau symbole : Insertion > Nouveau Symbole > MovieClip
- Nom du symbole: Hero (en Anglais, oui c'est la convention :))
- Cocher : Exporter pour ActionScript
- Enfin Cliquer OK
- Maintenant vous vous trouvez dans le symbole du Hero. Super !
- Importer le premier sprite de mario : mario_stand.png sur la première image clé.
- Fichier > Importer > Importer sur la scène > mario_stand.png
- Placer le sprite juste au dessus du repère local du symbole (la petite croix noire)
- Maintenant créer une nouvelle image clé vide sur le scénario un peu plus loin :
- Scénario> autre image sur le scénario > Click droit > Ajouter une image clé vide
- Importer la seconde image : mario_jump.jpg sur l'autre image clé
- Insertion > Sénario> Nouveau calque
- Ensuite créer un nouveau calque et ajouter 2 noms d'étiquette
- Sur le scénario cliquer sur la première image clé où se trouve le mario_stand.png et aller dans la panneau Propriétés : Etiquette > Nom > stand
- On the timeline click on the second key frame with the mario_jump.png sprite and go to the Properties pannel > Label > Name > jump
- Sur le scénari cliquer sur la seconde image clé où se trouve le mario_jump.png et aller dans le panneau Propriétés : Etiquette > Nom > jump
Ajouter le code du saut
- Revenir sur la scène principale : Cliquer sur Scène 1
- Ajouter un nouveau calque nommé « Actions » : Insertion > Scénario > Nouveau calque
- Puis ouvrir le panneau Action : Scénario > Calque Actions > Clic que une image clé > Clic Droit > Actions
- Enfin copier/coller ce bout de code :
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
// La gravité
var gravity = 0.8; // La position du sol (y) var floor = 300; // Ajouter le MovieClip du héros var hero = new Hero(); // Position en x du héros hero.x = 550/2; // Position en y du héros hero.y = floor; // Mettre l'état du héros à l'état "stand" hero.gotoAndStop("stand"); // Ajouter le héros sur la liste d'affichage addChild(hero); // Création de la propriété speedY sur le héros et l'initialiser à 0 hero.speedY = 0 // Création de la propriété impulsion sur le héros et l'initialiser à 10 hero.impulsion = 10; // Ajout d'un écouteur d'événement entre chaque frame sur le héros hero.addEventListener(Event.ENTER_FRAME, heroEnterFrame) function heroEnterFrame (pEvent) { // Entre chaques frames // Appliquer la gravité sur la vitesse hero.speedY += gravity; // Bouger le héros en fonction de sa vitesse hero.y += hero.speedY; // Si le y du héros dépasse la limite du sol if (hero.y > floor) { // Le héros est replacé au niveau du sol hero.y = floor // Anuler la vitesse actuelle en cas de contact avec le sol hero.speedY = 0; // changer l'état du héros pour l'état "stand" hero.gotoAndStop("stand"); } } // Ajouter un écouteur d'événement sur la scène au clic enfoncé stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown (pEvent) { // Quand l'utilisateur clic // Si le héros et à l'état de "stand" if (hero.currentLabel == "stand") { // Lui donner une impulsion vers le haut hero.speedY = -hero.impulsion; // passer son état à l'état "jump" hero.gotoAndStop("jump"); } } |
Télécharger les sources : www.benoitfreslon.com_Create_gravity_like_a_mario_plateformer