Panel:NewAnimation

  table Panel:NewAnimation( number length, number delay = 0, number ease = -1, function callback = nil )

Açıklama

Panel nesnesi için yeni bir animasyon oluşturur.

Bu fonksiyonu kullanan metotlar:

Argümanlar

1 number length
Animasyonun saniye cinsinden uzunluğu.
2 number delay = 0
Animasyon başlamadan önceki gecikme.
3 number ease = -1
Easing (yumuşatma) için kullanılacak güç/indeks.
  • 1'den büyük pozitif değerler ease-in (yavaş başlayıp hızlanma) etkisi yaratır; sayı ne kadar yüksekse, eğrinin gradyanı o kadar keskin olur (daha az doğrusal).
  • 1 değeri tüm easing etkisini kaldırır.
  • 0 ile 1 arasındaki pozitif değerler ease-out (hızlı başlayıp yavaşlama) etkisi yaratır; 0'a yakın değerler eğrinin gradyanını artırır (daha az doğrusal).
  • 0 değeri animasyonu bozar ve bundan kaçınılmalıdır.
  • Sıfırdan küçük herhangi bir değer ease-in/out (yavaş başlama ve yavaş bitme) etkisi yaratır; değerin gradyan üzerinde bir etkisi yoktur.
4 function callback = nil
Animasyon bittiğinde çağrılacak olan fonksiyon.
Fonksiyon argüman(lar)ı:
1 table animData - Kullanılan AnimationData yapısı.
2 Panel targetPanel - Animasyonun uygulandığı panel nesnesi.

Döndürülen Değerler

1 table
Aşağıdaki üyelerle kısmen doldurulmuş AnimationData yapısı:
  • number EndTime - length ve delay argümanlarının toplamına, eğer sırada başka bir animasyon yoksa SysTime'ın, varsa sıradaki son animasyonun bitiş zamanının eklenmesiyle elde edilen değere eşittir.
  • number StartTime - delay argümanına, eğer sırada başka bir animasyon yoksa SysTime'ın, varsa sıradaki son animasyonun bitiş zamanının eklenmesiyle elde edilen değere eşittir.
  • number Ease - ease argümanına eşittir.
  • function OnEnd - callback argümanına eşittir.

Örnek

Bu fonksiyonun nasıl kullanılacağına dair örnek, bir DFrame içinde bir düğmenin dairesel hareket yapmasını sağlar.

local frame = vgui.Create( "DFrame" ) frame:SetSize( 500, 500 ) frame:Center() frame:MakePopup() local butt = frame:Add( "DButton" ) butt:SetPos( 5, 30 ) butt:SetSize( 100, 40 ) function butt:doAnim() local anim = self:NewAnimation( 10, 0, 1, function( anim, pnl ) self:doAnim() end ) anim.Think = function( anim, pnl, fraction ) local radius = 200 pnl:SetPos( 250 + math.sin( Lerp( fraction, -math.pi, math.pi ) ) * radius - pnl:GetWide() / 2, 250 + math.cos( Lerp( fraction, -math.pi, math.pi ) ) * radius - pnl:GetTall() / 2 ) pnl:SetText( "Frac: " .. fraction .. "\nTime: " .. ( SysTime() - anim.StartTime ) ) end end butt:doAnim()

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord