‫Tekrar hoş geldiniz.
‫Bu videoda, kasemize işlevsellik ekleyeceğiz, böylece sonunda soldan sağa hareket edebilecek
‫ve raketlerden sekebilecek, ki bu da elbette amaçladığımız işlevselliktir.
‫Ve sonra, elbette, raketlerimizi hareket ettirmemiz gerekecek.
‫Bunu daha sonraki videolardan birinde yapacağız.
‫Ve sonra oyunla işimiz neredeyse bitti.
‫Topumuz için top hareketi adını vereceğim yeni bir komut dosyası oluşturarak başlayalım.
‫Gördüğünüz gibi, bir reklam oluşturuyoruz, yeni bir komut dosyası oluşturuyoruz ve bunu Visual Studio ile açabiliyoruz.
‫Pekala, Visual Studio'da başlatma ve güncelleme yöntemimiz var.
‫Güncelleme yöntemine ihtiyacımız olmayacak, bu yüzden bundan kurtulalım.
‫Bununla birlikte, ihtiyacımız olan şey, topun ne kadar hızlı hareket edebileceğini gösteren bir yöntemdir ve bu, unity içinde
‫değiştirebilmemiz için genel bir değer olmalıdır.
‫Bu yüzden genel float hareket hızı hızları genellikle float ve unity olmalıdır çünkü hızınızı kullanmak istediğiniz şey
‫çoğu zaman fiziktir ve fizik float ile çalışır.
‫O zaman ihtiyacımız olan şey, topun vuruş başına ne kadar daha hızlı gidebileceğini söyleyen bir değerdir.
‫Yani raketle vurduğu her vuruş için biraz daha hızlı gitmeli ki
‫oyun giderek zorlaşsın.
‫İşte bunu, vuruş başına ekstra hız olarak adlandırılan başka bir float değişken yaratarak başarıyoruz.
‫Yani her vuruşta biraz daha yükselmeli.
‫O zaman topun bir noktada süper hızlı gitmemesi ve yakalanmasının imkansız olmaması için maksimum bir hıza ihtiyacımız
‫var.
‫Elbette diyebilirsiniz ki, tamam, ben bunu istemiyorum ama burada bir sınır belirlemek istiyoruz.
‫Bu nedenle, maksimum ekstra hızımız olan bir sınır oluşturuyoruz, böylece genel olarak maksimum bir hız var ve isabet sayacı olarak adlandırdığım
‫bir değişken yardımına ihtiyacımız olacak.
‫Ve bu, raketin kaç kez vurulduğunu veya herhangi bir raketin kaç kez vurulduğunu sayacaktır.
‫Şimdi yapmak istediğimiz şey topumuzu hareket ettirmek.
‫Öyleyse topumuzu hareket ettirmek için bir yöntem oluşturalım public void, move ball.
‫Peki bunu nasıl çağıracağım ve yön için bir vektöre ihtiyacı var, bu yüzden yön için
‫sadece hava diyeceğim.
‫Şimdi bu yön normalleştirilmiş bir yön olmalıdır.
‫Yani bu move ball metodu dışarıdan çağrılabilir, başka bir metodun içinden çağrılabilir.
‫Örneğin, herkese açık olduğu için farklı bir sınıftan veya farklı bir koddan çağrılabilir.
‫Yapmak istediğimiz şey, öncelikle bize verilen yönü normalleştirmek çünkü bu çok tuhaf bir değer haline gelebilir
‫ama biz bunun normalleştirilmesini istiyoruz.
‫Yani yaptığımız şey, yönün eski yön olduğunu, ancak normalleştirilmiş bir değer olduğunu söylemektir.
‫Yani bu vektörü bir büyüklüğünde döndürür.
‫Biz de burada bunu yapıyoruz.
‫Şimdi devam edebilir ve bir hız oluşturabiliriz, böylece topumuzun hızı a olmalıdır Şimdi ne olduğunu hatırlayın.
‫Her şeyden önce, hareket hızımız vardı, bu yüzden bu nokta hareket hızı ve daha sonra vuruş başına ekstra hızı eklememiz gerekiyor ve bu
‫nedenle kaç vuruşumuz olduğunu bilmemiz gerekiyor.
‫Yani devam edip bu nokta vuruş sayacını söyleyeceğiz.
‫Peki kaç tane vuruş yaptık?
‫Vuruş başına bu nokta ekstra hız ile çarpın.
‫Bu şekilde topun hareketini sürekli olarak artırıyoruz.
‫Şimdi, bu hızı topumuza uygulamak için eklememiz gereken şey topumuza kuvvet uygulamaktır ve bu durumda,
‫sert gövdeye kuvvet uygulamaktır, çünkü sert gövde topumuzun fizik yönüdür.
‫Bu da sert bir gövdeye ihtiyacımız olduğu anlamına geliyor.
‫2D, rigid body 2D olarak adlandırdığım bu dot game object dot get component'e eşittir ve bileşenin adı
‫rigid body to DX olmalıdır.
‫Böylece bu oyun nesnesinin katı cisim 2D bileşenini alıyoruz.
‫Dolayısıyla, top hareket komut dosyasını taşıyan oyun nesnesinin, ki bu şimdilik sadece bizim topumuz olacak, birden fazla
‫top eklemek istersek, bunu yapabiliriz ve hepsinin kendilerine atanmış bir DX bileşenine
‫sert bir gövdeye sahip olması gerekir.
‫Artık rijit gövde 2D'yi bildiğimize göre, devam edebilir ve bunu etkileyebiliriz.
‫Böylece hızını değiştiririz, yönü hız ile çarpılır.
‫Yani bu, hareket topu yöntemimize hangi yön verilmişse, o yön ile çarpılacağı anlamına gelir.
‫Bu da hareket hızı artı vuruş başına ekstra hızın vuruş miktarıyla çarpımıdır.
‫Şimdi topumuzun hareket etmesi için topu hareket ettir dememiz gerekiyor.
‫Bunu yapmanın en iyi yolu, bir CO rutini içinde çağırmaktır.
‫Yani bir kod rutini başlatmak için güncelleme metodunu kullanmıyoruz, bu çok verimsiz
‫olurdu çünkü metodu sürekli çağırırdık ve hızı çok hızlı değiştirirdik vb.
‫Ve bunu yapmanın en iyi yolu gerçekten bir i numaralandırıcı yöntemi oluşturmaktır.
‫Yani, bir numaralandırıcı döndüren bir yöntem, böylece onu bir çağrı rutini için kullanabiliriz.
‫Ne rutin bir arama.
‫Yeni eylemler gerçekleşmeden önce diğer her şeyi onu beklemeye zorlar.
‫Bu şekilde, bir eylemin koşmak yerine diğerini beklemesini kontrol edebilirsiniz.
‫Buna paralel olarak, ileriki derslerde kod rutinini başlatmanın daha ilginç yollarını bulacağız, ancak şimdi bunu sadece topumuzu
‫hareket ettirmek için kullanalım.
‫Bu yüzden ilk olarak ihtiyacımız olan şey, gördüğünüz gibi genel olmayan koleksiyonumuzun basit bir yinelemesini destekleyen
‫bir AI numaralandırıcısı döndüren, herkese açık yeni bir yöntemdir.
‫Bizim istediğimiz de bu.
‫Biz buna başlangıç topu diyoruz.
‫Yani bu, topun hareketini her başlattığımızda bu metodun çağrılacağı anlamına gelir ve
‫burada birinci oyuncu true'ya eşit olduğunda çağrılacak bir boolean'a ihtiyacımız var.
‫Bu da başlangıç oyuncumuz olan bir değişkene ihtiyacımız olduğu anlamına gelir ve herhangi bir değer verilmezse sadece true olacaktır.
‫Bu da birinci oyuncumuzun başlangıç oyuncusu olacağı anlamına geliyor.
‫Bu da topun soldan sağa gideceği anlamına gelir.
‫Tamam.
‫Ve bunun adı başlangıç topu olmalı.
‫Şimdi, hala kırmızı alt çizgi var.
‫Bu, burada hala bir hata olduğu anlamına gelir.
‫Çünkü biz bir şeyi iade etmiyoruz.
‫Tüm soğuk puflar bir değer döndürmez, bu yüzden bazı değerler döndürelim.
‫Bu nedenle ihtiyacımız olan şey, öncelikle vuruş sayacımızı sıfırlamamızdır.
‫Bu yüzden bunu burada sıfıra ayarlıyoruz ve ardından yeni bir ağırlık 4 saniye döndürüyoruz.
‫Yani oyunumuzu biz yapıyoruz.
‫2 saniye bekleyin.
‫Yani bu, oyuna her başladığımızda veya topa başla dendiğinde, vuruş sayacını sıfıra ayarladıktan sonra 2 saniye
‫beklediğimiz ve ardından harekete başladığımız anlamına gelir.
‫Yani ilk başlayan ya da başlamak üzere olan oyuncu olup olmadığını kontrol ediyoruz.
‫Yani bu oyuncu birinci oyuncu olarak başlıyor.
‫Eğer durum buysa, devam edin.
‫Bu nokta topu hareket ettiriyor.
‫Bu yöntemi burada çağırıyoruz ve ona eksi bir ve sıfır değerine sahip yeni vektör iki vektörünü veriyoruz.
‫Bu, topun sola hareket edeceği ve aksi takdirde topun sağa hareket etmesi gerektiği anlamına gelir.
‫Yani bu nokta hareket topu yeni vektör iki şimdi sağa hareket etmelidir.
‫Yani bir ve sıfır.
‫Gördüğünüz gibi bir x değeri ve sıfır Y değeridir, float y.
‫Pekala, şimdi bunu yaptığımıza göre, sadece bir CO rutini başlatmamız gerekiyor.
‫Bu yüzden CO rutinine başlayın ve burada bu nokta başlangıç topumuzu çağırıyoruz.
‫Tamam, şimdi bunu kaydedelim.
‫Oyuna daha sonra başka işlevler de eklememiz gerekecek.
‫Ama şimdilik bunu birlik içinde test edelim.
‫Şimdi ihtiyacım olan şey topumuzun kütlesini değiştirmek.
‫Süper hafif olmalı.
‫Bu yüzden sadece 0 kullanacağım. 01 ve yerçekimi ölçeği
‫için, sadece sıfıra gideceğim.
‫Topumuz için yerçekimine hiç ihtiyacımız yok.
‫Şimdi, burada görebileceğiniz gibi, hareket hızı sıfır, vuruş başına ekstra hız sıfır ve maksimum
‫ekstra hızımız da sıfır.
‫Ve bu bizim istediğimiz bir şey değil.
‫Elbette topumuzun hareket etmesini istiyoruz ve iyi bir başlangıç değeri 400'dür.
‫Vuruş başına iyi bir ekstra hız 50'dir ve maksimum hız 1000 olmalıdır.
‫Yani bunlar sadece test ettikten sonra bulduğum değerler.
‫Bakalım 2 saniye sonra ne olacak.
‫Topumuz sola doğru hareket etmeye başlar çünkü sıra birinci oyuncudadır ve sonra ileri geri gider.
‫Gördüğünüz gibi, hız çok eşittir, bu yüzden gerçekten değişmez.
‫Vuruş başına bu ekstra hız değerini eklememize rağmen her zaman aynı hızdadır.
‫Öyleyse devam edelim ve vuruş sayacı ile vuruş başına ekstra hızı artıralım.
‫Bu yüzden isabet sayacımızı bir artıran bir metot eklememiz gerekiyor ve
‫ben bunu public void increase hit counter olarak adlandıracağım.
‫Bu da isabet sayacını bir artıracaktır.
‫Yani bu nokta vuruş sayacı bu nokta ile çarpılırsa, ekstra hız bu nokta maksimum ekstra hızdan daha küçüktür
‫diyor.
‫O zaman lütfen devam edin ve vuruş sayacını artırın çünkü aksi takdirde bir noktada iyi bir hıza ve sınırsız
‫hıza sahip oluruz.
‫Yani yükselecek, yükselecek, yükselecek ve daha da yükselecek.
‫Tamam.
‫Bu yöntem şu anda hiç çağrılmıyor ve top hareketi kodumuz içinde de çağrılmayacak.
‫Bununla birlikte, kayıtlarımız için senaryoda onu arayacağız.
‫Bu yüzden bunu sonraki videolardan birinde yapacağız.
‫Ancak şu ana kadar topunuza nasıl hareket katacağınızı gördünüz ve sonraki videolarda buna devam
‫edeceğiz.
‫Bir sonraki videoda görüşmek üzere.
‫Bunu yapmadan önce, elbette temizlememiz gerekiyor, bu yüzden top hareketini komut dosyalarına sürükleyelim
‫ve sahnemizi kaydedelim ve bir sonraki videoda görüşmek üzere.