‫Merhaba ve hoş geldiniz.
‫Bu derste, platformumuzun başlangıç konumundan hareket ettiği mesafeyi hesaplayacağız
‫ve kontrol edip hata ayıklayabilmemiz için editörde görüntüleyeceğiz.
‫Şimdi bunun nasıl yapıldığını görelim.
‫Şu anda sözde kodun ilk kısmını uygulayabileceğimizi gördük.
‫MOVE platformunu ileriye doğru yazdık, şimdi çalışıyor.
‫Yani henüz ele almadığımız şey geri gönderme platformu.
‫Ve ilk yorumun ne kadar ilerlediğimizi kontrol etmek olduğunu görebilirsiniz.
‫Peki oyunun başlangıcından bu yana ne kadar ilerlediğimizi nasıl kontrol edeceğiz?
‫Bunun iki bileşeni var.
‫Öncelikle, iki vektör arasındaki farkı ve ikisi arasındaki mesafeyi bulmamız gerekir.
‫Çözmemiz gereken bir diğer şey de nereden başladığımızı nasıl takip edeceğimiz.
‫İlk kısım nispeten basittir.
‫Neyse ki, orada yapmamız gereken tek şey hareketli platformumuza gitmek.
‫H ve burada yeni bir değişken oluşturmak istiyoruz, ancak planlara açık olan bir değişken değil.
‫Bir kereliğine, bu sadece C++ için bir değişken, bu yüzden üzerine yeni bir özellik koymamıza gerek
‫yok.
‫Ve bu, Unreal'da kullanılan terminolojinin aynısını kullanmak için başlangıç konumu veya konumu adı verilen bir F vektörü
‫olacaktır.
‫Ve bunu başlangıçta herhangi bir değere ayarlamayacağız çünkü konumu başlatmak mantıklı olmayacaktır.
‫Henüz bilmiyoruz ama Begin Play'de öğreneceğiz.
‫Yani yapacağımız şey bu.
‫C++'ya geçeceğiz ve çorbanın ardından oyuna başlayacağız.
‫Başlangıç konumumuzu ayarlayacağız, böylece başlangıç konumu diyebiliriz.
‫Ve unutmayın, burada f vektörünü bunun önüne koymuyoruz çünkü yerel bir değişken oluşturmak
‫yerine bir sınıf değişkenine başvurmaya çalışıyoruz.
‫Bu yüzden bu başlangıç konumunu get actor konumuna eşit olarak ayarlayacağız çünkü oyunun
‫başlangıcında aktör başlangıçtadır.
‫Böylece başlangıç konumunu ayarladık ve bu da artık bu sınıfın tüm örneği için geçerli olan bir değişkenimiz olduğu anlamına
‫geliyor, böylece onu tekrar tekrar kullanabiliriz.
‫Ve aradaki mesafeyi bulmaya çalışabileceğimiz bir değişkenimiz var.
‫Şöyle diyebiliriz: Hey, mevcut konum başlangıç konumundan ne kadar saptı?
‫Bunu yapabilmek için sözlüğümüze biraz daha C++ sözdizimi eklemem gerekiyor.
‫İlk olarak, biraz kafa karıştırıcı bir şekilde adlandırılmış olan Kapsam Çözümleme Operatörü olarak adlandırılacak,
‫ancak aslında daha önce C++ dosyamızda gördüğümüz bu çift iki nokta üst üste operatörüdür.
‫Ve esasen tek yaptığı, DOT operatörü ile aynı şekilde bir sınıfın içine bakmanıza izin vermektir, bir sınıfın
‫bir örneğinin içine bakmanıza izin verir.
‫Şimdi buna biraz daha ayrıntılı bir şekilde bakalım.
‫Tik fonksiyonunun hareketli platform sınıfına ait olduğunu biliyoruz, ancak bu sınıfın belirli bir örneğine
‫ait değil.
‫Hareketli platformun tüm örnekleri aynı tick uygulamasını paylaşır, bu da bir sınıf olmanın ne anlama geldiğini
‫gösterir.
‫Yani burada hareketli platform ve Tick arasındaki kapsam çözümleme operatörü aslında bize bunun hareketli
‫platform sınıfına ait tick olduğunu söylüyor.
‫Daha önce olduğu gibi, mevcut konuma ait olan x'i elde etmek için nokta operatörünü kullanıyorduk.
‫Mevcut konum bir F vektörünün belirli bir örneğiydi, ancak bunu F vektör sınıfına ait olan ve bu sınıfın
‫belirli bir örneği üzerinde çalışmayan işlevleri elde etmek için kullanabiliriz.
‫Buna bir örnek, iki vektör arasındaki mesafeyi elde etmektir.
‫Unreal'da bunu yapmanın yolu F vektör sınıfında bir fonksiyon kullanmaktır.
‫Bu yüzden f vektörü yaparız, sonra iki nokta üst üste koyarak bu sınıfın içinde hangi işlevlere sahip olduğuna bakarız
‫ve inceleyebiliriz.
‫Ve şimdi dikkatinizi bu noktada ortaya çıkan otomatik tamamlamaya çekiyorum.
‫Geçmişte bundan bahsetmemiştim, ancak bu işlemleri yaparken, aslında akıllı olmaya
‫çalışıyor ve bize bu F vektör sınıfının içinde hangi işlevlerin mevcut olduğunu söylüyor.
‫Ve onlardan epeyce olduğunu görebilirsiniz.
‫Bizim aradığımız, mesafenin kısaltması olan Dist.
‫Şimdi fark edeceksiniz ki aslında mesafe diye bir şey var ve bu aslında eşanlamlı.
‫Her ikisini de kullanabiliriz, ancak kodu daha kısa tutmak için daha kısa olanı kullanacağım
‫ve parantezleri açabiliriz.
‫Ve yine, otomatik tamamlama, bize argüman olarak ne aldığını söyleyerek yardımımıza geliyor.
‫İlk argümanın bir f vektörü üç D olduğunu ve ikincisinin de bir etki etkili üç D olduğunu görebiliriz.
‫Burada efekt üç D olarak adlandırılması biraz garip ama temelde bir f vektörü
‫istiyor.
‫Yani, her ikisi de f vektörü olan iki argüman iletirseniz, size dönüş değerimin, yani sol taraftaki
‫bu bitin bir double olacağını söyleyeceğim diyor.
‫Şimdi bir double aslında sadece daha doğru bir floattır.
‫Yani aslında şöyle diyebiliriz.
‫Buradan bir şamandıra çıkıyor.
‫Oluşturduğumuz ifade bir float oluşturur.
‫Harika.
‫Şimdi yapacağımız şey, başlangıç konumu arasındaki mesafeyi bulmaya çalışmaktır.
‫Bu yüzden ilk argüman olarak başlangıç konumunu yazacağız.
‫İkincisi ise mevcut konum olacak.
‫Şimdi, endişelenmeyin, bu aşamada, bu yuvarlağı hangi yöne koyduğumuzun aslında bir önemi yok çünkü
‫iki vektör arasındaki mesafe aynı olacaktır.
‫İster A'dan B'ye ister B'den A'ya başlayın, her zaman aynı mesafe olacaktır.
‫Yani isterseniz bunları her iki şekilde de koyabilirdik.
‫Şimdi bir float döndüren bir ifademiz var.
‫Bu yüzden, değerinin ne olduğunu görebilmemiz için bu ifadeyi kullanarak yeni bir özelliği güncellemenizi
‫istiyorum.
‫Bu yüzden yeni bir float özelliği oluşturun ve ona istediğiniz adı verin ve sonra bunu her tikte
‫f vektör dist değeriyle güncelleyin ve sonra oyunu oynayın ve ne olduğunu görün.
‫Beklediğiniz çıktıyı alıyor musunuz?
‫Beklediğiniz kadar hızlı artıyor mu?
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Bu yüzden öncelikle yeni bir özellik oluşturacağız.
‫Bu yüzden bunu başlangıç konumumuzun üzerine koyacağım, böylece tüm özellikleri bir arada gruplayacağız.
‫Her yerde düzenleyebileceğimiz yeni bir özelliğimiz olacak, aslında bunu düzenleyebilmemiz gerekmiyor.
‫Dolayısıyla, herhangi bir yerde düzenlemenin onu düzenleyebileceğiniz anlamına geldiğini düşünmüş olabilirsiniz.
‫Ayrıca, düzenlememize izin vermeyen ancak görmemizi sağlayan görünür bir yerimiz de var.
‫Ben de bunu kullanacağım.
‫Bunun yerine, basit olması için kategoriyi burada kapalı bırakacağım çünkü bu değişkeni
‫sadece neler olup bittiğini görebilmek için kullanıyoruz.
‫Bahsettiğim gibi bu bir tip kayan nokta olacak ve denetçide neye baktığımızın anlaşılması
‫için buna taşınan mesafe diyeceğim.
‫Ve varsayılan değerini eksi bir olarak ayarlayacağım, böylece güncellediğimizi bileceğiz.
‫Eğer eksi bir yazıyorsa, güncellemenin yapılmadığını biliyoruz.
‫Bu yüzden bu mesafeyi alacağım.
‫Uygulamamıza gidip işaretleyeceğiz ve taşınan mesafeyi F vektör kolon kolon mesafesine
‫eşit olarak ayarlayacağız.
‫Bu nedenle, mesafe fonksiyonunu elde etmek için kapsam çözünürlüğü operatörünü kullanın ve ardından satırı
‫noktalı virgülle bitirin.
‫Okeydoke.
‫Unreal'a girip derleme düğmesine basacağız ve terminali kapatacağız.
‫Ve bu mesafenin eksi bir olarak görünecek şekilde hareket ettiğini görmeliyiz.
‫Gri renkte olduğunu görebilirsiniz çünkü düzenleyemiyorum çünkü görünür durumda, hiçbir yerde düzenlenmiyor.
‫Şimdi devam edelim ve oynat düğmesine basalım ve ana hattaki hareketli platformu seçtiğimizden
‫emin olmamız gerekecek ve burada taşınan mesafeye bir göz atabiliriz ve özelliğin
‫saniyede yaklaşık 1 ila 300 arasında hızla arttığını görebilirsiniz.
‫Yani olmasını beklediğim hızda, yani saniyede 100 hızla gidiyor.
‫Başarılı görünüyor.
‫Taşınan mesafeyi hesaplayabildik ve aynı zamanda görselleştirebildik.
‫Harika bir şey.
‫Bir sonraki derste görüşürüz.