2009-05-12 6 views
1

Wie soll ich über diesen gehen? Ich möchte einen Wert in der x-Zeit von einem zum anderen tweenen. Dabei sollte auch berücksichtigt werden, dass es am Anfang und am Ende nett wäre, eine "Leichtigkeit" zu haben.Tweening eines Wertes in Lua

Ich weiß, ich sollte nicht wirklich fragen, aber ich habe es selbst versucht, und ich stecke fest. Um eine Verzögerung zu verursachen, müssen Sie die Funktion wait (time) aufrufen.

+0

'Tween'? Kannst du ein Beispiel geben? –

+0

Wahrscheinlich interpoliert er: http://en.wikipedia.org/wiki/Tweening –

Antwort

4

Ein einfacher Ansatz, die für Sie arbeiten könnte entlang des Einheitskreises zu interpolieren ist: Unit circle

Um dies zu tun, können Sie einfach Punkte entlang des Kreises zu bewerten, die eine ziemlich gleichmäßige Bewegung gewährleistet, und die einfache in als ebenso wie Leichtigkeit. Sie können die Geschwindigkeit der Interpolation steuern, indem Sie ändern, wie schnell Sie den Winkel ändern.

Angenommen, Sie machen 1-dimensionale Interpolation (d. H. Eine einfache skalare Interpolation, wie von 3.5 bis 6.9 oder was auch immer), könnte es nützlich sein, Y-Werte von - π/2 bis π/2 zu verwenden. Diese wird durch die Sinusfunktion gegeben, alles, was Sie tun müssen, um geeignete Skalierung gilt:

angle = -math.pi/2 
start = 3.5 
end = 6.9 
radius = (end - start)/2 
value = start + radius + radius * math.sin(angle) 

Ich bin nicht 100% sicher, ob dies legal ist, Lua, dauerte es nicht testen. Wenn nicht, ist es wahrscheinlich trivial zu konvertieren.

+0

Gelöst! Ich kann es aber nicht glauben, ich dachte, dass ich das versucht hätte ... Meh, du warst eine große Hilfe! –

0

Sie können sich für Inspiration Tweener ActionScript library ansehen.

Zum Beispiel können Sie erforderliche Gleichungen from here ausleihen.

Wenn Sie weitere Hilfe benötigen, fragen Sie bitte.