Propriétés Physiques Les frottements (écrit par Jérémie )
2nde partie du tutoriel sur les propriétés
physiques, on va ajouter des propritétés de rebonds &
de frottements
prérequis
connaître bien le drag'n drop avancé, et la première
partie du tutoriel
étape 1- rebonds
les propriétés de rebonds vont s'ajouter au calcul de la trajectoire
de la balle, et s'effectuera lors d'un contact avec un rebord.
c'est donc dans la partie des contraintes (encore une fois, voir le tutoriel
sur la gravite )qu'il faudra ajouter les nouvelles lignes de code.
tout d'abord, on ajoute une propriété rebond lorsque la balle
est chargé, modifiez donc le code comme suit :
onClipEvent (load) {
gravite = 10;
rayon = this._width/2;
rebond = 0.6;
}
à chaque rebond, la vitesse de la balle sera amortie. si elle
tape sur les bords droit ou gauche, sa vitesse en y est simplement amortie,
(*rebond) celle en x est amortie puis inversée (la balle part dans
l'autre direction). si elle tape sur un bord haut ou bas, la vitesse y est
inversée et amortie, celle de x simplement amortie. (si vous ne comprenez
pas réfléchissez ou demandez moi)
dans la partie des contraintes (tous les if ) : if (y<rayon) {
y = rayon;
vitessey *= -rebond;
vitessex *= rebond;
}
if (y>_root.hauteur-rayon) {
y = _root.hauteur-rayon;
vitessey *= -rebond;
vitessex *= rebond;
}
if (x<rayon) {
x = rayon;
vitessey *= rebond;
vitessex *= -rebond;
}
if (x>(_root.longueur-rayon)) {
x = _root.longueur - rayon;
vitessey *= rebond;
vitessex *= -rebond;
}
avec des opérations très simples & la prise en compte
d'une nouvelle variable, on obtient déjà un résultat
assez réaliste.
étape 2 - frottements
bien que dans le cas de notre animation, l'amortissement puisse paraître
suffisant au réalisme, nous allons voir comment ajouter une nouvelle
variable frottement.
celle ci, comme le rebond, sera prise en compte lors du calcul des coordonnées
mais ne s'appliquera, cette fois, plus pendant le contact avec les bords,
mais en continu.
comme précedement, ajoutez une variable frottement :
les frottements s'opposeront en continu aux vitesses (x et y), c'est donc
au calcul de celles ci que nous feron intervenir la nouvelle variable. remplacez
tout simplement :