‫Merhaba ve hoş geldiniz.
‫Bu derste, üye değişkenlerinde bir vektör hızı kullanarak hareketli platformumuzu nasıl ayarlayabileceğimize
‫bakacağız.
‫Ve Delta zamanı adı verilen bir şey kullanarak hareketini kare hızından nasıl bağımsız hale getirebileceğimize
‫bakacağız.
‫Tamam, hadi başlayalım.
‫Bu noktaya kadar, her seferinde vektörümüzün tek bir bileşenini güncelliyorduk.
‫Peki ya size bunu bu şekilde yapmak zorunda olmadığımızı söylesem?
‫Peki ya tüm vektörü tek seferde belirli bir miktarda güncelleyebilirsek?
‫Önceki bölümde gördüğümüz gibi, vektörler başka vektörlere eklenebilir.
‫Yapabileceğimiz şey, hareketli platformlarımız H'ye gitmek ve bize hem yönü hem de gitmek istediğimiz
‫hızı söyleyen hareketli platform hız vektörümüz olan bir şey oluşturmaktır.
‫Bunu yapmanın yolu, şimdiye kadar oldukça tanıdık olan bir U özelliği oluşturmaktır ve bunu herhangi
‫bir yerde düzenleyeceğiz, böylece denetçide görünür olacak ve daha önce yaptığımız
‫gibi F tipi bir vektör olacak ve buna platform hızı diyeceğiz ve şimdilik ona bir şey verebiliriz.
‫Bu yüzden bir F vektör kurucusu yapacağız ve sonra ona X bileşeninde 100 ve diğerlerinde sıfır ve sıfır vereceğiz
‫ve ardından bitirmek için noktalı virgül koyacağız.
‫Ve size burada bir numara daha göstermek istiyorum, düzenle ile birlikte, herhangi bir yerde, biraz
‫fonksiyona benzeyen bu U özelliği şeyine virgülle ayrılmış başka bir argüman koyabiliriz.
‫Aslında, büyük C ile kategori olarak adlandırılan bir tane koyabilirsiniz ve sonra eşittir işaretini koyarsınız.
‫Ve genellikle bu eşittir işaretleri kategorisindeki eşitler arasında bir boşluk bırakırım.
‫Ve sonra görünmesini istediğiniz bir kategori verebilirsiniz.
‫Burada dönüşüm oluşturma çoğaltması için kategoriler olduğunu görebilirsiniz.
‫Bunlar, bu değişkenleri içine koyabileceğimiz bir tür hareketli platform kategorisine sahip olmamız için benim hareketli
‫platformum olarak adlandıracağım türden kategorilerdir.
‫Ve bu kategorinin etrafında çift tırnak işareti kullandığıma dikkat edin.
‫Doğru sözdizimi budur.
‫Bunları da eklemeniz gerekir.
‫Ve sonra yapabileceğimiz şey, bu yeni üye değişkeni C++'da kullanmaktır.
‫Bu nedenle, mevcut konumun X bileşenini ayarlamak yerine, bu satırı tamamen
‫kaldırmama ve mevcut konumun mevcut konum artı platform hızına eşit olduğu şeklinde yeniden yazmama izin verin.
‫Satırın sonuna noktalı virgül koyalım ve Unreal'a gidip derlemeye basalım ve nasıl gittiğine bakalım.
‫Yani başarıyla derlendi.
‫Ve şimdi hareketli platformumda bir platform hızı ile bu hareketli platform bölümüne sahip olduğumu ve x bileşeninin
‫100 olarak ayarlandığını görebilirsiniz.
‫Gidip oynat tuşuna basarsam ne olur?
‫Platform hızla uzaklaşıyor çünkü her kareye 100 birim ekliyorum.
‫Bu çok fazla.
‫Ama saniyede yaklaşık 100 santimetre hızla hareket etmesini istiyorum.
‫Bu saniyede sadece bir metre.
‫Çok hızlı değil.
‫Peki neden bu kadar hızlı gidiyor?
‫Kare hızım yüzünden.
‫Daha yavaş bir sistemde olsaydım, daha yavaş hareket ederdi.
‫Ve eğer daha hızlı bir sistemde olsaydım, daha hızlı hareket ederdi.
‫Bu pek mantıklı görünmüyor.
‫Delta zamanını kullanmak hakkında konuşalım.
‫Delta zamanı nedir?
‫Unreal'da Delta zamanını kullanmak bize her bir karenin ne kadar sürede gerçekleştiğini söyleyebilir.
‫Delta zamanı nerede?
‫Visual Studio koduna giderseniz, Delta time'ın burada tick'in üstünde belirtilen bir değişken olduğunu görebilirsiniz.
‫Bu aslında bir giriş parametresidir.
‫Bu bizim fonksiyonumuzun girdisi.
‫Dolayısıyla, bunu burada esasen yerel bir değişken kullanır gibi kullanabiliriz, tick fonksiyonunun gövdesi
‫içinde kullanabiliriz.
‫Bu da bize bir karenin ne kadar sürede yürütüldüğünü gösterir.
‫Ama bu neden önemli?
‫Çünkü bir şeyi delta zamanıyla çarptığımızda, esasen oyunumuzu kare hızından bağımsız hale getirir, bu da temelde oyunun
‫hızlı veya yavaş bir bilgisayarda aynı şekilde davrandığı anlamına gelir.
‫Şimdi, her saniye bir şeyi bir birim sola kaydırmak istediğimi gösteren açıklayıcı bir örneğe
‫göz atalım.
‫İşte farklı makinelerde nasıl görüneceği.
‫Yavaş bir bilgisayarım var.
‫Saniyede sadece 10 kare çekebilir ve hızlı bir bilgisayar saniyede 100 kare çekebilir.
‫Şimdi bu karelerin süresi farklıdır.
‫Yani yavaş bilgisayarda karenin süresi 0'dır. Saniyenin 1'i.
‫Eğer hızlı bir bilgisayarda bir saniyeye sadece on tane sığdırabilirsem bu sayı 0 olur. Saniyenin 01'i kadar, çok daha az çünkü işleri
‫daha hızlı yürütebiliyor.
‫Bir kareyi hesaplamak o kadar uzun sürmez.
‫Yani karenin süresiyle çarparsam, bir birimimi karenin süresiyle çarpmış olurum.
‫O zaman bunu 1/2 oranında göreceksiniz.
‫Yani on karenin yürütüldüğü yerde, bir birim hareket elde ediyorum.
‫Aynı şey geçerli.
‫Eğer 100 kare uygulama yaptıysam, yine de bir birim hareket elde ediyorum.
‫Bu yüzden sizi Delta zamanı ile çarpmaya davet ediyorum.
‫Yapacağımız şey, vektörleri büyüklüklerini ölçeklendirmek için kayan noktalı bir değerle çarpabileceğimizi
‫hatırlamaktır.
‫Bunu C++'da yapabilmemizin yolu yıldız operatörünü kullanmaktır.
‫Çarpma işlemini bu şekilde yaparız.
‫Çarpma işareti operatörü yoktur.
‫X ile karıştırılabilir, bu yüzden çarpma işlemini belirtmek için yıldız operatörünü kullanıyoruz ve sonuçlarınızı
‫derleyip test etmenizi istiyorum.
‫Yani delta zamanı ile çarpın, hızı delta zamanı ile çarpın ve ne olduğunu görün, artı video ve bir deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Yani burada çoğaltmak istediğimiz şey platform hızı.
‫Şimdi bunu ayrı bir değişkene aktarabiliriz, ancak aslında bu satırın sonuna,
‫tabii ki noktalı virgülden önce bir delta zaman çarpımı koyabiliriz, çünkü ifadenin sonundan önce
‫gelir.
‫Burada ilginç olan şey, platform hızı ile Delta zamanı arasındaki çarpımın
‫mevcut konuma eklenmeden önce gerçekleşecek olması nedeniyle burada operatörlerin bir önceliğinin
‫olmasıdır.
‫Şimdi bu kuralların tam bir listesi için normal matematiksel kuralları takip eder.
‫Burada bunun detaylarına girmeyeceğim, ancak Wikipedia'daki işlem sırası sayfasına
‫göz atabilirsiniz.
‫Farklı dillerde vücut kütlesi, teklif kütlesi, ped kütlesi, yatak kütlesi gibi pek çok farklı kural
‫vardır.
‫Bir sürü farklı kısaltma var.
‫Bu yüzden hangisini kullanarak büyüdüyseniz, onu kullanmanızı tavsiye ederim.
‫Benim için vücut kitlesiydi ama başka yerlerde durum farklı.
‫Dolayısıyla, bunu bu şekilde yazabileceğimizi belirtmekte fayda var, ancak bir şeyin bundan farklı bir sırada gerçekleşmesini
‫istiyorsak, bunu belirtmek için parantez kullanabilirsiniz.
‫Bu yüzden, sadece işleri daha açık hale getirmek için, bu çarpmanın etrafına parantez koyacağım, sadece size bunun
‫ne olduğunu göstermek için.
‫Önce çarpma ve ardından mevcut konuma ekleme.
‫Şimdi Unreal'a gidip bunu test edelim.
‫Derle butonuna basacağız ve bu işlem tamamlandığında oynat butonuna basacağız.
‫Ve şimdi platformların çok daha normal bir hızda hareket ettiğini görüyoruz çünkü aslında saniyede
‫bir metre hızla hareket ediyor, bu da hareketli bir platform için uygun.
‫Böylece bunun hem hızı düşürmemize yardımcı olduğunu hem de artık bunun bir kare hızı, bağımsız bir hız olduğunu görebilirsiniz.
‫Bilgisayarım arka planda başka bir şey olduğu için ağır aksak çalışıyor olsaydı, bu yine
‫de aynı görünecek ve oyunda aynı şekilde oynanacaktı.
‫Harika bir şey.
‫Bir sonraki derste görüşmek üzere.