Anstatt eine konstante Bewegungsgeschwindikeit zu definieren, solltest Du mit Trägheit arbeiten.
Also nicht my.x = 20*time_step, sondern zum Beispiel folgendermaßen:
var bewegungsvektor[3];
while (my!=NULL)
{
if (bewegungsvektor[0]<(20*time_step)&&key_pgup==1) { bewegungsvektor[0]+=time_step; } //Während key_pgup gedrückt ist, Bewegungsvektor vergrößern und auf 20 beschränken
if (bewegungsvektor[0]>0&&key_pgup==0) { bewegungsvektor[0]-=time_step; } //und falls nicht gedrückt wieder abziehen bis auf 0
c_move(my,bewegungsvektor,NULL,IGNORE_PASSABLE); //Gondel in Richtung des Bewegungsvektors bewegen
wait(1);
}
Achja und vergiss das mit "smooth". Das verwendet man zum Debuggen bzw. glätten von schwankenden Variablenwerten wie ich das verstanden habe. Auf jeden Fall nicht für eine einfache Trägheitsfunktion.
Am Anfang ist das alles ein wenig schwer und undurchsichtig. Aber mit der Erfahrung blickst du dann irgendwann zunehmend durch. Einfach nicht unterkriegen lassen und versuchen kreativ-mathematisch zu denken. Und bei linearer Algebra (also dem Vektorzeugs) in der Schule gut aufpassen. Das ist speziell in der Spieleentwicklung sehr wichtig.
Aber auch wenn du in Mathe in der Schule mittelmäßig bist oder warst. Du bist nicht alleine
Aber wenn du es plötzlich anwenden kannst und merkst, dass angewandte Mathe nicht nur trockenes Formelabklopfen nach Schema F ist, macht es mit ein wenig Durchhaltevermögen irgendwann "klick" und plötzlich checkst du es. Dann macht es sogar Spaß, weil es eher Rätsel lösen statt stupides auswendig lernen mit Erfolgsdruck ist.