# Panel:NewAnimation

- **Ortam:** İstemci, Menü
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Panel:NewAnimation
- **Çeviri tarihi:** 2025-09-08

```lua
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:

- [Panel:MoveTo](https://gmod.tr/wiki/Panel:MoveTo)
- [Panel:SizeTo](https://gmod.tr/wiki/Panel:SizeTo)
- [Panel:SlideUp](https://gmod.tr/wiki/Panel:SlideUp)
- [Panel:SlideDown](https://gmod.tr/wiki/Panel:SlideDown)
- [Panel:ColorTo](https://gmod.tr/wiki/Panel:ColorTo)
- [Panel:AlphaTo](https://gmod.tr/wiki/Panel:AlphaTo)
- [Panel:MoveBy](https://gmod.tr/wiki/Panel:MoveBy)
- [Panel:LerpPositions](https://gmod.tr/wiki/Panel:LerpPositions)

## Argümanlar

1. [number](https://gmod.tr/wiki/number) **length**: Animasyonun saniye cinsinden uzunluğu.
2. [number](https://gmod.tr/wiki/number) **delay** = 0: Animasyon başlamadan önceki gecikme.
3. [number](https://gmod.tr/wiki/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](https://gmod.tr/wiki/function) **callback** = nil: Animasyon bittiğinde çağrılacak olan fonksiyon. Fonksiyon argüman(lar)ı: 1. [table](https://gmod.tr/wiki/table) **animData** - Kullanılan [AnimationData yapısı](https://gmod.tr/wiki/Structures/AnimationData). 2. [Panel](https://gmod.tr/wiki/Panel) **targetPanel** - Animasyonun uygulandığı panel nesnesi.

## Döndürülen Değerler

1. [table](https://gmod.tr/wiki/table): Aşağıdaki üyelerle kısmen doldurulmuş [AnimationData yapısı](https://gmod.tr/wiki/Structures/AnimationData): - [number](https://gmod.tr/wiki/number) **EndTime** - `length` ve `delay` argümanlarının toplamına, eğer sırada başka bir animasyon yoksa [SysTime](https://gmod.tr/wiki/Global.SysTime)'ın, varsa sıradaki son animasyonun bitiş zamanının eklenmesiyle elde edilen değere eşittir. - [number](https://gmod.tr/wiki/number) **StartTime** - `delay` argümanına, eğer sırada başka bir animasyon yoksa [SysTime](https://gmod.tr/wiki/Global.SysTime)'ın, varsa sıradaki son animasyonun bitiş zamanının eklenmesiyle elde edilen değere eşittir. - [number](https://gmod.tr/wiki/number) **Ease** - `ease` argümanına eşittir. - [function](https://gmod.tr/wiki/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.

```lua
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()
```

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Panel:NewAnimation
