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) finmettons 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

commentaire récents