tutorial saut animé [cours]

2 09 2008

 

Bonjour, hier nous étions au mouvements animé par un _alpha et les mouvements gauche & droites. Aujourd’hui nous allons realisé une collision en ._y et la fonction saut du personnage (car).

[ici_ si vous venez d'arriver vous pouvez télécharger le .fla _ici]

un problème momentané avec notre hébergeur de documents est survenu les liens seront mises à jours quand l’hébergeur aura réglé le problème

[cours1]

nous allons créer une collision mais avant toute chose il nous faut comprendre  :

(grace à ce pseudoscript)

car._y descend de + 1
si il touche l’objet (monde) alors
car._y – 1

 

jusque la c’est facile voyons ce que sa donne en script mais avant créer un MovieClip et donnez lui l’instance car

- tracez une ligne en bas de votre scène et faites en un MovieClip, donnez-lui l’instance monde

le code complet ressemble à ceci ; (en rouge ce que nous avons ajouté depuis la fois précédente)

 

vit = 7;
nvx = 1;
nvx1 = 0;
opac_true = false;
grav = 1
y_vit = 0;
onEnterFrame = function () {
 if (Key.isDown(Key.RIGHT)) {
  car._x += vit;
  nvx++;
  nvx1++;
  opac_true = true;
 }
 if (Key.isDown(Key.LEFT)) {
  car._x -= vit;
  nvx++;
  nvx1++;
  opac_true = true;
 }
  y_vit += grav;
  while(monde.hitTest(car._x, car._y+car._height/2-1+y_vit,true)){
  y_vit--
 }
 if (opac_true == true) {
  opac = attachMovie("c_alpha", "c_alpha_"+nvx1, nvx ,
{_x:car._x, _y:car._y, _alpha:40});
 }
 if (nvx1>500) {
  nvx1 = 0;
  nvx = 1
 }
 opac.onEnterFrame = function() {
  if (this._alpha>0) {
   this._alpha -= 1.5;
  }
 };
 car._y += y_vit
 opac_true = false;
}

 

voyons voir les modification que nous avons faites :

-on à rajouté les deux variables que nous utilisons plus tard (grav et y_vit)

-on a défini que y_vit augmente en fonction de grav ( 1 )

-puis nous avons rajouté la fonction de collision en ._y, si car._x et car._y + sa hauteur divisé par 2 ( car on a un point central dans ce MovieClip ) si true alors y_vit – 1 ( +1 -1 = 0)

-et pour finir affecté y_vit à car._y pour que celui-ci bouge

[cours2]

Passons maintenant au mouvement compliqué, celui du saut. pour réaliser un saut il faut bien entendu une touche, diminuer le y puis l’augmenter, voyons comment faire :

si on appui sur ESPACE et que saute == true alors
y_vit -= l’hauteur souhaité
saute = false
fin
(cette étape permet de ne pas dépasser une certaine hauteur limite)
si y_vit est plus grand que l’hauteur maximum (pas confondre avec celle souhaité) alors
y_vit = hauteur maximum
fin
si saute == false alors
car._rotation = tangente de car & monde (pour que le carré tourne en l’air quand on bouge)
fin

mettons tout ceci sous script puis nous verrons ce que cela veut dire en detail :

vit = 7;
nvx = 1;
nvx1 = 0;
opac_true = false;
grav = 1
y_vit = 0;
my = 16
saute_f = 20;
saute = false
onEnterFrame = function () {
 if (Key.isDown(Key.RIGHT)) {
  car._x += vit;
  nvx++;
  nvx1++;
  opac_true = true;
 }
 if (Key.isDown(Key.LEFT)) {
  car._x -= vit;
  nvx++;
  nvx1++;
  opac_true = true;
 }
 if (Key.isDown(Key.SPACE) and saute) {
  y_vit -= saute_f;
  nvx++
  nvx1++;
  saute = false;
  opac_true = true;
 }
  y_vit += grav;
 if (y_vit>my) {
  y_vit = my;
 }
 if(saute == false){
  car._rotation =
Math.atan2(car._y-monde._y,car._x-monde._x)/(Math.PI/360)
 }
 while(monde.hitTest(car._x, car._y+car._height/2-1+y_vit,true)){
  y_vit--
  saute = true;
  car._rotation = 0
 }
 if (opac_true == true) {
  opac = attachMovie("c_alpha", "c_alpha_"+nvx1, nvx ,
{_x:car._x, _y:car._y,_rotation: car._rotation, _alpha:40});
 }
 if (nvx1>500) {
  nvx1 = 0;
  nvx = 1
 }
 opac.onEnterFrame = function() {
  if (this._alpha>0) {
   this._alpha -= 1.5;
  }
 };
 car._y += y_vit
 opac_true = false;
}

toute les connaissances acquises jusqu’ici devrait être suffisante pour comprendre les rajouts de scripts de part et d’autres

[télécharger les .fla]

un problème momentané avec notre hébergeur de documents est survenu les liens seront mises à jours quand l’hébergeur aura réglé le problème

 

 

merci d’avoir suivit ce tutorial

écrit par nonitt

postez un commentaire

 pour donner votre avis


Actions

Information

Laisser un commentaire