‫Bu yüzden bir ateş fonksiyonu oluşturacağız ve bu fonksiyonu sol fare tuşumuzla ilişkilendireceğiz.
‫Ve burada, bu eylem eşlemesinin çalıştığını kanıtlamak için taret namlumuzun ucuna hata ayıklama küreleri
‫çizdiğimi görebilirsiniz.
‫Farenin sol tuşuna her tıkladığımda bir şeyler oluyor.
‫Hey, tekrar hoş geldin.
‫Bu videoda, mermilerimizi ortaya çıkarmak istediğimizde kullanabileceğimiz bir ateş fonksiyonu veya
‫bir işlev oluşturmaktan bahsedeceğiz.
‫Bu yüzden bir ateşleme fonksiyonu oluşturacağız ve bunu bir eylem eşlemesine bağlayacağız.
‫Şimdi, eksen eşlemelerini kullanıyoruz.
‫Bir eylem eşlemesi de benzerdir.
‫Şimdi konuşalım.
‫İşte proje ayarlarımızda bulunan yangın eylemi eşlemesinin ekran görüntüsünden bir kesit.
‫Sol fare düğmesinin ateş eylemi eşlemesine atandığını göreceksiniz.
‫Şimdi bir eylem eşlemesi bir eksen eşlemesine çok benzer.
‫Buna bir tuş veya düğme atayabilirsiniz.
‫Ve tıpkı bir eksen eşlemesi gibi, eylem eşlemesine bağlanabilen bir işlev gerektirir.
‫Şimdi, eksen eşlemeleri oyunun her bir karesinde ateşleniyor.
‫Bunlar tic işlevi gibidir ve geçirilen float değeri hangi düğmelere basıldığına bağlı olarak
‫değişir.
‫Eylem eşlemeleri biraz farklıdır.
‫Bir eylem eşlemesine bağlı bir geri arama işlevi hiçbir girdi parametresi almaz ve tek olan düğmeye bastığınızda
‫işlevin çağrılmasıdır.
‫Fonksiyonun içinde ne olacağı geliştirici olarak bize bağlıdır.
‫Şimdi, eylem eşlemeleri tek seferliktir.
‫Her karede olmazlar.
‫Düğmeye bastığınızda yalnızca bir kez gerçekleşir.
‫Yani düğmeyi bırakıp tekrar basarsanız, işlev bir kez daha çağrılacaktır.
‫Şimdi, fonksiyonları eksen eşlemelerine bağladığımızda, eylem eşlemeleri için bind axis kullandık,
‫bind action adında bir fonksiyon kullanıyoruz ve bind axis'e benzer girdiler alıyor.
‫Eylem eşlemesinin adını değişmez bir dize olarak alır.
‫Ayrıca sınıf için bir işaretçi gerektirir.
‫Bunu kullanabileceğimiz fonksiyonu bağlıyoruz ve tabii ki bir geri arama fonksiyonu alıyor.
‫Şimdi, bind axis'in düğmeye bastığımızda mı yoksa düğmeyi bıraktığımızda mı bu işlevin çağrılmasını
‫istediğimizi belirten bir enum sabiti olarak gerektirmediği ek bir parametre alır.
‫Dolayısıyla, bu giriş parametresi için iki seçenek vardır: enum sabiti, i. e. basılı ve enum sabiti,
‫i. e. serbest bırakıldı.
‫Bu, i değerini girerek bind eylemini çağırabileceğimiz anlamına gelir. e. düğmesine bastığımızda bir geri arama işlevi
‫bağlamak istiyorsak ve bunun yerine i. e. serbest bırakıldığında, düğme ateşleme fonksiyonumuz
‫için serbest bırakıldığında geri arama fonksiyonumuz çağrılacaktır.
‫Biz düğmeye ne zaman basacağımızla ilgileniyoruz.
‫Öyleyse bir fire fonksiyonu oluşturalım ve bunu fire eylem eşlemesine bağlayalım.
‫Şimdi burada base spawn'dayım ve base pond'da olmamın nedeni bu ateş fonksiyonunun tank sınıfında
‫ve kule sınıfında kullanabileceğimiz bir şey olması.
‫Dolayısıyla, bunu buraya temel gölete yerleştirirsek, hem Tank hem de kule bu işlevi miras alacaktır.
‫Hem tank hem de kule mermileri ateşleyeceği için, bu işlevi miras alıp kullanabilirler.
‫Şimdi, her iki alt sınıfta da işleve erişim istediğim için, bu işlevi tıpkı rotate turret gibi
‫protected bölümüne yerleştirebilirim.
‫Bu yüzden rotate turret altında hiçbir girdi almayan fire adında bir void fonksiyon oluşturacağım
‫ve CPP'ye dayalı olarak fire fonksiyonunu tanımlayabiliriz.
‫Burada CPP'yi temel alıyorum ve rotate turret'in hemen altına fire fonksiyonunu yerleştireceğim ve bu fonksiyon adını
‫tam olarak nitelendirmemiz ve ona bir fonksiyon gövdesi vermemiz gerekiyor.
‫Şimdi bir yangın fonksiyonumuz var.
‫Şimdi bir sonraki adım bunu bir eylem eşlemesine bağlamaktır.
‫Şimdi bu fonksiyonu sadece tank sınıfına bağlamak istiyoruz çünkü tank, kullanıcı girdisini
‫alacak tek sınıftır.
‫Kule sınıfındaki yangın fonksiyonunu daha sonra çağıracağız, ancak bu kullanıcı girdisinin bir sonucu
‫olarak değil, oluşturduğumuz kodun bir sonucu olarak olacaktır.
‫Burada Tank CP'deyiz ve bunu bağlayacağız ve tıpkı bind axis'i kullandığımız gibi oyuncu giriş bileşenini
‫ayarlayacağız.
‫Bu yüzden oyuncu giriş bileşenini kullanacağız.
‫Yani oyuncu giriş bileşeni ve işlev bind action olacak.
‫Şimdi ilk girdi, her zamanki gibi bir metin makrosuna saracağımız string literal
‫olacak.
‫Ve bu eylem eşlemesine yangın denir.
‫Şimdi bir sonraki parametre, bu fonksiyonun düğmeye bastığımızda mı yoksa düğmeyi bıraktığımızda
‫mı çağrılmasını istediğimizi belirleyen enum sabiti olacak.
‫Ve kullanacağız, altını çiziyorum.
‫Düğmeye bastığımızda fonksiyonumuzun çağrılmasını istediğimiz için.
‫Şimdi, sırada bu olacak olan kullanıcı sınıfı nesnesi var.
‫Ve son olarak, bir tank ateşi diyebilmemiz için geri arama işlevimiz var.
‫Ve şimdi fire fonksiyonumuz fire action eşlemesine bağlandı.
‫Yangın işlevimizin yangın eylemi eşlemesine bağlı olduğunu biliyoruz, ancak görsel bir onay istiyoruz
‫ve sizin göreviniz de bu olacak.
‫Bu yüzden ateşleme fonksiyonunda bir hata ayıklama küresi çizmenizi istiyorum.
‫Bunu nasıl yapacağımızı zaten gördük, bu yüzden devam edin ve parametreleri uygun olduğunu düşündüğünüz
‫değerlerle doldurun.
‫Merminin ortaya çıkma noktasının konumunu kullanın.
‫Şimdi, merminin ortaya çıkma noktası bir kullanım sahnesi bileşenidir ve bileşenlerin get component location adlı bir
‫işlevi olduğunu görmüşsünüzdür.
‫Bu bir F vektörü döndürür.
‫Bu, mermi doğma noktası konumunu elde etmek için kullanabileceğiniz şeydir.
‫Şimdi hata ayıklama küresi çiz dediğinizde, yaklaşık 3 saniyelik bir süre kullanın, böylece küreyi kaybolmadan
‫önce bir süre görebiliriz.
‫Videoyu duraklatın ve bunu şimdi yapın.
‫Tamam.
‫Bass Pond'a ve Bass Pond'a geri döndüm.
‫CP Hata ayıklama yardımcılarını çizeceğim.
‫Böylece hata ayıklama küresi çizmeye erişimimiz olur.
‫Bu yüzden hata ayıklama yardımcılarını dahil edin diyeceğim.
‫Ve şimdi burada, ateşleme işlevinde, hata ayıklama küresini çizebiliriz.
‫Şimdi, yapmak istediğim ilk şey merminin ortaya çıkma noktasının yerini bulmak.
‫Şimdi bunun için yerel bir f vektörü oluşturabilirim ve bu mermi doğma noktası konumunu çağırabilirim ve mermi doğma
‫noktasını kullanarak onu başlatabilirim.
‫Ve bileşen konumunu al çağrısı.
‫Artık merminin doğma noktasının konumuna sahibim ve bu, hata ayıklama küresi çizerken kullanabileceğim
‫şey.
‫Bu yüzden hata ayıklama küresi çiz diyeceğim.
‫Ve ilk girdi için dünyaya ihtiyacımız var ve dünyayı get world next kullanarak alabileceğimizi biliyoruz.
‫Merminin ortaya çıkma noktası konumumuz olacak kürenin merkezine ihtiyacımız var.
‫Bu yüzden ikinci parametre olarak bunu gireceğim.
‫Şimdi de kürenin yarıçapına ihtiyacımız var.
‫Şimdi küçük bir küreye sahip olacağım.
‫Yarıçap olarak 25 F vereceğim, segment sayısı için 12 kullanacağım ve renk için F rengini
‫kullanabilirim.
‫Read Now dört kalıcı çizgi çizin.
‫Satırlarımızın 3 saniye boyunca asılı kalmasını sağlayacağız, böylece bunu yanlış yapabiliriz çünkü sonsuza kadar devam
‫etmelerini istemiyoruz.
‫Bu hata ayıklama küresine üç F'lik bir kullanım ömrü vereceğiz. Şimdi devam edip bunu derleyelim ve play tuşuna
‫basıp tıklayacağım ve şimdi hata ayıklama küremizi görebiliriz ve tabii ki 3 saniye sonra
‫kaybolur.
‫Şimdi bu, eylem eşlememizin çalıştığına dair iyi bir onaydır ve aynı zamanda bize merminin
‫ortaya çıkma noktasının yerini doğrulamaktadır.
‫Böylece mermileri gerçekten ortaya çıkarmaya başladığımızda, hata ayıklama küresi tarafından gösterildiği gibi
‫doğru konumda ortaya çıkacaklarını biliyoruz.
‫Yani bu harika.
‫Bu videoda bir yangın fonksiyonu oluşturduk ve bunu yangın eylemi eşlemesine bağladık.
‫Ve çalıştığını kanıtlamak için, sol fare düğmesine her tıkladığımızda mermi ortaya çıkma noktasına bir hata ayıklama
‫küresi çizdik, böylece bir ateşleme fonksiyonumuz var, mermileri ortaya çıkarmaya neredeyse hazırız.
‫Ayrıca bu fonksiyonu temel pong sınıfına da yerleştirdik.
‫Böylece kulemiz de bunu kullanabilir.
‫Bir sonraki videoda, kulemizin bu işlevi nasıl kullanacağını tartışacağız.
‫Yakında görüşürüz.