So, noch etwas von mir.
Es ist eine Klasse die euch das Arbeiten mit Animationen erleichtern soll.
Also, wenn man jetzt eine Animation erstellen möchte, z.B. die Alpha faden(etwas wird langsam sichtbar), dann startet man die Funktion so: CEase:start(Zeit, Typ).
Also, man sollte das zurückgegebene in einer Variable speichern.
Eine Liste mit verfügbaren Typen findet ihr hier: https://wiki.multitheftauto.com/wiki/Easing
Das sind halt die Easing Funktionen.
Um den Wert, welcher dann meistens(je nach Easing Funktion) 0-1 ist, abzurufen, mache ich mal ein kleines Beispiel:
local myEase = CEase:start(1000, "InOutQuad")
function renderSth()
dxDrawRectangle(0, 0, 500, 500, tocolor(0, 0, 0, myEase.value*255))
end
addEventHandler("onClientRender", getRootElement(), renderSth)
So wird die Alpha halt in einer Sekunde(1000ms) hochgerechnet.
Man kann dann immer über Variable(von der Funktion CEase:start).value den Wert abrufen und mit dem Wert von dem, was man Animieren bzw, berechnen möchte, multiplizieren.
Hier die Klasse:
CEase = {}
CEase.__index = CEase
function CEase:start(time, typ)
local data = {}
data.start = getTickCount()
data.ending = data.start+time
data.typ = typ
data.value = 0
setmetatable(data, self)
data.easeFunc = function()
local tick = getTickCount()
local elapsed = tick-data.start
local duration = data.ending - data.start
local progress = elapsed / duration
data.value = getEasingValue(progress, data.typ)
if tick > data.ending then
removeEventHandler("onClientRender", getRootElement(), data.easeFunc)
end
end
addEventHandler("onClientRender", getRootElement(), data.easeFunc)
return data
end
Alles anzeigen
Ich hoffe ich habe alles richtig erklärt. Eigentlich sollte alles funktionieren, da ich es dort auch genauso(naja, ähnlich) verwendet habe: http://mta-sa.org/index.php?page…6542#post196542(Solche Animationen sind damit dann möglich^^)