Re: Simulateur d'entrepôt, script et BGE : comment faire bouger un objet ?

Posté par Oracle le 25/8/2011 14:50:49
Salut!
A priori, tu pourrais agir directement sur la position sans que ça te pose de problème de physique, puisque ce n'est pas un jeu que tu développes.

Pour ton souci d'accélération\décélération, une solution relativement simple consisterait à utiliser une fonction sinuosidale ou parabolique (genre de type y=1-(x-1)^2). En gros, ça consisterait à faire un calcul de ce genre :
vitesse fourche = vitesse max * f(x)
où x est l'avancement de ta fourche par rapport au trajet à parcourir,
x = distance parcourue/distance à parcourir
et f(x) par exemple définie comme ça :
f(x) = 1-(2x-1)^2

Et donc au final tu auras ta vitesse qui variera en suivant une parabole Je m'excuse si je dis n'importe quoi, d'abord parce que je n'ai pas beaucoup réfléchi à ce problème, vu qu'avec flash et unity on a une library itween qui s'occupe automatiquement de ce genre de cas, ensuite parce que j'espère qu'en disant n'importe quoi ça va rameuter les vrais programmeurs qui pourront t'aider, et enfin parce que j'espère que ça t'encouragera d'avoir du retour.

Edit: de façon simple, tu pourrais coder un truc du genre (là ça vaut pour un seul axe bien sûr):
if( locX < positionArrivee ):
    avancement = (locX - positionDepart)/(positionDepart - positionArrivee)
    locX = locX + (1 - (2 * avancement - 1)^2)/4


Enfin, c'est juste un exemple pas testé, et certainement faux niveaux syntaxe... ça serait plus simple que tu saches déjà comment faire déplacer un objet avant de te préoccuper de faire des accélérations...

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=31843&post_id=391633