From Test-Scratch-Wiki

Translate: - English - Türkçe 

Animating a sprite is the process of a sprite repeatedly changes costumes, creating an animation. Animation scripts vary, depending on the amount of costumes and speed.

Canlandırma Kodu Oluşturma

Bir kuklayı canlandırmanın en kolay yolu "(..) Kılığına Geç" ve "(..) Saniye Bekle" bloklarını kullanmaktır.

[Zıplama1 v] kılığına geç
(0.05) saniye bekle // Bekleme süresi değiştirilebilir
[Zıplama2 v] kılığına geç
(0.05) saniye bekle
[Zıplama3 v] kılığına geç
(0.05) saniye bekle
[Zıplama4 v] kılığına geç
(0.05) saniye bekle
[Zıplama5 v] kılığına geç
(0.05) saniye bekle
[Zıplama6 v] kılığına geç
(0.05) saniye bekle

Görüldüğü gibi, bu daha kolay bir yolla yapılabilir.

[Zıplama1 v] kılığına geç
(5) defa tekrarla
(0.05) saniye bekle
   next costume
end

Bu kod aynı şeyi yapar, özelliğe fazla kostümün depolandığı bir kuklada, büyük bir alan açar.

Canlandırmanın başka bir yolu ise operatörleri kullanmaktır. Eğer karakterinin ilerlemesini istiyorsan, bir şey de, sonra tekrar ilerle. Bu yol daha etkilidir.

((kostüm [sayı v] :: looks) = (5):: operators) olana kadar tekrarla
sonraki kostüm :: looks
(0.05) saniye bekle
end

Bu kod karakterin belirli bir kostüm sayısına ulaşana kadar ilerlemesini sağlar. Bu karakterin ilerlemesini, durmasını, konuşmasını ve tekrar ilerlemesini sağlar.

Animasyon Geciktirmeleri

Bazen kostümler istenilenden daha hızlı bir şekilde değişebilir. Animasyonlar kodlara "(..) saniye bekle" kodu eklenilerek geciktirilebilir. Her kostüm arasındaki farklılıkların büyüklüğüne göre saniye ekleyebilirsin. Eğer farklılıklar küçükse, küçük bir geciktirme eklersin. Eğer fazlaysa, daha fazla geciktirmeye ihtiyacın olur.

Geciktirmelerle birlikte yetersiz bir animasyon kodu:

[Saplama1 v] kılığına geç
(0.1) saniye bekle
[Saplama2 v] kılığına geç
(0.1) saniye bekle
[Saplama3 v] kılığına geç
(0.1) saniye bekle
[Saplama4 v] kılığına geç
(0.1) saniye bekle

Geciktirmelerle birlikte verimli bir animasyon kodu:

[Saplama1 v] kılığına geç
(3) defa tekrarla
   (0.1) saniye bekle
   sonraki kostüm :: looks
end

"(..) defa tekrarla" bloğundaki sayı göstereceğin kostüm sayısıdır, ilk bloktan öncekini tekrarlama sayısı değil.

Bazı animasyonlarda, animasyonu geciktirme hızı o oynatılırken değişebilir. Burada biraz daha zorlu bir kod var. Yetersiz kodla birlikte, kolaydır; çoklu animasyon geciktirmesi doğru bir şekilde ayarlanmalıdır.

[Vuruş1 v] kılığına geç
(0.1) saniye bekle
[Vuruş2 v] kılığına geç
(0.2) saniye bekle
[Vuruş3 v] kılığına geç
(0.3) saniye bekle
[Vuruş4 v] kılığına geç
(0.4) saniye bekle
[Vuruş5 v] kılığına geç

Verimli kodda, geciktirme bloğu birçok kez kullanılır, ve bu nedenle buna göre ayarlanmalıdır.

Eğer animasyon geciktirmesi her seferinde aynı miktarda arttırılıyorsa, bir veri geciktirme bloğuna eklenebilir ve veri "(..) defa tekrarla" bloğu ile arttırılabilir:

[geciktirme v] (0.1) olsun ::variables
[Vuruş1 v] kılığına geç
(4) defa tekrarla
   (geciktirme) saniye bekle
   sonraki kostüm :: looks
   [geciktirme v]'i (0.1) arttır
end

Eğer animasyon geciktirmesi düzensiz bir şekilde artıyorsa, bir liste kullanılabilir, ögeleri animasyon geciktirmesini ayarlayabilir:

[eşya v] (1) olsun ::variables
[Vuruş1 v] kılığına geç
(4) defa tekrarla
   ([geciktirme v]nin (eşya) ögesi::list) saniye bekle
   sonraki kostüm :: looks
   [eşya v]'i (1) arttır
end

Ayrıca Bunlara Da Bakın