‫Merhaba ve hoş geldiniz.
‫Bu derste, bu kod parçasını, RT aktör aralığını tanıtacağız ve belirli bir seviyedeki
‫tüm aktörler üzerinde nasıl yineleme yapmamızı sağladığını göreceğiz.
‫İçeri dalalım ve nasıl çalıştığını görelim.
‫Yani şu anda tümünü öldür oyun modumuzun öldürülen piyonunda oyuncu kontrolöründe oyun sona erdi diyoruz ama aslında oyun
‫sona erdi A'nın olduğu tüm kontrolörlerde bir işlevdir. Ben veya oyuncu kontrolörleri ve muhtemelen yapay
‫zeka kontrolörlerine de oyunun sona erdiğini bildirmeliyiz ve bu kesinlikle böyle olacak veya
‫bir kazanma koşulu yapmayı da kolaylaştıracak çünkü oyuncu piyonunun
‫buraya gelmesi gerekmeyecek.
‫Peki bunu nasıl yapacağız?
‫KML oyun modunda bu eylemden sorumlu olacak Oyun Sonu adında özel bir
‫işlev oluşturacağım.
‫Yani End Game ve bazı bilgilere ihtiyacı olacak.
‫Kimin kazandığını bilmesi gerekecek.
‫Sorun oyuncuda mıydı yoksa A'da mıydı? I.?
‫Bu yüzden burada B is player winner adında bir bool oluşturacağım.
‫Bu da bize yapay zekaya kazandığını mı yoksa oyuncuya kazandığını mı söylememiz gerektiğini
‫gösterecek.
‫Çünkü unutmayın, burada oyunumuz sona erdi.
‫Denetleyiciye kazananlardan biri olup olmadığını söyleyen bir boolean alır.
‫Yapmamız gereken şey, her şeyden önce, devam edelim ve uygulamayı oluşturalım.
‫Bu yüzden P kontrol kaydırmamı yapacağım ve ardından uygulama oluşturacağım.
‫Ve sonra sahnemizdeki tüm kontrolörleri nasıl bulabileceğimizi bulmamız gerekecek,
‫böylece bu kontrolörlerde oyun sona erdi diyebileceğiz.
‫Şimdi bunu yapmanın yolu bir motor yardımcı çağrısı kullanmaktır.
‫Dolayısıyla, hash include'a gidersek, öncelikle engine utils kullanacağız.
‫Bu da istediğim yardımcıyı kapsam içine alacak ve yardımcının adı T Aktör Aralığı ve
‫T aktör aralığı bir şablon.
‫Böylece köşeli parantezleri burada yapabiliriz.
‫Daha sonra bir denetleyici ve ardından parantezler koyabilir ve dünyayı elde edebiliriz.
‫Şimdi bu ne işe yarayacak?
‫Bize bir aralık nesnesi döndürecektir, bu da temelde tüm denetleyicilerin üzerinden geçen bir
‫liste gibidir.
‫Bu yüzden a dünyasında kontrolör parametresine sahibiz. k. a seviyesini belirler ve bunu bir for döngüsü
‫içinde kullanabiliriz.
‫Bu yüzden bunu bir for döngüsüne sarmaya başlayayım.
‫Bu yüzden A denetleyicisi üzerinden bir for yapacağız.
‫Dolayısıyla, üzerinde değişiklik yapacağımız değişken, controller olarak adlandıracağım bir
‫A controller işaretçisi olacaktır.
‫Ve sonra iki nokta üst üste işaretini, üzerinde aralık yapacağımız şey için kullanırız.
‫Bu T aktif aralığı olacak.
‫Ve sonra kapanış parantezlerimizi ve küme parantezlerimizi koyabiliriz.
‫Peki bu ne demek oluyor?
‫Dünyadaki her denetleyici üzerinde dört döngü yapacağımızı ve bunun denetleyici adlı bu değişkende
‫olacağını söylüyor.
‫Şimdi de bilmeniz gereken birkaç şey var.
‫Yani bir kontrolörün bir oyuncu kontrolü olup olmadığını döküm yapmak zorunda kalmadan sorgulayabiliriz.
‫Aslında sadece controller arrow yapabiliriz ve sonra sanırım controller'ımı buraya eklemem gerekecek.
‫Yani hash include en üstte, bir game framework forward slash controller H yapacağız ve şimdi Autocomplete muhtemelen
‫çalışacak.
‫Evet, öyle.
‫Yani yapabileceğimiz şey açıkçası oyun sona erdi diyebiliriz.
‫Buradaki ilk otomatik tamamlamam bu ama aynı zamanda oyuncu kontrolörü de diyebiliriz.
‫Temel olarak, oyuncu kontrolörü dünyasında bu şey olduğunu söyleyecek ve bu, oyunun
‫sona erdiğine doğru mu yoksa yanlış mı geçmemiz gerektiğine karar vermemizi sağlayacak.
‫Bu yüzden size meydan okumam, oyun doğru boolean parametresiyle sona erdi diyerek bu for döngüsünü doldurmanızdır.
‫Yani bunu, şu anda for döngüsünde konuştuğumuz kontrolör bir oyuncu kontrolörüyse
‫ve aktardığımız boolean oyuncu kontrolörünün kazanan olduğunu söylüyorsa temel
‫olarak doğru olması gerektiği şekilde yapacağız.
‫Oyuncu kontrolörü değilse ve oyuncu değilse, oyuncu kazanır temel olarak bu bir müttefikse ve ben kazanırsam
‫yanlış, oyuncu kontrolörüyse ancak oyuncu kazanmazsa ve oyuncu kontrolörü değilse ancak oyuncu
‫kazanırsa yanlış.
‫Bunun nereye gittiğini görüyorsunuzdur umarım.
‫Bu yüzden videoyu duraklatın ve bu şekilde uygulamayı deneyin.
‫Eğer ifadelerini kullanabilirsiniz.
‫Bu boolean duraklatma videosunu hesaplamanıza ve denemenize izin vermek için başka bir mantık kullanabilirsiniz.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Yani bunu birkaç şekilde yapabilirsiniz.
‫Bir yol, arı oyuncuysa kazananı kontrol et demek olabilir ve sonra bu if deyimine bir
‫şey koyacağız, temelde B'nin oyuncu kontrolörü olduğuna karar vermek için burada bir bool yapabiliriz.
‫Bunu da bir kontrolör yaptığımız gerçeğinden kurtaracağız.
‫Oyuncu kumandasını bu şekilde oklayın.
‫Ve sonra diyebiliriz ki, tamam, denetleyiciyi çağırmak istiyoruz.
‫Ok oyunu sona erdi.
‫Şimdilik null işaretçisini aktaracağız.
‫Ve sonra diyeceğiz ki, eğer kazanan bir oyuncuysa ve biz de bir oyuncu kontrolörüysek, o zaman evet,
‫temelde bu değerle devam edin.
‫O zaman bir kumanda çal.
‫Aksi takdirde, eğer oyuncu kontrolörü değilse, kaybetmiş olacaktır.
‫Ve bunu olumsuzlayabiliriz, böylece orada başka bir şey söyleyebiliriz, kontrolör oyunu oyuncu
‫kontrolörü değil ile sona erdi diyeceğiz, çünkü bu ifadede oyuncunun kazanan olmadığını, gözün kazanan
‫olduğunu söylüyoruz.
‫Bu yüzden yapmak istediğimiz şey, temelde oyuncunun kazanıp kazanmadığının tersine, yani gözün kazanıp kazanmadığına
‫bağlı olduğunu söylemektir.
‫Bu da kesinlikle bunu yapmanın bir yolu.
‫Ancak başka ve daha basit bir yol daha var, o da basitçe şunu söylemek: Kazanan biz miyiz?
‫Öyleyse kazanan sen ol.
‫Ve bu basitçe, oyuncu kontrolörü olup olmamanızın kazanan oyuncu olmanızla eşit olduğunu söylemek olabilir.
‫Şimdi bunu biraz daha düşünelim ve ben bunu tamamen tamamlayayım ve sonra bunun hakkında konuşalım.
‫Bu yüzden, kontrolör oyununun sona erdiğini söyleyeceğiz, buraya geçirilen be is winner ile null pointer
‫olacak.
‫Şimdi, bu ifade neden işe yarıyor?
‫Peki, vakaları düşünelim, tamam mı?
‫Yani burada bir oyuncu kontrolörümüz var ve kazanan da oyuncu, öyle mi?
‫Evet, kazanan biziz ve onlar eşit.
‫Doğru ve gerçek.
‫Peki ya bu oyuncu kontrolörü değilse ve oyuncu kazanan değilse?
‫O zaman bu yanlış.
‫Ve buradaki de yanlıştır, böylece ikisi eşit olur ve sonuç kazanan olur.
‫Bu doğru mu?
‫Evet, çünkü eğer biz yapay zekaysak ve kazanan yapay zekaysa, o zaman kazanan biz olmalıyız.
‫Aksi takdirde, bu ikisi eşit değilse, i. e. Yapay zeka denetleyicimiz var
‫ama kazanan oyuncu ya da oyuncu denetleyicimiz var ve kazanan yapay zeka, o zaman doğru ve yanlış
‫ya da yanlış ve doğru olacak.
‫Bu ikisi eşit olmayacaktır ve boolean yanlış olarak değerlendirilecektir.
‫Gördüğünüz gibi her bir vakada ve ben tüm vakaları inceledim, bu doğru cevapla sonuçlanıyor.
‫Bu yüzden bunun doğru cevap olduğunu biliyoruz.
‫Boolean'larla ilgili en güzel şey, genellikle tüm durumları değerlendirebilmenizdir çünkü şöyle diyebilirsiniz:
‫Tamam, peki, durumlar nelerdir?
‫Doğru ve gerçek olacak.
‫Hem doğru hem yanlış olacak.
‫Hem yanlış hem de doğru olacak.
‫Yanlış ve yalan olacak.
‫Tüm bu vakaları değerlendirebilirsiniz.
‫Bu durumların hepsi doğruysa, doğru bir Boolean ifadeniz olduğunu bilirsiniz.
‫Güzel.
‫B'nin kazanan olduğunu bu şekilde hesaplayacağız.
‫Son olarak, oyun sonu modumuzu aramamız gerekiyor.
‫Şu anda oyun denetleyicisine doğrudan bir çağrı yapıyoruz oyun sona erdi ve aslında burada
‫yapmak istediğim şey devam etmek ve oyun sonunu çağırmak ve yanlış olarak geçmek istiyoruz çünkü bu oyuncunun gerçekten
‫kaybettiği bir durum ve temelde elde etmek istediğimiz şey bu.
‫Şimdi, burada dikkat edilmesi gereken bir şey daha var, bu null pointer bizi
‫ileride sorunlara götürecek, çünkü eğer oyuncu gerçekten kazandıysa, odağı oyuncu piyonumuzdan uzaklaştırmaya
‫çalışacak.
‫Yani burada aktarmak istediğimiz şey basitçe odağın denetleyicide olması, nokta piyonu almasıdır.
‫Ve bu temelde kendi oyuncu kontrolörünüzün odağını koymanız gerektiğini söylüyor, temelde kameranız
‫nereye bakmalı?
‫Hala piyonunuzu gösteriyor olmalı.
‫Bunu yapmamız neden önemli ve neden ilk etapta burada bu seçenek var?
‫Pek çok oyunda, sıklıkla ya da pek çok maç tarzı oyunda, oyun sona erdiğinde gidip
‫piyonu takip etmek isteyebilirsiniz.
‫Kazanan oydu.
‫Yani bir Fortnite senaryosu gibi düşünün, sık sık gidip sizi öldüren kişiyi takip ediyorsunuz.
‫Bu, bunu yapmak için kullanılan mekanizmadır.
‫Temelde cinayeti işleyen kişinin piyonu olarak geçiyorsunuz.
‫Oyunumuzda bunu yapmıyoruz.
‫Apple'a bakmaya devam edeceğiz ve kazanacak mıyız yoksa ölecek miyiz?
‫Ders için hemen hemen hepsi bu kadar.
‫Sadece derleyelim ve çalışıp çalışmadığını görelim.
‫Hadi Unreal'a dalalım ve oynat tuşuna basalım.
‫Gidip kendimizi öldürtelim.
‫Al bakalım.
‫Her şey eskisi gibi çalışıyor.
‫Hala oyuncu kontrolörüne çağrı yapıyoruz ve sonra yeniden başlatıyoruz.
‫Harika bir şey.
‫Özetlemek gerekirse, bu derste neler gördük?
‫Bu aktörlerin her birinde bir fonksiyon çağırmak gibi bir şey yapmak için seviyedeki aktörler üzerinde nasıl
‫yineleme yapabileceğimizi gördük.
‫Bir sonraki derste T aktör aralığını tekrar kullanacağız, bu sefer oyuncunun kazanıp kazanmadığını hesaplamak
‫için.
‫Orada görüşürüz.