‫Merhaba ve hoş geldiniz.
‫Bu derste üye fonksiyonları ve belirli bir vektörün yönünü bulmamızı
‫sağlayacak olan get safe ve normal fonksiyonlarını tanıtacağız.
‫İçeri dalalım ve bunun nasıl çalıştığını görelim.
‫Yani platformu ters yönde geri göndermeye yönelik basit yöntemimiz, test ettiğimiz
‫hızlarda çalışıyor.
‫Peki ya "Hey, bu platformu on kat daha hızlı hale getirelim" dersem ne olur?
‫Devam edip oynayalım ve neler olacağını görelim.
‫Birdenbire bu platformlar oldukça ileri atlıyor ve daha önce olduğu gibi aynı yerde
‫gezinmiyor.
‫Bunun nedeni, başlangıç konumu olarak belirlediğimizde mevcut konumun tam olarak taşınan
‫mesafe olmamasıdır, mesafeyi aşmış olabiliriz.
‫Ve bu da burada if deyiminde yakalanmıştır.
‫Taşınan mesafenin hareket mesafesinden daha büyük olduğunu söylüyoruz, bu da aşmış olacağımız anlamına geliyor.
‫Bu if ifadesini tetiklememiz için aşırı hız yapmış olmamız gerekir.
‫Ancak asıl soru ne kadar olduğu ve bunun Delta zamanının ne kadar büyük olduğuna bağlı olacağıdır.
‫Özellikle platform hızı büyükse, oldukça büyük miktarlarda aşabiliriz, bu da başlangıç konumumuzun
‫zaman içinde kayabileceği anlamına gelir.
‫Sabit kalmayabilir.
‫Bunu yapmanın daha iyi bir yolu, tam hareket mesafesini kullanarak yeni konuma ulaşmak için orijinal başlangıç konumundan
‫ne kadar uzağa gitmemiz gerektiğini hesaplamak olacaktır.
‫Şimdi bu ileri geri hesaplamayı görselleştirmeye çalışalım.
‫Burada başlangıç konumunda bir platformumuz olduğunu söylüyoruz.
‫Bir yönü ve boyutu olan bir okla temsil edebileceğimiz bir hızı olduğunu ve ayrıca hareket etmesini istediğimiz
‫bir mesafesi olduğunu söylüyoruz.
‫Bunu sadece buradaki ayraçla temsil edeceğiz.
‫Şimdi, söylediğimiz şey, platformun tam olarak nerede olacağını bulmak istediğimizdir,
‫aşırıya kaçmak değil, sadece tam olarak son konum.
‫Şimdi, bunu yapabilmemizin yolu hız okunun yönünü almaktır.
‫Vektör dilinde buna okun normali denir ve temel olarak onu bir boyuta
‫indirir.
‫Yani yönü alıyoruz ama boyutu bir.
‫Böylece bu sayı, esasen hızın boyutunu, ne kadar hızlı gittiğimizi bilmemizi sağlar.
‫Ve sonra yapabileceğimiz şey, bize başlangıç konumundan bitiş konumuna kadar tüm hareketi
‫veren bir ok vermek için bu yönü mesafemizin miktarıyla çarpabiliriz.
‫Aynen öyle.
‫Şimdi bunu C++'da nasıl yapabileceğimize bir göz atalım.
‫Aradığımız şey yeni bir başlangıç yeri.
‫Şu anda bunu nasıl yaptığımızı kaldıralım ve başlangıç konumumuz şuna eşit olsun, peki, neye
‫eşit olacak?
‫Her şeyden önce başlangıç konumu artı bir şeye eşit olacak çünkü buradan
‫başlıyoruz ve sona ulaşmak için bu yeşil vektörü ekliyoruz.
‫Peki oradaki yeşil vektör ne?
‫İşte bu noktada platformun normal hızını almamız gerekiyor.
‫Ve anlamamızı kolaylaştırmak için bunu kendi değişkenine ayıracağım.
‫Bu yüzden F vektör tipinde yeni bir değişken oluşturacağız, buna hareket yönü adını vereceğim, sadece içinde
‫depolamaya çalıştığımız şeyin ne olduğunu çok açık hale getirmek için ve
‫sonra bunu platform hız noktasından alacağız, güvenli, normal ve ardından sonun etrafında bazı parantezler alacağız.
‫Peki burada neler oluyor?
‫Bunu daha önce görmemiştik.
‫Vektörün bileşenlerini, X, Y ve Z'yi elde etmek için Dot'u kullandık.
‫Bunlar değişkenlerdi.
‫Ancak C++'da ve genel olarak nesne yönelimli programlamada, sınıflar üzerinde var olan fonksiyonlarımız da vardır, bu nedenle bunlardan
‫birine ulaşmak için DOT operatörünü kullanabiliriz.
‫Sınıfın kendisinden çıkarmaya çalışırken iki nokta üst üste işaretini kullandık.
‫Ancak gerçek vektörün kendisiyle, yani platform hızları vektörüyle bir işlem yapmak istediğimizde, bu
‫vektörün normalini elde etmek için nokta operatörünü kullanabiliriz.
‫Yani burada yaptığımız şey, üye değişken yerine üye fonksiyon kullanmak.
‫Dolayısıyla, bu platform hızının güvenli normaline sahibiz ve satırın sonuna noktalı virgül koyacağız
‫çünkü burada esasen hareket yönü olduğunu söylediğimiz bir değişkenimiz var.
‫Şimdi bunu bir sonraki satırda hareket yönü ile yapılandırılan hareket mesafesinin çarpımını yapmak için kullanabiliriz
‫çünkü tam olarak sonuna kadar hareket etmek istiyoruz, aşmak değil.
‫Bunu yaptıktan sonra da platformumuzu son konuma taşımalıyız.
‫Bu yüzden aktör konumunu başlangıç konumu olarak ayarlayacağız, çünkü aksi takdirde platformumuz
‫aşmış ve bu son konumu geçmiş olacak çünkü onu aşılan konum olan mevcut konumla güncellemiş
‫olacağız.
‫Bu da tam olarak bitiş noktasına gitmemizi sağlar.
‫Ve sonra bu yeni başlangıç konumundan başlayın.
‫Şimdi, tüm bunları yaptıktan sonra platform hızını güncellememiz önemlidir çünkü bunu hareket
‫yönünü belirlemek için kullanıyoruz.
‫Bu yüzden aktör konumunu ayarladıktan sonra platform hızını güncelleyeceğim.
‫Şimdi bir makaraya geri dönelim ve derlemeye basalım ve bunun düzelip düzelmediğini görelim.
‫Platformumuzun ileri ve geri hareket etmesiyle ilgili sorun, bu terminali kapatalım ve play tuşuna basalım.
‫Şimdi baktığımızda, platform hızlı hareket ediyor, ancak beklediğimiz başlangıç ve bitiş konumları etrafında güvenilir
‫bir şekilde hareket ediyor.
‫Bu derste anlatmak istediklerim bu kadar.
‫Bazı platform yapılandırmalarımız için ortaya çıkabilecek küçük bir hatayı düzelttik.
‫Bir sonrakinde görüşürüz.