ActionScript : Déplacer un objet de manière fluide avec une accélération, une décélération et une inertie

Aujourd’hui voici un exemple de code pour créer un effet d’accélération et d’inertie en Flash ActionScript 3.0.

Le personnage va commencer à accélérer si on appuie sur une flèche. Il atteindra sa vitesse maximale puis il ralentira si on relâche la touche.

Vous pouvez télécharger le code source ici : Flash_acceleration_benoifreslon.com

ActionScript: Déplacer un objet avec effet de ralentissement

Il existe une formule très simple pour déplacer un objet vers des coordonnées données avec un effet de ralentissement.

Cette formule fait diminuer la vitesse petit à petit suivant le temps.

vitesse = distance_entre_les_objets / coefficiant_de_ralentissement

La distance va décroître car la distance va décroître également.

Si je donne des valeurs :

object.x = 50

targetX = 100

speedX = (targetX – object.x)  / 5

Sur la première image : speed = 10

object.x += (100 – 50) /5 > 50/5 > 10

> object.x = 50+10 = 60

Sur la seconde image : speed = 8

object.x += (100 – 60) /5 > 40/5 = 8

> object.x = 60 + 8 = 68

Sur la troisième image: speed = 6,4

object.x += (100 – 68) / 5 > 32/5 = 6,4

> object.x = 68 + 6,4 = 74,4

etc.

Sur la 100ème image : speed = 0

object.x += (100 – 100) / 5 > 0 /5 = 0

> object.x = 100 + 0 = 100

Code source :

Exemple:

Télécharger la source : www.benoitfreslon.com Move an object to coordinates with smoothing.zip