Sayfalar

3 Mart 2017 Cuma

Scratch Gol Oyunu (Hava Hokeyi)

Merhaba sevgili öğrencilerim. Bugün sizlerle hava hokeyi olarak bilinen ama bizim gol oyunu ismini verdiğimiz oyuna. Bu oyunda bilmediğiniz öğrenmediğiniz kodlar olduğu için ilk etapta biraz zorlanabilirsiniz. Ama zaman ilerledikçe ve yaptıklarınızı gördükçe zorlukların üstesinden geleceğinizden eminim.

Gelelim oyunumuzu nasıl yazacağımıza. Öncelikle yapmamız gereken çizim işlerimiz var. İlk olarak sahnemizi bir futbol sahasına çevirelim ve kukla olarak 2 kale, 2 oyuncu ve 1 top çizelim. Benim çizimlerimin ardından sahnem şu şekilde oldu.

Kuklalarınızı ve kılıklarını isimlendirmeyi unutmayın.

Sahnemizi oluşturduysak artık kuklalarımıza neler yapmaları gerektiğini söyleme zamanı. İlk olarak kalelerden başlayalım. Kalelerimize yazacağımız kod çok basit. Oyun başladığında her zaman aynı yerde olmalarını sağlamak için:
Kale1(Siyah)
Kale2(Kırmızı)
Sırada oyuncuların hareket ettirecekleri kalecilerde sıra. Oyun 2 kişi ile oynanacak ve oyuncular kalecileri yukarı aşağı hareket ettirerek gol yememeye çalışacak. Klavyenin sol tarafı ile siyah sağ tarafı ile kırmızı taraf oyunu oynayacak. Kalecileri hareket ettirecek kodlarımız:
Oyuncu1(Siyah)
Oyuncu 2 (Kırmızı)
Oyuncularımız hareket etmeye hazır. Sırada topa yazılacak kodlar var. Öncelikle topumuzun hareket etmesini sağlamak için kodlarımızı yazacağız.Bayrak tıklandığında sahanın ortasından hareket etmesini sağlamak için "x:0 y:0 noktasına git" kodunu ekleyeceğiz. Hareketin sürekli olmasını sağlamak için "Sürekli tekrarla" bloğunun içerisine "kenara geldiysen sek" ve "10 adım git" kodlarını ekleyeceğiz. Topun her seferinde aynı yöne hareket etmemesi için "....yönüne dön" koduna rastgele sayı üretecek "... ile ... arasında bir sayı tut" kodunu ekleyeceğiz. Kodumuzun son hali şu şekilde olacaktır.
Top Hareket Kodları
Kalecilere dokunduğunda ne yapması gerektiğini söyleme zamanı.Her zaman bu denetimi yapması için "Sürekli tekrarla" kodunu ekliyoruz. İçerisine "Eğer .... ise" kodunu ekliyoruz. Bu kod bir sorgu kodudur. Bir olayın durumunu değerlendirme ve sonuca göre hareket etme fırsatı verir. Burada sorgulanacak şey topun kaleciye dokunmasıdır. Eğer top oyuncu 1'e değerse içerisine yazılacak kodlar çalışacaktır. Eğer bloğunun içerisine topun tam ters yöne gitmesini sağlayacak kodlar eklenmelidir.
Topun - Siyah Kaleci

Top - Kırmızı Kaleci
Son olarak gol olduğunda ne yapması gerektiğini söyleme zamanı. Topun kale ile temas etmesi halinde oyunun bitip gol atan kişinin kazandığı bilgisi gelmesini istiyorum. Bu durumun sürekli kontrol edilmesi gerekiyor. Ve kaleye dokunup dokunmadığının sürekli kontrol edilmesi gerekiyor. Bunları yapmak için "Sürekli tekrarla" kodu içerisine "Eğer ...... ise" kodunu ekliyoruz. Topun kaleye temas etmesi halinde top kılık değiştirerek kimin kazandığını ekranın tam ortasına yazacak ve oyun bitecek. Bunu sağlamak için "x:0 y:0 noktasına git", "90 yönüne dön", "Oyuncu...kılığına geç" ve "hepsi durdur" kodları kullanılır. Kodları doğru bir şekilde eklediğimizde aşağıdaki şekilde görüntülecektir.

Top - Kale1(Siyah)
Top - Kale2(Kırmızı)
Kodlarımızı doğru bir şekilde eklediysek oyun bittiğinde karşımıza şu ekran gelecektir.
Topa yazdığımız kodların tamamı şu şekilde olmalı. Eğer eksik olan bir kod varsa o kod ile ilgili kısım çalışmayacaktır.

Başarılar :)

Not: Bu oyunu rahatlıkla yapabiliyorsanız, topun zamanla hızlanmasını sağlayabilirsiniz. Bunun dışında skor bilgisini ekrana yazdırabilirsiniz.

Not: Kodları doğru yazdınız fakat oyunda hatalar var ise kukla merkezlerini belirlememiş olabilirsiniz. Nasıl yapacağınızı öğrenmek için "Kukla Çiziminde Merkez Belirleme" isimli yazıyı okuyabilirsiniz.

9 yorum:

  1. Harikasınız Erkan Hocam. Ben de derslerim de Scratch kullanmaya başlayacağım. Örneklerinizi ilgiyle takip ediyorum. :)

    YanıtlaSil
  2. bu yazdıklarınızın hepsini yazmamız gerekiyor abi

    YanıtlaSil
  3. bende olmadı abi hep kenara gelıyo oyun duruyo

    YanıtlaSil
    Yanıtlar
    1. "Kenara geldiysen sek" kodunu doğru yerde kullanmıyor olabilirsiniz. Yazdığınız kodları gözden geçiriniz.

      Sil
    2. Benzer sıkıntıların çözümü için "Kukla Çiziminde Merkez Belirleme" isimli yazıyı inceleyebilirsiniz.

      Sil