Le déplacement d'une voiture à l'aide des flèches
: la meilleure méthode.
intro
nous voulons, dans ce premier tutoriel sur les jeux, pouvoir déplacer
une voiture (un clip) à l'aide des flèches.
on peut envisager plusieurs méthodes, comme créer un bouton
avec l'action 'on (keyPress"")' ... si vous ne connaissez pas,
tant mieux, si vous connaissez, oubliez pour ce tutoriel: ces actions s'appliquent
à des évènements ponctuels (si l'utilisateur appuie
sur entrée, passer à la page suivante, par exemple).
ici, ce n'est pas un évènement ponctuel puisque nous pouvons
laisser le doigt appuyé sur la touche, auquel cas l'action devra
se dérouler en continu.
de plus, dans la méthode des évènements ponctuels,
on ne peut appuyer que sur une seule touche à la fois. dans ce tutoriel,
nous apprendrons à utiliser plusieurs touches à la fois, ce
qui permettra d'une part des déplacment complexes, d'autre part des
jeux à 2 joueurs.
étape 2 - prérequis
connaître un minimum de programmation flash. le principe & les
actions de base (if etc.).
étape 3- symbole & variable
un seul clip est nécessaire. dessinez votre voiture, vaisseau, fauteuil
roulant, comme vous le sentez, selectionnez le & convertissez le en
symbole (clip).
selectionnez le, bouton droit > actions. écrivez :
étape 4 - le code actionscript
onClipEvent (load) {
vitesse = 5;
}
au chargement du clip, la variable vitesse est créée.
elle correspond à la vitesse de déplacement du clip lorsqu'on
appuie une seule fois sur une flèche. ici, la valeur sera fixe, mais
vous pourrez très bien la faire varier par la suite (pour un turbo
par exemple) maintenant, on contrôle en continu les touches pressées.
d'abord quelques explications sur les fonctions utilisées :
Key.isDown('la touche') : signifie 'la touche' est pressée. cette
fonction renvoie donc vrai si 'la touche' est pressée ou faux dans
le cas contraire.
toutes les touches du clavier ont un code. on doit remplacer 'la touche'
par le numero correspondant à la touche. tous les numéros
sont dans l'aide de flash, et je les ai également ajoutés
à la fin du tutoriel.
toutefois, les touches de direction ont un code spécial : Key.UP,
Key.DOWN, Key.LEFT et Key.RIGHT. ces 4 écritures sont en réalité
de simples fonctions qui renvoient le numéro correspondant. enfin
bon si vous ne comprennez pas c'est pas trop important, juste, au lieu de
chercher un code, pour les touches de direction, utilisez les écritures
ci dessus.
this._x est la position du clip sur l'axe des x,
this._x += vitesse equivaut à this._x = this._x + vitesse, donc on
ajoute 'vitesse' à la position x.
si la touche est pressée, on ajoute 'vitesse' aux coordonnées
(n'oubliez toujours pas la forme du repère dans flash)
le code est donc le suivant :
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT))
{
this._x -= vitesse;
} if (Key.isDown(Key.RIGHT))
{
this._x += vitesse;
} if (Key.isDown(Key.UP))
{
this._y -= vitesse;
} if (Key.isDown(Key.DOWN))
{
this._y += vitesse;
}
}
c'est terminé. ce n'est pas bien compliqué & c'est utile
à tous les jeux.
si le mouvement est trop saccadé, augmentez le nombre d'images par
seconde (modification > animation) & diminuez la vitesse.