‫Hey, tekrar hoş geldin.
‫Bu videoda, bir geri sayım sayacı oluşturacağız, böylece oyuncu tankını hareket ettirmeye
‫ve bir şeyleri havaya uçurmaya başlamadan önce ne kadar beklemesi gerektiğini bilecek.
‫Bu yüzden oyun başlayana kadar geri sayım sayacında kalan süreyi göstereceğiz.
‫Şimdi editöre girelim ve bunu yapmaya başlayalım.
‫Şimdi burada Widget Blueprint'imizdeyim, BP Start Game Widget'ı ve bu da gördüğümüz gibi widget editörü.
‫Ancak sağ üstte iki sekme olduğunu fark etmiş olabilirsiniz, bunlardan birinde tasarımcı yazıyor.
‫Şu anda içinde bulunduğumuz durum bu ve grafik de bunu gösteriyor.
‫Grafiğe tıklarsanız, daha çok olay düğümleri olan bir plan olay grafiği ve burada çeşitli bölümleri olan
‫bir plan sekmesi gibi görünür.
‫İşte bu noktada plan mantığını kullanabiliriz.
‫Şimdi burada üç düğümümüz var.
‫Olay ön kurgumuz var.
‫Bu, C++'daki bir yapıcıya benzer ve ardından oyuna başlamaya benzer bir olay yapımız vardır.
‫Dolayısıyla, oyunun başında bir şeyler yapmanın daha uygun olduğu yer burasıdır çünkü ilgili
‫tüm sınıflar bu noktaya kadar inşa edilir ve ardından olay işaretimiz olur.
‫Ve tıpkı C++'daki tick fonksiyonu gibi, burada da Delta zamanına erişimimiz var.
‫Şimdi ilk iki düğümü kullanmayacağız, bu yüzden onları vurgulayıp sileceğim ve olay
‫teknolojisini kullanacağız.
‫Şimdi, bu video için amacımız ne kadar zaman kaldığını göstermek ve şimdi C++'da üç saniyelik
‫bir geri sayım sayacımız var.
‫Bir zamanlayıcı tanıtıcısı oluşturduk ve bir zamanlayıcı başlatmak için dünya zamanlayıcı yöneticisini kullandık.
‫Burada planlarda yaptığımız her şey bundan bağımsızdır.
‫Burada tamamen farklı bir mantık sistemi oluşturuyoruz ve bu sadece C++'da ayarladığımız zamanlayıcı
‫ile çakışacak.
‫Yani bunların hepsi C++ tarafından farklı ve bağımsızdır.
‫Şimdi burada WB start game widget'ında, tıpkı C++'da değişkenler ekleyebildiğimiz gibi değişkenler ekleyebiliriz.
‫Planımın altında, ekle'ye tıklayıp değişken seçebiliyorum ve şimdi new var underscore zero adında bir değişkenim
‫var.
‫Ve burada, sol tarafta kafa karıştırıcı bir şekilde yer alan ayrıntılar panelinde, şimdi değişken adı ve
‫değişken türüne sahibiz.
‫Şimdi varsayılan olarak vurgulanmıştır çünkü değişkenlerinizi oluşturur oluşturmaz yeniden adlandırmanız
‫beklenir.
‫Yani bu varsayılan isme ihtiyacımız yok.
‫Buna kendi adımızı vereceğiz.
‫Adını Geri Sayım koyacağım.
‫Ve Countdown bir float değişken Y olacak çünkü bu ne kadar zamanımız kaldığını takip
‫edecek.
‫Bunu 3 saniyeden başlatacağım ve her karede bir önceki kareden bu yana geçen
‫süreyi çıkaracağım.
‫Böylece üçten aşağıya doğru bir geri sayım elde ederiz.
‫Şimdi Derle'ye tıklayacağım.
‫Şimdi, derle seçeneğine tıkladığım anda, ayrıntılarda aşağı kaydırarak buna varsayılan bir değer verebilirim.
‫Panel, varsayılan olarak sıfıra ayarlanmıştır.
‫Üç saniyelik bir geri sayımımız olduğu için varsayılan olarak üçe ayarlayacağım.
‫Şu anki haliyle, bu sadece Countdown adında üç değerine sahip bir float.
‫Aslında değiştirmedik, ancak oyunun her bir karesinde, bir önceki kareden bu yana
‫geçen süre olan Delta zamanını çıkarmak istiyorum.
‫Ve bu şekilde, Countdown sürekli olarak Delta zamanına göre azalarak güncellenecek, böylece çalışan bir zaman
‫sayımız olacak.
‫İşte bunu nasıl yapabileceğimiz.
‫My Blueprint sekmemizden bir geri sayım alacağım, tıklayıp buraya olay grafiğine sürükleyeceğim ve serbest bırakacağım.
‫Şimdi, serbest bırakır bırakmaz iki seçeneğim var.
‫Countdown'ı alın ve geri sayımı ayarlayın.
‫Geri Sayımı Al'a tıklarsam, şimdi geri sayım notuna sahibim ve çıktısına tıklayıp dışarı sürüklersem,
‫bu bana Geri Sayım değerine erişim sağlar.
‫Şimdi ayrıca Geri Sayım'a tıklayabilir, sürükleyebilir ve Geri Sayımı Ayarla'ya tıklayabilirim ve ayarlanmış bir düğümümüz olur.
‫Bu ikisini daha önce de gördük.
‫Daha önceki videolarda, setter için giriş pimi bir float değeri girmemize izin verir ve ardından geri
‫sayım bu değere ayarlanır.
‫Peki Delta zamanını Countdown'dan nasıl çıkaracağız ve sonra bunu geri sayım değerine nasıl ayarlayacağız?
‫Geri sayım düğümümüzü buraya alabilir, üzerine tıklayıp sürükleyebilir ve klavyemden eksi
‫sembolünü yazıp Çıkar düğümünü seçebilirim.
‫Bunu seçersem, artık bir float eksi float veya bir çıkarma düğümüm var.
‫Hedefin Kismet Matematik Kütüphanesi olduğunu yazdığını göreceksiniz.
‫Bu size Kismet Matematik Kütüphanesinin bu düğümün temelini oluşturduğunu gösterir.
‫Tüm düğümlerin özünde C++ kodu vardır.
‫Bu düğümün yaptığı şey iki girdi almaktır.
‫Bir float girişi alır.
‫Ve ikinci bir float girişi alır.
‫Şimdi, içeri aktardığımız değişkenlerin hiçbirini değiştirmeyecek.
‫Basitçe bir hesaplama yapacak ve çıkarma işleminin sonucu olan değeri döndürecektir.
‫Şimdi geri sayımı almak ve ondan Delta zamanını çıkarmak istiyorum, böylece olay tik düğümünden Delta zamanı
‫olarak adlandırılan çıkış pinini alabilir ve bunu doğrudan çıkarma düğümümdeki ikinci girişe takabilirim.
‫Yani yaptığım şey, geri sayım eksi delta zamanını almak ve sonra bu sonucu almak.
‫Şimdi başlangıçta geri sayım 3 saniyedir ve delta süresi çok küçük bir değerdir.
‫Son kareden bu yana geçen saniye cinsinden süredir.
‫Yani bu çok küçük bir miktar olacaktır.
‫Yani bu ilk kez uygulandığında sonuç üç eksi küçük bir miktar olacaktır.
‫Ve yapmak istediğim şey, geri sayım değerini her bir karede bu sonuca eşit olarak ayarlamak.
‫Yani her kare geri sayımından azar azar çıkarılıyor.
‫Ve bu şekilde geri sayım 3 saniyeden aşağıya doğru devam edecektir.
‫Bu yüzden bu çıkarma düğümünden dönen sonucu alacağım ve bunu set countdown düğümünün
‫girişine ekleyeceğim.
‫Şimdi, olaydan yürütme kablosunu bağlamazsam bu hiçbir şey yapmayacak, yürütme pinini geri sayımı
‫ayarlamak için giriş pinine işaretleyeceğim.
‫Şimdi bunun yaptığı şey, her bir karede Delta zamanını Countdown'dan çıkarmak, bu sonucu
‫almak ve countdown'ı bu yeni değere ayarlamaktır.
‫Şimdi bunun bir print string düğümü ile nasıl davrandığını görebiliriz.
‫Bu yüzden setter tipi print string'i sürükleyeceğim ve bir print string düğümü elde edeceğim.
‫Ve sonra countdown değerini yazdırmak istiyorum, böylece setter'dan geri dönüş değerini alabilirim,
‫bu da bize her karede countdown'ın yeni değerini verecek ve bunu in string düğümüne ekleyecektir.
‫Ve dikkat ederseniz bir convert float to string görüyorum ve şimdi serbest bırakırsam float değerimi alıp bir string'e
‫dönüştürecek bir dönüşüm düğümü elde ediyorum ve şimdi bunu ekrana yazdırabiliriz.
‫Şimdi oynat tuşuna basarsam ne olacağını görelim.
‫Şuna bir bak.
‫Bu sayımın her karede belgelendiğini görüyoruz ve ekrana geri sayım değerini spam olarak gönderiyoruz ve giderek
‫daha da negatif hale geliyor.
‫Bu, geri sayım sayacımızı çalıştırmanın ilk adımıdır.
‫Bunu şimdi kapatacağım.
‫Bir sürü ondalık noktası olan bir float değer yazdırdığımızı gördük.
‫Ve değeri ekrana yazdırdığımızda, gerçekten ondalık nokta istemiyoruz, bir tamsayı istiyoruz.
‫Bu nedenle, ondalık noktanın sağındaki son rakamlar olmadan kalan saniye miktarını görmek istiyorum.
‫Yani ihtiyacım olan şey bir tamsayı.
‫Yapabileceğim şey, bu dönüşüm düğümünü sileceğim ve geri sayım ayarlayıcısının
‫sonucunu alacağım ve mühürlemenin kısaltması olan C E I'll seal yazacağım.
‫Sızdırmazlık işlemi bir float değeri alacak ve en yakın tam sayıya yuvarlayacaktır.
‫Eğer üçte isek, yuvarlamaya gerek yok.
‫Değeri üç olan bir tamsayı döndürecektir.
‫Ama eğer 2'de olursak. 9, örneğin, o zaman mühür düğümü bunu üçe yuvarlayacaktır.
‫Ve bu değer azaldıkça, ikiye düşene kadar üçe dönmeye devam edecek.
‫Yani her zaman bir tamsayı alacağız.
‫Şimdi bunu print string'e girdiğimde Convert integer to string yazdığını göreceksiniz.
‫Şimdi seal düğümü bir float alıyor, en yakın tamsayıya yuvarlıyor ve bu tamsayı değerini döndürüyor.
‫Şimdi oynat tuşuna basarsam, 3'e 1 ve sıfır elde ettiğimizi göreceğiz.
‫Ve tabii ki düşmeye devam ediyor çünkü buna asla gerçekten dur demiyoruz.
‫Ancak bu harika bir başlangıç çünkü artık kalan saniye sayısına erişebiliyoruz ve yanıt
‫olarak ekrana bir şeyler yazdırabiliyoruz.
‫Peki ekrana doğru mesajı nasıl yazdıracağız?
‫Yapmak istediğim şey, 3 saniyemiz kaldığında widget'ın "Hazır olun" demesini istiyorum.
‫2 saniyemiz kaldığında, iki numarayı göstermenizi istiyorum.
‫Bir saniyemiz kaldığında, bir numarayı göstermek istiyorum.
‫Ve 0 saniyemiz kaldığında, metnin Git demesini istiyorum.
‫Bunu bir anahtar düğümü ile yapabiliriz anahtar düğümleri INT dahil olmak üzere bir dizi farklı türü açabilir.
‫Şimdi int düğümündeki bir anahtarın çalışma şekli, bir dizi değer için bir dizi duruma sahip olmasıdır.
‫Ve bu anahtar düğümüne aktardığımız değere bağlı olarak, bir dizi şeyden birini yapacaktır.
‫Örneğin, üç tamsayı değerini girersek, üç işleminin gerçekleştirilmesiyle sonuçlanacak olan
‫üç durumunu elde ederiz.
‫Dolayısıyla, uç düğümdeki anahtarın birden fazla yürütme satırı vardır ve bunlardan yalnızca birini temel alarak yürütecektir.
‫Girdi.
‫Şimdi int düğümünde bir switch kullanabilir ve örneğin seal düğümümüzün sonucu gibi bir tamsayı aktarabiliriz.
‫Bu yüzden yazdırma dizesini kaldıracağım ve geri sayım düğümünden sürükleyeceğim ve switch
‫on INT yazacağım ve switch on int'i seçeceğim.
‫Şimdi integer türünde bir girdi aldığına dikkat edin.
‫Seal düğümünden dönen değeri aktaracağım ve ayrıca bir pin ekleme seçeneğimiz olduğunu fark edeceğim.
‫Bunun üzerine tıklarsak, sıfır yazan çıkışa ek olarak varsayılan bir pin elde ettiğimizi göreceksiniz.
‫Bunun söylediği şey, sıfır yürütme pininden bazı plan mantığı bağlarsak, bu mantığın yürütüleceğidir.
‫Aktarılan giriş değeri sıfırsa ve iyi değilse, varsayılan olarak bu yürütme pinine geçecektir.
‫Şimdi tekrar pin ekle'ye tıklayabiliriz ve şimdi sıfır ve birimiz var.
‫Böylece biri sıfır diğeri bir için olmak üzere iki yürütme satırına sahip olabiliriz.
‫Ve eğer girdi sıfır veya bir değilse, varsayılana bağlı olan her şey yürütülecektir.
‫İki kez daha artıya tıklayacağım.
‫Yani sıfırdan üçe kadar davalarımız ve bir de varsayılan davamız var.
‫Şimdi, bu SEAL düğümünden aldığımız ve aktarılan değere dayalı olarak yürütülmesini istediğimiz
‫bazı plan mantığı eklemek bize kalmıştır.
‫Sizden de meydan okumanız için bunu yapmanızı istiyorum.
‫Üç değeri için bir print string düğümü kullanarak her durum için farklı mesajlar yazdırmanızı istiyorum, bir print
‫string düğümü kullanarak get ready yazdırabilirsiniz.
‫İki durumu için basitçe iki değerini yazdırabilirsiniz, bir durumu için bir değerini yazdırabilirsiniz ve sıfır
‫durumu için go değerini yazdırabilirsiniz, şimdi varsayılan durum için basitçe print string düğümümüzle start game değerini yazdırabilirsiniz.
‫Videoyu duraklatın ve şimdi olay grafiğine bir sürü print string düğümü ekleyin.
‫Tamam.
‫Bu yüzden devam etmek ve bir print string düğümü kullanmak istiyorum ve varsayılan durum için buradan
‫aşağıdan başlayacağım ve print string yazacağım.
‫Ve yazdırmak istediğim dize oyuna başla.
‫Şimdi, işte kestirme bir yol.
‫Eğer print string düğümünün seçili olduğunu bilmiyorsanız, faremi olay grafiğinde başka
‫bir yere getirip dx kontrolüne basabilirim ve bu seçtiğim düğümü kopyalayacaktır.
‫Üç durumu bu print string düğümüne bağlayacağım ve get ready yazacağım.
‫Anahtara giriş üç olduğunda göreceğiz.
‫Hazır olun, ekrana basıldı.
‫Şimdi tekrar DX'i kontrol edeceğim ve bunu iki durumuna bağlayacağım ve iki için basitçe iki yazdıracağım
‫şimdi print string düğümünü kopyalayacağım ve bir için bir değerini yazdıracağım.
‫Ve son olarak, buradaki son bir print string düğümü sıfır durumuna bağlanacak
‫ve bu go diyecek.
‫Tamam.
‫Şimdi devam edip bunu derleyelim ve play tuşuna basacağım ve şimdi hazır ol, iki, bir ve başla'yı
‫görüyorum.
‫Ve tabii ki zamanımız bittiğinde oyuna başladığımızı göreceğiz.
‫Dolayısıyla, değerin azaldığını ve giderek daha negatif hale geldiğini biliyoruz, ancak bu anahtarımız için varsayılan
‫durumdur ve oyunu gerçekten başlatabileceğimizi bildiğimiz zamandır.
‫Bu, geri sayım sayacımızı widget'ımızda göstermenin ilk adımıdır.
‫Henüz hazır olun yazan metni tam olarak değiştirmiyoruz, ancak bunu yakında yapacağız.
‫Bu videoda Countdown Logic'i oluşturduk ve widget planımıza ekledik.
‫Geri sayım değerlerimizi göstermek ve farklı bir mesaj yazdırmak için print string kullandık.
‫Geri sayım değerlerimize göre.
‫Yine de widget'taki metni ayarlamamız gerekiyor ve bunu bir sonraki videoda yapacağız.
‫Yakında görüşürüz.