Sayfalar

19 Mayıs 2020 Salı

Balık Avlama Oyunu 4

Merhaba. "Balık Avlama 3" yazımızda köpek balığı ve balığın büyüklüklerini ve hızlarını ayarlamıştık. Köpek balığının büyüklük değerini azalttığımız için kazandın kostümü ekranda daha küçük görünmeye başladı. Birde kazandın kuklası ekranda bazen ters olarak yazılabiliyor. Öncelikle bu durumları çözmeli ardından oyunda tespit ettiğimiz diğer geliştirmeleri yapmalıyız. 

İlk olarak köpek balığının balığı yakalaması durumunda kazandın kostümüne geçmesini sağlayan kodlarımıza bakalım. Bu kodlar içerisine kostüm değişikliği sırasında kuklamızın büyümesini sağlayacak kodları eklememiz gerekiyor. Ben büyüklük değeri için %200 değerini seçtim. Böylece kostümümü normal halinin 2 katı büyüklüğe çıkarmış oldum.

Önceki yazımızda köpek balığının büyüklük değerini kukla ayarları kısmından da yapabileceğinizi söylemiştim. Eğer bu yolu tercih etmiş olsaydık kostüm değişikliği sırasında büyüklük değerini değiştirdiğimizde yeni bir sorunumuz olacaktı. Oyun başladığında kukla boyutu değişmeyecekti. Bu yüzden yaptığımız değişiklikleri mümkün olduğunda kodlarla yapmak bize avantaj sağlayacaktır. 

Diğer konumuz ise kazandın yazısının ekranda ters görüntüleniyor olması. Hatırlarsanız kuklamızın yön bilgisini değiştirmiş sadece sağa sola dönmesini sağlamıştık. Bu sayede köpek balığımızın ters yüzmesini engellemiştik. Şimdi ise yazının her seferinde düz gelmesini sağlamak için yön bilgisini kullanacağız. Kuklamızın yön değeri 0-180 arasında bir değerde iken yazı ekranda düz görünecektir. Bu kılığa geçtiğinde yön değerinin bu değer aralığında olmasını sağlarsak yazı her seferinde düz bir şekilde görünecektir(Dönüş stilini sağ-sol olarak ayarladığımızı unutmayın.). Ben değeri 90 olarak kullanacağım. 


Bu iki kodu doğru yerde kullanmayı başardıysanız oyunun sonunda kazandın yazımız doğru ve büyük bir şekilde ekrana gelecektir. 

Bu dersimizde yaptığımız tespitlerden bir tanesini de çözüme kavuşturalım. "*Balık rastgele bir yerde başlasa bile hep aynı şekilde yüzüyor. Hareketleri tahmin edilebildiği için kolaylıkla yakalanabilir. " demiştik. Buradaki sorun balığın hep aynı döngüde yüzüyor olması. Balığın yüzüşünü farklılaştıracak bir çözüm bulmalıyız. 

Balığımızın hareketi için yazdığımız kodları hatırlayalım ve ne gibi bir değişiklik yapabileceğimizi düşünelim. 

1 ve 2 numaralı kodlar ekranın herhangi bir noktasından, rastgele bir yöne doğru hareketin başlaması için gerekli adımların atılmasını sağlıyor. Sürekli tekrarla bloğu içerisinde ise düzenli bir hareket için gerekli olan kodlar yer almakta. Bu kodlar üzerinde yapacağımız değişiklikler ile balığımızın farklı hareketler yapmasını sağlamalıyız. Bunun için aşağıdaki kodlardan yararlanmayı düşünüyorum. Sizler daha farklı çözümler de üretebilirsiniz. 



Bu kodları sürekli tekrarla bloğu içerisinde kullanarak balığın farklı hızlarda farklı yönlere yüzüyor gibi görünmesini sağlayabilirim. Balık belirlediğim sürenin sonunda ekranın farklı bir yerinde doğru hareket etmeye başlayacaktır. Bu ise düzensiz bir yüzüş oluşturacağı için istediğim şeyi elde edeceğim.  İlk iş olarak sürekli tekrarla bloğu içerisindeki "10 adım git" kodunu siliyorum. Ardından belirli bir sürede istediğim konuma gitmemi sağlayan yukarıdaki bloğu sürekli tekrarla içerisine alıyorum. Buradaki sayısal değerleri operatörleri kullanarak rastgele üretmem gerekiyor. Operatörler başlığı altında bulunan "sayı tut" kodunu kodlama alanına sürüklüyorum. Ben hareketin en fazla 5 saniye sürmesini istiyorum. Gerekli düzenlemeleri yaparak saniye değerinin yazdığı alana kodumu sürüklüyorum. Sırada x ve y değerleri var. x değeri -240 ve 240 arasında değer alırken, y değeri -180 ve 180 arasında değer alabilir. Gerekli kodları hazırlayarak kodlarımı tamamlıyorum.

Bu hali ile balık ekranda farklı yönlere doğru yüzüyor. Ancak ters yüzmek gibi bir yeteneğe de sahip oldu. Bu sorunu x değerini kullanarak çözebiliriz. Tutacağı rastgele sayı aralığını daraltmamız ve kodlarımız üzerinde biraz değişiklik yapmamız gerekiyor. Bu sorunu çözeceğinden şüphem yok. Çözüm için daha farklı yöntemler de geliştirebilirsin. Bir sonraki dersimizde görüşmek üzere. Başarılar :)

Hiç yorum yok:

Yorum Gönder