Scratch 3 İle Elma Toplama Oyunu

Scratch 3 İle Elma Toplama Oyunu

Diğer Scratch yazılarına hazırlama için  TIKLAYINIZ.

Bırakmak videolu anlatımı için  TIKLAYINIZ.

Çocukluğumda en sevdiğimiz oyunlardan biriydi elma toplama oyunu. Peki, scratch ile bu oyunu kolayca yapabileceğimizi söylesem. Ne dersiniz?

Hadi Elmaları Toplayalım!

Önce istediğimiz sahneyi seçiyoruz. Ardından elmaları toplamak için boş bir sepet kuklası ekliyoruz. Elmalar içinde birden fazla düşmesi ve çok zor olmaması için 3 adet elma kuklası ekliyoruz.

Ben kendi bilgisayarımda bulunan png formatında bir elmayı kullandım. Boyutu oldukça büyüktü. Bir elmanın boyutunu 100’den 12’ye indirdim. Elmalarında arasında boyut farklı olsun diye diğer elmayı 15, üçüncü elmanın da boyutunu 17 olarak değiştirdim. Sepetin büyüklüğünü de 100’den 50 yaptım.

Sepetle belirli sayılarda elma topladığımda sepetin giderek dolmasını istiyorum. Bunun için sepet kuklasının üzerine gelip birkaç kılık ekledim. Bu kılıkları daha önceden hazırlamış ve png haline getirmiştim.

Devem Edelim.

Artık kod bloklarını oluşturmaya hazırım. Önce elma1 kuklamızdan başlayalım. Bunu yapmak için “bayrağa tıklandığında” kodumuzu alıyorum. Daha sonra başlangıçta elmanın gözükmesini istemiyorum. Bu yüzden görünüm sekmesindeki gizle kodunu alıyorum. Elmaların yukarıdan aşağıya doğru düşmesini istiyorum. Ama nerden geleceği tesadüf olmasını istiyorum. Yani elmanın y konumu belli ama x konumunun tesadüfi olmasını istiyorum. Bunu yapmak için hareket sekmesinde bulunan “x:……  y:…… konumuna git ” kodunu seçip x konumunu operatörlerden “….-…. Arasında sayı tut ” koduna x konum aralıklarını yazdım. Y yukardan başlayacağı için 190 yazdım. Elmanın görünmesi için de göster kodunu kullandım.

Devam edelim

Elmanın aşağıya doğru düşmesini istiyorum bunun için y’yi sürekli azaltmam gerekir. Hareket sekmesinden “y konumunu -5 kadar değiştir” aldım. -5’ i kendim yazdım. Y’ yi aşağı doğru azaltmak için “-” kullandım.

Bu düşen elmalar için iki durum söz konusu olacak. İlk durum sepete değme durumudur. Bu durumda elmanın o an kaybolup belli bir süre sonra tekrar düşmesini istiyorum. Toplanan elmalarımın sayısının da bir artmasını istiyorum. Bunun için kontrol sekmesini kullanmam gerek. Çünkü sepete değip değmediğini kontrol edeceğim. Algılama kısmından bu kodu seçiyorum (“sepete değiyor mu?”). Değiyorsa elmanın gizlenmesini ve toplanan elma sayısının bir artması gerekiyor.

Ardından eski konumundan random bir x konumuyla düşmesi gerekiyor. Bunun için önce elmayı gizledim. Oluşturduğum toplananelma değişkenini bir arttırdım. Elmayı tekrar yukarı taşımak için konumunu belirledim. Bir saniye bekleyip görünmesini sağladım.

Devam edelim

Elmanın ikinci durumu ise sepete değmeden y’sinin giderek azalmasıdır. Bu durumu sınırlandırmam gerek. Çünkü sepete değmeden aşağı düştüğümde y’si sürekli azalacağı için bir daha sepete değmeyecek yani elmamı kullanamayacağım. Bunu engellemek için y’si -180 altına indiğinde elmanın gizlenip sepete değmeden düştüğünü düsenelma değişkenini bir arttıracağım. Elmamın tekrar yukarı çıkıp random bir x’ten başlaması için x ve y koordinatlarını belirledim. 1 saniye kuklamın beklemesini ardından görünmesini sağlayan kodları yazdım.

Elma2 ve Elma3 olan kuklalarıma da aynı kodu kopyaladım. Fakat aynı şekilde başlamasınlar diye başlangıçta Elma2’ yi 1 saniye, Elma3’ü 2 saniye beklettim. Diğer kod ve bekleme kısımlarını aynı bıraktım. İsterseniz değiştirip random bekleme süreleri ekleyebilirsiniz.

Devam edelim

Elmaların düşmelerini, sepete değip değmeme durumlarını yazdık. Peki, sepet bu esnada neler yapacak? Sepete yazacağımız kodlara gelelim.

İlk olarak tıklandığında oluşturduğumuz değişkenlerin bir değerden başlamasını istiyorum. Eğer bunu yapmazsak hangi sayıdan başlayacaklarını şaşırıp hatalı sonuç verecektir. Bunun için dusenelma ve toplananelma değişkenlerini 0 olarak başlattım.

Her oyun başladığında sepetin belli bir noktadan ve ortadan başlamasını istiyorum. Bunun içinde hareket sekmesinde “x:……  y:…… konumuna git ” kodunu seçip istediğim konuma her oyun başladığında başlamasını sağladım. Sepetin elmaları yakalaması için sağ ve sola hareket etmesini istiyorum. Bunu yaparken y konumu sabit kalacaktır. Sağa giderken x’i 10 artacak, sola giderken 10 azalacaktır. Bu kodu yazarken sürekli tekrarla kodunu kullandık. Eğer kullanmasaydım, sadece x’i bir kez sola 10 adım veya sağa 10 adım götürebilirdim.

Sağ oka basılıp basılmadığını anlamak için kontrol sekmesinde yer alan eğer kod bloğunu kullandım. Algılama sekmesinden sağ ok basılı mı? Kodunu seçip ekledim. Basıldığında x’in 10 artmasını istediğim için hareket sekmesindeki bu kodu da ekledim. Aynı işlemi sol ok içinde uyguladım. X değeri sola doğru azalacağı için “-10” şeklinde giderek azalmasını sağladım. Kenara geldiğinde kuklamın sahneden çıkmaması için hareket sekmesinde bulunan kenara geldiyse sek kodunu kullandım.

elma toplama oyunu

Sepetiniz kodu çalıştırdığınızda yamuk olabilir. Bunun sebebi dönüş izinlerinden kaynaklıdır. Sepette yönün üzerine geliniz ve her yöne döneni değil sağa sola olanı seçiniz.

Sepette istediğim bir diğer durum ise elma topladıkça dolması. Bunun içinde kılıkları değiştirmem gerekiyor. Bunu topladığım elmaların sayılarını kontrol ederek yapmalıyım. Eğer topladığım elma sayısı 4’ ten küçükse sepet boş yani kılık1 gözüksün. 4- 10 arasında elma toplayabilirsem kılık2, 10-20 arasında kılık3 ve 20 elma üstünde toplayabilirsem de kılık4 gözüksün. Bu değerleri sürekli kontrol etmesi için sürekli tekrarla kodunun içerisinde yazıyorum. Her birini kontrol ve operatör sekmesini kullanarak kontrol ediyorum. Eğer koşul sağlanırsa görünüm kısmından geçmesi gerektiği kılığı seçiyorum.

elma toplama oyunu

Oyunumun son olarak oyunu bitirme kısımları kaldı.

Düşen elma sayımın 4’ten fazla olması durumunda oyunumun bitmesini istiyorum. Birde topladığım elma sayısı olunca oyunumun bitmesini istiyorum. Düşen elma sayısı 4 olduğunda sürekli tekrarla ile sürekli kontrol etmeyi sağladık. Eğer düsenelma=4 ise toplanan elma sayımızı söyleyip oyunun bitmesini sağladım. Aynı şekilde toplananelma sayısı da 30 olunca toplanan elma sayımızı 3 saniye söyleyip oyunun bitmesini sağladım.

Şuanda oyunumuz hazır! İyi oyunlar!

Oyununu geliştirmek isteyenlere!
  • Düşen elma sayısını can gibi ekranda gösterebilir. Her bir düşen elmada bir canını ekrandan alabilirsiniz.
  • Toplanan elma sayısına göre level oluşturuşup her level de elma ve sepet hızlanabilir. Örneğin 10 elma topladığında level 2’ ye geçsin ve elmaların hızı 5’ ten 7’ye, sepetin 10’dan 11’e çıksın.
  • Oyun bittiğini kukla olduğu yerde söylemesi yerine orta konuma gelip söyleyebilir. Ayrıca kukla oyunun bittiğini söylerken elmalar oldukları yerde durabilir veya kaybolabilir. (İpucu: Haber sal kodu ile yapabilirsiniz.)
  • Oyun bittiğinde kuklaya söyletmek yerine dekor değiştirip oyunun bittiği haberi verilebilir.

Leave a Comment