Meydan okuma 4: Godot blend
- Oyun Geliştirme kursu
- Uzman
- Ders 46/47
- 5 dk
AnimationTree'de blend kullanan GDScript yazarsın.
Blend2D ile harmanlama
Godot'ta AnimationTree içindeki Blend2D düğümü, 2 boyutlu bir alanda 2 ila 4 animasyonu konuma göre harmanlar. Harman konumu blend_position özelliğine Vector2 değeri atanarak belirlenir ve hız büyüdükçe animasyon koşmaya yaklaşır. GDScript'ten bu değer kolayca güncellenir.
agac.set("parameters/Blend2D/blend_position", Vector2(0.3, 0.0));Böylece yürüme, koşma gibi animasyonlar akıcı biçimde geçiş yapar.
Uygulama Hıza göre harman
BlendGirdisi betiğinde $AnimationTree düğümünü agac değişkenine ata ve hiz adında bir değişkeni 0.7 değeriyle tanımla. blend_position yoluna Vector2(hiz, 0.0) değerini ata ve print ile "Blend: " metnini hiz değeriyle birleştirerek yazdır.
Başlangıç kodu
extends Node
func _ready():
var agac = $AnimationTree
var hiz = 0.7
# blend_position yoluna hiz degerini kullanarak bir Vector2 ata
# "Blend: " metnini hiz degeriyle birlestirip yazdirÖrnek çözüm
extends Node
func _ready():
var agac = $AnimationTree
var hiz = 0.7
agac.set("parameters/Blend2D/blend_position", Vector2(hiz, 0.0))
print("Blend: " + str(hiz))Beklenen çıktı
Blend: 0.7
Uygulama Duruma geçiş
GecisGirdisi betiğinde $AnimationTree düğümünü agac değişkenine ata. playback değişkenine "parameters/playback" yolunu kullanarak durum makinesini al, playback.travel("ziplama") ile geçiş yap ve print ile "Hedef: ziplama" metnini yazdır.
Başlangıç kodu
extends Node
func _ready():
var agac = $AnimationTree
# playback icin "parameters/playback" yolunu kullan
# ziplama durumuna gecis yap
# "Hedef: ziplama" metnini yazdirÖrnek çözüm
extends Node
func _ready():
var agac = $AnimationTree
var playback = agac.get("parameters/playback")
playback.travel("ziplama")
print("Hedef: ziplama")Beklenen çıktı
Hedef: ziplama
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Blend2D düğümündeki blend_position özelliği hangi tipte değer kabul eder?
agac.set("parameters/Blend2D/blend_position", Vector2(0.2, 0.0));- int
- string
- Vector2 Doğru cevap
- float
Açıklama: blend_position iki boyutlu bir konum olduğu için Vector2 değeri alır.
2 Vektör değeri
var hizVektoru = ____(0.5, 0.0)
var hizVektoru = Vector2(0.5, 0.0)
Açıklama: İki boyutlu harman konumu Vector2 değeriyle verilir.
3 Harmanlama terimleri
| Kavram | Anlamı |
|---|---|
Blend2D |
2B konumla 2-4 animasyonu harmanlama |
blend_position |
Harmanlanacak 2B konum değeri |
Vector2 |
İki boyutlu vektör değeri |
GDScript |
Godot'un betik dili |