Scratch ile Oyun Yapma: İlk Oyununuzu Adım Adım Oluşturun
Oyun oynamak harikadır; ancak kendi kurallarınızı koyduğunuz, kendi karakterlerinizi yönettiğiniz bir video oyununu **bizzat tasarlayıp kodlamak** ve arkadaşlarınıza oynatmak bambaşka bir gurur kaynağıdır! Scratch platformu, oyun geliştirme mantığını en temel yapı taşlarıyla kavramak için dünyadaki en kusursuz araçtır.
Bu uygulamalı rehberde, oyun programlamanın "Merhaba Dünya"sı kabul edilen **"Gökten Düşen Elmaları Sepetle Yakalama Oyunu"**nu adım adım sıfırdan inşa ediyoruz. Bu proje sayesinde; klavye kontrollerini, yerçekimi fiziğini, çarpışma algılamayı (collision detection), skor sistemini ve oyun bitti (Game Over) ekranını kodlamayı öğreneceksiniz.
---
1. Oyunun Senaryosu ve Kuralları
Oyunumuzun dinamikleri son derece basittir:
---
2. Karakterleri ve Sahneyi Hazırlama
Scratch editörünü açın:
1. Sahnedeki varsayılan kedi kuklasını çöp kutusu simgesine basarak silin.
2. Sağ alttaki "Kukla Seç" butonuna tıklayın:
3. Sağ alttaki "Dekor Seç" butonuna basarak açık hava temalı güzel bir arka plan (örneğin **"Blue Sky"**) seçin.
4. Sepet kuklasını farenizle sahnenin en alt ortasına (Y koordinatı yaklaşık -140 olacak şekilde) yerleştirin.
---
3. Sepet Kuklasının Kodlanması (Oyuncu Kontrolü)
Sepetimizin sadece sağa ve sola hareket etmesini istiyoruz. Bunun için iki yöntem vardır: tuş kontrolleri veya fare takibi. Biz en hassas olan sağ/sol ok tuşlarını kodlayacağız.
Sepet kuklasına tıklayın ve orta alana şu blokları dizin:
[yeşil bayrağa tıklandığında]
[x: 0 y: -140 konumuna git]
[sürekli tekrarla]
(eğer <[sağ ok v] tuşuna basıldı mı?> ise)
[x konumunu (10) değiştir]
(eğer <[sol ok v] tuşuna basıldı mı?> ise)
[x konumunu (-10) değiştir]
Bu kod sayesinde sağ oka bastığınızda sepet pozitif X yönünde, sol oka bastığınızda negatif X yönünde akıcı bir şekilde kayacaktır.
---
4. Değişkenlerin Oluşturulması (Skor ve Can)
Oyunun bir amacı olması için hafıza kutularına ihtiyacımız var:
1. Sol menüden **Değişkenler** kategorisine gelin.
2. "Bir Değişken Oluştur" butonuna basın ve adını **"Skor"** koyun.
3. Tekrar butona basıp adını **"Can"** koyduğunuz ikinci bir değişken oluşturun.
Sahnenin sol üst köşesinde Skor ve Can sayaçlarının belirdiğini göreceksiniz.
---
5. Elma Kuklasının Kodlanması (Düşme ve Çarpışma Fiziği)
Elma kuklasına tıklayın. Elmanın gökyüzünden rastgele düşmesi, sepete değdiğinde skor kazandırması ve yere düştüğünde can azaltması için şu blok mimarisini oluşturun:
[yeşil bayrağa tıklandığında]
[Skor v] değişkenini (0) yap
[Can v] değişkenini (3) yap
[sürekli tekrarla]
[y: 160 x: ((-220) ile (220) arasında rastgele bir sayı) konumuna git]
[görün]
(tekrarla <(y konumu) < (-150)> olana kadar)
[y konumunu (-7) değiştir] // Aşağıya doğru düşme hızı
(eğer <[Bowl v]'a değiyor mu?> ise)
[Chomp v sesini çal]
[Skor v] değişkenini (1) kadar değiştir
[gizlen]
(bu döngüden çık) // Elmayı yakaladık, yukarı gönder!
// Eğer elma sepete değmeden yere indiyse:
(eğer <(y konumu) < (-145)> ise)
[Can v] değişkenini (-1) kadar değiştir
[Oops v sesini çal]
(eğer <(Can) = (0)> ise)
[2 saniye boyunca "OYUN BİTTİ!" de]
[tümünü durdur]
---
6. Oyunu Zenginleştirecek 3 Geliştirme Fikri (Challenges)
Temel oyun çalıştıktan sonra oyunu çok daha heyecanlı hale getirebilirsiniz:
1. **Zehirli Elma Ekleyin:** Elma kuklasına sağ tıklayıp "Kopyasını Çıkart" deyin. Kostümler sekmesinden bu ikinci elmanın rengini yeşil veya mor yapın. Yeşil elmayı yakaladığınızda skor artsın yerine canınız 1 azalsın!
2. **Kademeli Hızlanma:** Skorunuz her 5 puana ulaştığında elmanın düşüş hızını (`y konumunu -7 değiştir` bloğunu) -9, -11 yaparak oyunu giderek zorlaştırın.
3. **Altın Elma Bonusu:** Arada sırada ortaya çıkan ve yakalandığında +5 puan veren parlayan bir yıldız veya altın elma ekleyin.
---
7. Kapsamlı Sıkça Sorulan Sorular (SSS)
Elma sepete değdiği anda bazen 2-3 puan birden veriyor, neden?
Çünkü bilgisayar çok hızlıdır; elma sepetin içinden geçerken değme koşulu peş peşe 2 kez tetiklenebilir. Çözüm, çarpışma algılandığı anda elmayı hemen `gizlen` bloğuyla gizlemek veya anında tepeye ışınlamaktır.
Sepet sahnenin dışına çıkıp kayboluyor, nasıl sınırlarım?
Sepet koduna bir kontrol ekleyerek; `eğer x konumu > 220 ise x: 220 yap` diyerek sepetin ekran kenarlarından taşmasını engelleyebilirsiniz.
---
---
8. Elma Oyununa 2. Seviye (Level 2) ve Canavar Ekleme
Temel oyunu tamamladıktan sonra projenizi gerçek bir atari salonu klasiğine dönüştürmek için şu özellikleri ekleyin:
1. **Gökten Düşen Taşlar (Engeller):** Sepetin sadece elmaları değil, gökten düşen siyah taşlardan da kaçması gerekir. Taş kuklası ekleyin; taş sepete çarptığında canınız 1 azalsın ve ekranda sarsıntı efekti oluşsun!
2. **Kademeli Arka Plan Değişimi:** Skor 10 olduğunda oyun durmasın; arka plan gece temasına dönsün, elmalar daha hızlı düşmeye başlasın ve müzik hızlansın.
3. **Yüksek Skor (High Score) Sistemi:** Scratch'in bulut değişkenlerini veya en yüksek skoru tutan bir değişken kullanarak bilgisayarda oynanan en iyi rekoru ekranda sabitleyin. Bu özellik oyuncuların oyunu tekrar tekrar oynamasını sağlar.
---
9. Oyun Programlamada Hata Ayıklama (Debugging) İpuçları
Scratch oyunlarında en sık yaşanan mantık hataları ve çözümleri:
---
---
9. Oyuna Can (Health Bar) ve Game Over Ekranı Tasarımı
Oyun dinamiklerini daha heyecanlı kılmak için oyuncuya belirli bir can hakkı tanımak ve can tükendiğinde oyunu durduran bir bitiş sahnesi eklemek gerekir:
---
Sonuç
Tebrikler! Sıfırdan değişkenleri, döngüleri, tuş kontrollerini ve çarpışma algoritmalarını barındıran gerçek bir 2D video oyunu inşa ettiniz. Bu temel oyun motoru mantığı, ileride yapacağınız uzay savaşları, platform oyunları ve labirent maceralarının yapı taşıdır. Daha fazla oyun fikri için sitemizin [Scratch Oyun Kodları](/blog/scratch-oyun-kodlari-10-eglenceli-proje) makalesini inceleyebilirsiniz!