Throttle ve Debounce
Eklenti, Not more than once in <X> seconds ve For a postponed event adlı iki özel koşula erişim sağlar.
Not
Construct 3'ün görsel programlama kısıtlamaları nedeniyle, bu koşullar "yalan döngüler" aracılığıyla gerçekleştirilmiştir, bu yüzden adının solunda döngü logosunu görebilirsiniz.
Ancak, bu koşullardır, değil döngülerdir.
Eğer JavaScript kullanmayı tercih ederseniz, aşağıdaki makalelere göz atabilirsiniz: Arama forması örneğinde Debounce ve Sayfa kaydırma örneğinde Throttle.
Throttle
Oyunun bazı bölümleri, genel performansa önemli ölçüde etki edebilir. Örneğin, fizik veya yapay zeka işlemleri.
Böyle karmaşık hesaplamalar nedeniyle, onları çok sık kullanmaktan kaçınmak daha iyidir. Böyle durumlarda genellikle Every <X> seconds kullanılır, böylece kod belirli bir süre sonra çalıştırılır, ancak her zaman mümkün değildir.
Eğer oyun mekanizması ekrana tıklanmasıyla gerçekleşen bir şey varsa, ne yapmalıyız? Böyle durumlarda, kodun çalışma sıklığını sınırlamak gerekir, ancak zamanlayıcı kullanamıyorsanız, özel bir koşul olan Not more than once in <X> seconds'yi kullanabilirsiniz.
Önemli
Not more than once in <X> seconds'yi her tick'ta kullanmak önerilmez, bu herhangi bir sonuca yol açmaz, ancak bunun yerine Every <X> seconds kullanmak daha iyidir.
Debounce
SDK'nın bazı yöntemleri, belirli bir süre içinde istek sayısına ilişkin kısıtlamalara sahiptir. Bu kısıtlamalara uymazsanız, oyununuz moderasyondan geçmeyebilir.
Örneğin, eğer lider tahtasındaki puanı çok sık güncelliyorsanız, For a postponed event adlı özel bir koşul kullanmanız gerekir.
Ancak, bu koşul, önceki Not more than once in <X> seconds koşulu ile karıştırılabilir, çünkü onu da çok sık çağrılmaması gereken kodu gizlemek için kullandık, o zaman fark nerede?
Onlar arasındaki ana fark, Not more than once in <X> seconds çağrı sıklığını sınırlarken, For a postponed event fonksiyon çağrısını belirli bir süre erteler, ve bu tam olarak bize gereken şeydir, çünkü puanı tabloya gönderme durumunda, fonksiyonu çok sık çalıştırmamız gerekmez, sadece sınıra uymamız yeterlidir.
Not more than once in <X> seconds ve For a postponed event arasındaki farkın görselleştirmesi: