Kategori:
Scratch
Başlık:
Scratch ile Rastgele Çıkan Hedefi Vurma Oyunu

Belirli bir süre zarfında rastgele yerlerden çıkan hedefleri vurmak pek çok oyunda karşılaştığımız bir durum. Burada yapacağımız oyunda bunun mantığını ve algoritmasını oluşturacağız. Ve artık gerektiğinde kullanabileceğiz. Bu yazıda oyunun Scratch ile blok tabanlı kodlamasını yapacağız. Bir sonraki yazımızda da aynı oyunu Python programlama dili ile yapacağız. Scratch dil yapısıyla uğraşmadan sadece düzgün algoritma oluşturarak kolay kodlama yapmamızı sağlıyor güzel yanı bu. Ama diğer programlama dilleri ile yapabileceğimiz ayrıntılı işlemleri maalesef yapmamıza izin vermiyor. Örneğin ekran ve pencere ayarlarını istediğiniz gibi yapamıyorsunuz. Zaten Scratch, algoritma geliştirmeyi öğretmeye yönelik bir kaynak. Daha geniş kapsamlı programlar tasarlamak için Python gibi dilleri öğrenmek gereklidir.

Yapacağımızın oyunun senaryosu şöyle olacak: Vurmamız gereken düşman(kovboy) ekranda belli aralıklarla çıkıyor ve çıktıktan bir süre sonra bize ateş ediyor. Amacımız o bizi vurmadan önce onu vurmak. Her seferinde ekranın rastgele bir yerinden çıkıyor ve zamanında vurmamız gerekiyor. Biz onu vurmazsak o bizi vuruyor ve canımız azalıyor. Biz onu vaktinde vurduğumuzda puanımız artıyor ve canımız azalmıyor. Şimdi adım adım bu oyunu tasarlayalım.

Oyunun bitmiş haline aşağıdaki bağlantıdan ulaşabilirsiniz:

https://scratch.mit.edu/projects/277364198/

1.Aşama: Hedef Kuklasını Hazırlama ve Kodlama:

Öncelikle Scratch programında boş bir proje açalım ve aşağıdaki gibi bir hedef kuklasını ekleyelim. Kuklanın 2 kostümü olacak biri ateş edilmemiş hali, diğeri ateş edilmiş hali. Hedef kuklasını aşağıdaki gibi kendiniz de çizebilirsiniz veya bulacağınız hazır resimleri de kullanabilirsiniz.


Hedef kuklasını oluşturduktan sonra aşağıdaki kodlamaları yapalım.

Buradaki kodlarla:

  • Oyun başladığında (bayrak tıklatıldığında) hedef kuklasının görünmesini ve fare imlecini takip etmesini sağlıyoruz.
  • Fareye tıklatıldığında hedef kuklasının ateşleme kostümüne geçmesini, tıklamadığımızda ilk görünümüne geçmesini sağlıyoruz.
  • Oyun bitti haberi geldiğinde (diğer aşamalarda salacağız bu haberi) gizlenmesini sağlıyoruz.

2.Aşama: Düşman Kuklasını Hazırlama ve Kodlama:

Hedef kuklasında yapıldığı gibi düşman olarak belirlediğimiz bir nesneyi (burada kovboy yaptık sis istediğiniz gibi yapabilirsiniz) iki kostümlü olarak oluşturuyoruz. Bunlardan biri normal görünüm diğeri vurduktan sonraki görünümü olacak.

Düşman kuklasını oluşturduktan sonra ates, can, puan, dusman_x, dusman_y değişkenlerini oluşturalım. Sadece can ve puan değişkenleri görünür olacak şekilde ayarlayalım. Sonra da aşağıdaki kodlamaları yapalım.


Buradaki kodlarla:

  • Oyun başladığında (bayrak tıklatıldığında) düşman kuklasının normal kılığa(kılık1) geçmesini sağlıyoruz. Ayrıca can değişkenine 15 değeri veriyoruz. Oyunun daha uzun veya kısa sürmesini istiyorsanız can değişkenine başka değerler verebilirsiniz. Puan değişkeninin de her oyun başlangıcında sıfırlanmasını sağlıyoruz.
  • Buradaki ates değişkenini düşmanın ateş etme zamanlamasını ayarlamak için kullanıyoruz. Düşman karakteri görüldükten 2 saniye sonra ates değişkeni 1 olarak ayarlanacak ve bu durumda da ateş haberi salınacaktır. Ateş haberi de düşman ateşi animasyonunu başlatacaktır.
  • Düşman karakteri belirdikten sonra ilk 2 saniyede düşmana tıklayabilirsek (yani ateş edebilirsek) ates değişkeni 0 olarak ayarlanacak ve dolayısıyla ateş haberi salınmayacağı için düşman ateş edemeden vurulma kostümüne(kılık2) geçecektir. Bu sırada puan da artacaktır.
  • Oyun bitti haberi geldiğinde de düşman karakteri gizlenecektir.

3.Aşama: Düşmanın ateş etme animasyonunu kodlama

Düşmanın göründükten 2 saniye sonra ateş etme efektini oluşturmak ve canın azalmasını sağlam için öncelikle ateş etme kuklasını oluşturuyoruz. Bunu ister kendiniz çizin isterseniz de internetten indirin. Burada tek kılıklı olarak kuklayı kendimiz oluşturduk. Daha sonra da aşağıdaki kodlamayı yapalım.

Buradaki kodlarla:

  • Pat adı verdiğimiz düşman ateşi kuklasının bayrak tıklatıldığında ve oyun bittiğinde gizlenmesini sağlıyoruz.
  • Kukla bir önceki adımda belirttiğimiz koşullarda salınan ateş haberiyle ön katmana çıkıp düşman kovboyun üstünde görünecek ve can değişkenini bir azaltacaktır.
  • Can değeri 0 olduğuna da oyun bitti haberi salınarak karakterlerin gizlenmesi ve oyunun bitiş sahnesinin görülmesi sağlanacaktır.

4.Aşama: Sahne ayarlamaları ve son kodlamalar

Oyunumuzda 2 sahne kullanılmıştır. Bunları aşağıdaki gibi oluşturalım. Bu sahnelere kodlamada kolaylık olması açısından 1 ve 2 adlarını veriyoruz.


Ve son olarak da sahne kısmında aşağıdaki kodlamarı yapıyoruz:



Buradaki kodlarla

  • Oyun başlatıldığında (bayrak tıklatıldığında) ilk dekora geçmeyi ve can,puan değişkenleri göstermeyi sağlıyoruz.
  • Oyun bitti haberi geldiğinde 2.dekora geçmeyi ve değişkenleri gizlemeyi gerçekleşiriyoruz. Ayrıca son kodla da hala çalışan kodlar varsa hepsini durduruyoruz.

 Son olarak:

  • Bu oyun örneğini geliştirerek level, süre gibi faktörleri koyabilirsiniz. Örneğin level arttıkça daha çok ve değişik özellikte düşmanlar daha hızlı çıkabilir.
  • Çeşitli ödüller ve animasyonlarla oyunu daha güzel hale getirebilirsiniz. (Örneğin düşmanın rasgele belirlenen yerlere yerleştirilen masalar veya objeler arkasından çıkmasını sağlayabilir, ortaya çıkması ile ilgili animasyonlar oluşturabilirsiniz.
  • Bu oyun hakkında yorumlarınızı ve daha gelişmiş versiyonlarınızı aşağıdaki yorumlar kısmında payşaşabilirsiniz.
714 views
YORUMLAR