Sayfalar

1 Aralık 2018 Cumartesi

Aşamalı Labirent Oyunu(2)

Merhaba sevgili öğrencilerim. Teneffüs bitti. Kaldığımız yerden devam. ( Yazımızın birinci bölümüne ulaşmak için tıklayınız.)

Birinci bölümde maymunumuzun fare imlecini takip etmesini ve muzun maymunun temasından sonra saklanmasını sağlamıştık. En son maymunumuzun bitiş bayrağına dokunması sonucunda yapması gerekenleri tasarlayacaktık. Kaldığımız yerden devam.

Şimdi yapacağımız işi sesli düşünelim. Maymun bitiş isimli kuklaya temas ettiğinde dekor değişecek. Dekor değiştiğinde Bölüm2 dekoruna geçilecek. Şimdi bunu bilgisayarın anlayacağı dile çevirme zamanı.



Bu kodlarda sürekli kontrol edileceği için sürekli tekrarla kodunun içerisine yerleştirmemiz gerekiyor. Kodumuzu da yerine yerleştirdiysek şimdi bir deneme yapma zamanı. Boşluk tuşuna basalım ve oyunumuzun şimdiye kadarki halini bir test edelim. Eksiklerimiz var mı? Bir kontrol edelim. Bitiş kuklasına ulaşmayı başardıktan sonra bölüm 2'ye geçmeyi başardı iseniz oyunu durdurup tekrar başlatın. Bakalım dekorumuz Bölüm1'e geçecek mi? Tabi ki geçmeyecek. Neden? Biz kodlarımıza oyun başlangıcında dekor değişimi vb hiçbir kod yazmadık. Dolayısıyla hangi dekorda kaldıysa o dekor ile başlaması gayet doğal. Bu hatayı düzeltmek için yapmamız gereken şey boşluk tuşuna basıldıktan sonra Bölüm1 dekoruna geçmesini sağlayacak kodu eklemek olacak. Kodu doğru noktaya ekleyip tekrar kontrol edelim. Kontrol sırasında eksiklik ve aksaklıklar varsa bunları not edelim.


Maymun için yazdığım kodlar bu şekilde. Şu ana kadar yazdığım kodlar ile maymun fareyi takip ediyor, siyah rengine temas ederse verilen koordinata(oyuna başladığı nokta) gidiyor, muz ile temas ederse büyüklüğü 5 birim artıyor, bitiş isimli kuklaya temas ederse dekor Bölüm2 olarak değişiyor. Bu kodlar ile oyunumda düşünmediğim yerler var mı? Bir düşünmem gerekli. Biraz oyunumu oynayıp test etme zamanı... :)

Testlerim sonucunda gözüme çarpan bir şey oldu. Benim maymunum muz yedikçe büyüdü ve labirente sığmaz oldu. Bu durumu engellemek için oyun başlangıcında maymunun büyüklüğünü sabitleyebilirim. Bunu da görünüm sekmesinden "Büyüklüğü % yap" kodunu kullanarak yapacağım. Büyüklüğü %20 olarak belirledim. Siz elinizdeki kuklanın büyüklüğüne göre değeri değiştirebilirsiniz.

Şu ana kadar yazdıklarımız ile dekor değişikliğine kadar sorunsuz ilerliyoruz. Ancak dekorun değişmesi ile kuklaların ekrandaki yerleri de değişmeli. Bunun için kuklalarımıza aşağıdaki kodları ekliyoruz. 


Koordinat değerleri sizin labirentlerinizde değişik olacaktır. Buradaki değerlerin aynısını yazmayın. :) Ayrıca bölüm değiştikçe yeri de değişeceği için Bölüm3'ü şimdiden ekledim. Onun koordinat değerlerini sırası geldiğinde ekleyeceğim. 

Şimdi yapacağımız işlem çalışan kodları durdurmak olacak. Dekor değişikliğinden sonra çalışacak olan kodları değiştirerek rahat kontrol edebileceğim kodlar oluşturacağım. Hangi bölümde hatalı çalışırsa onunla ilgili kısma bakarak hatayı düzeltebileceğim. Bunu sağlamak için kontrol sekmesinden "bu diziyi durdur" (Bazı sürümlerde "bu betiği durdur" da yazar.)  komutunu kullanacağım. Komut bitiş kuklasına temas edildiği anda çalışacağı için daha önce yazdığım kodlarda uygun yere ekleyeceğim. 


Kodumuzu ekledikten sonra hemen test edelim. Maymunu bayrağa götürmeyi başardıysanız bölüm2'ye geçtiğiniz anda maymun hareket etmeyi bırakacaktır. Eğer karşılaştığınız manzara bu değilse kodu yanlış yere eklemişsiniz demektir. Bölüm2'ye geçildiğinde maymunun hareket etmeme sebebi çalışan bir kodun olmamasıdır. Olaylar sekmesinden "Dekor .... olunca" kodunu kullanarak ilk bölüm için yazdığımız kodları ikinci bölüm için de yazacağız. Neredeyse aynı kodları yazacağımız için kodların tamamını kopyalayabiliriz. Ancak üzerinde bazı değişiklikler yapmamız gerekecek. Değişiklikleri yapmayı unutmayın.


Bölüm2 dekoruna geçildiğinde maymuna yazılan kodlar bunlar. İlk olarak ikinci labirentin neresinden başlayacağını belirledim. Ardından hareket etmesini sağladım. Siyah renge dokunduğunda bölümün başına dönmesini sağladım. Muza dokunduğunda yine büyüyor. Son olarak bayrağa ulaşmayı başarırsa Bölüm3 dekoruna geçecek. Yukarıdaki kodun bir benzerini de Bölüm3 için hazırlayacağız. Kopyalayıp üzerinde değişiklik yapabilirsiniz. 


Bölüm3 için yazdığım kodlar yukarıda gördüğünüz gibi. Hatırlarsanız diğer kuklaların koordinatlarını daha sonra ekleyeceğimi yazmıştım. Şimdi onları ekleyebilirsiniz. Bölüm3 için yaptığım değişiklikler kuklaların ekran üzerindeki yerlerinin değişimini sağlamak ve bitiş kuklasına dokunduğunda oyunun durmasını sağlamak. 

Labirentimiz tamamdır demek isterdim ancak değil. Oyunumuzdaki eksikliklerden ilki muzun yendikten sonra diğer bölümlerde tekrar görünür hale gelmemesi. Bu sorunu nasıl çözebiliriz? Bu sorunun cevabı size ait. Ayrıca siyah çizgiye temas ettiği anda muz yenilmiş ise ekranda tekrar görünür hale gelmesini de istiyorum. Bir diğer eksiğimiz de oyunun bittiğini bize duyuran bir dekora ihtiyacımız var. Bitti adında bir dekor ekleyerek oyunun bittiğinden bizi haberdar ederseniz iyi olur. Yoksa ekranda hareket eden birşey kalmayınca bilgisayarımızın donduğunu zannedebiliriz. :) 

Eksikleri tamamlanmış şekilde oyunlarınızı teslim ediniz. Ayrıca oyunlarınıza ek özellikler de ekleyebilirsiniz. İyi çalışmalar... :)

Hiç yorum yok:

Yorum Gönder