CodeBlanks Logo Icon CodeBlanks

Meydan okuma 4: Godot blend

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

Player.cs
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

Player.cs
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

Player.cs
extends Node

func _ready():
    var agac = $AnimationTree
    # playback icin "parameters/playback" yolunu kullan
    # ziplama durumuna gecis yap
    # "Hedef: ziplama" metnini yazdir

Örnek çözüm

Player.cs
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?

Player.cs
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

Soru
    var hizVektoru = ____(0.5, 0.0)
Cevap
    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

Uzman bölümündeki tüm dersler