İçeriğe geç

Menü

Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Scratch'te Labirent Oyunu Nasıl Yapılır?

scratchte-labirent-oyunu-nasil-yapilir
Bu yazıda neler var?
  1. 1. Labirent dekorunu, duvar rengini ve hedefi hazırla
  2. 2. Oyuncuyu sıfırla ve sürekli çalışan döngüyü kur
  3. 3. Sağ ve sol yön tuşlarıyla yatay hareketi ekle
  4. 4. Yukarı ve aşağı hareketi ekle ve hareketi doğrula
  5. 5. Renge değiyor mu? ile duvar çarpışmasını geri al
  6. 6. Hedefe değince sonraki dekoru aç ve oyunu tamamla

Scratch'te labirent oyunu nasıl yapılır? Önce yolları açık, duvarları tek renkte olan bir dekor çizersin ve oyuncu ile hedefi ayrı kuklalar olarak yerleştirirsin. Ardından oyuncuyu yön tuşlarıyla hareket ettirir, “Renge değiyor mu?” kontrolünde duvara temas edilen son hareketi geri alır, hedefe temas edince sonraki dekoru açıp başlangıç konumunu yenilersin.

Temel sürüm altı numaralı adımda kurulacak. Her adımı küçük bir testle tamamlamak, hareket, çarpışma ve hedef ya da seviye kontrolünü ayrı ayrı doğrulamanı sağlar.

1. Labirent dekorunu, duvar rengini ve hedefi hazırla

Önce dekor düzenleyicisinde girişten çıkışa giden açık koridorları çiz. Duvarların tamamı için tek ve düz bir mavi seç; oyuncu kuklasının kostümünde ve hedef kuklasında mavi kullanmaman iyi olur. Oyuncu ile hedefi ayrı kuklalar olarak ekle ve hedefi açık bir koridorun sonuna yerleştir.

Öğe örnek değer kontrol
Dekor Açık koridorları olan labirent Girişten hedefe giden bir yol var
Duvar rengi Mavi Tüm duvarlar aynı düz renkte
Oyuncu boyutu %30 Oyuncu en dar koridora sığıyor
Başlangıç konumu x: -210, y: 140 Kukla açık alanda duruyor
Hedef konumu x: 210, y: -140 Hedefe açık koridorla ulaşılabiliyor

Tablodaki değerler örnek ayarlardır. Açık koridorun genişliğine, oyuncu kuklasının biçimine ve hedefin yerleşimine göre bu değerleri değiştirebilirsin. Hedef kuklasını örnek olarak x: 210, y: -140 konumuna taşı.

Oyuncu kuklasını seçip başlangıç bloklarını şu sırayla yerleştir:

yeşil bayrak tıklandığında
boyutu %30 yap
x: -210 y: 140 konumuna git

Bu sıra, yeşil bayrağa her bastığında oyuncunun boyutunu ve başlangıç konumunu yeniden ayarlar.

Beklenen davranış ve mini test

Yeşil bayrağa bastığında oyuncu açık koridorda, hedef ise ulaşılabilir bir noktada görünmeli. Mini test için oyuncuyu fareyle başka bir yere sürükle ve yeşil bayrağa yeniden bas. Oyuncu x: -210, y: 140 konumuna dönüyorsa dekor ve başlangıç ayarları doğru çalışıyor demektir.

Başlangıçta duvara gömülme varsa x/y değerini açık alana taşı ve kuklanın yüzde 30 boyutuyla koridora sığıp sığmadığını kontrol et. Oyuncu ileride duvarı aşıyorsa hareket adımını küçültmeyi ve her hareketin ardından çarpışma kontrolünü çalıştırmayı dene; bütün duvarların aynı mavi tonda çizildiğini de doğrula.

Renk eşleşmiyorsa “mavi rengine değiyor mu?” bloğundaki renk kutusunu doğrudan duvardan seç. Gözle benzer görünen başka bir mavi, renk kontrolünün beklediğin gibi çalışmasını bozabilir. Hedefte tetiklenme olmuyorsa hedefin dekorun içine çizilmediğini, ayrı kukla olarak görünür ve ulaşılabilir olduğunu kontrol et.

Projeyi üç bağımsız aşama olarak test et: hareket 3. ve 4. adımlarda, çarpışma 5. adımda, hedef veya seviye kontrolü 6. adımda. Hareketin başarı ölçütü oyuncunun yön tuşlarıyla beklenen yönde ilerlemesi, çarpışmanın başarı ölçütü duvara değince son hareketin geri alınması, hedef kontrolünün başarı ölçütü ise hedefe değince sonraki dekorun açılıp yeni başlangıç konumuna geçilmesidir.

2. Oyuncuyu sıfırla ve sürekli çalışan döngüyü kur

2. Oyuncuyu sıfırla ve sürekli çalışan döngüyü kur

Birinci adımdaki başlangıç bloklarının altına şimdi sürekli tekrarla bloğunu ekle. Blokların tam sırası şöyledir:

yeşil bayrak tıklandığında
boyutu %30 yap
x: -210 y: 140 konumuna git
sürekli tekrarla

Döngünün içini şimdilik boş bırak. Sonraki adımlarda yön tuşları, çarpışma ve hedef kontrolleri aynı döngünün içine yerleştirilecek. İçine eklenen bloklar, döngü çalıştığı sürece tekrar tekrar yürütülür.

Beklenen davranış, mini test ve başarı ölçütü

Bu aşamada bir tuşa basılmadığında oyuncu hareket etmemeli; çünkü döngünün içinde henüz hareket komutu yok. Yeşil bayrağa basınca oyuncunun boyutu yüzde 30'a, konumu da x: -210, y: 140 değerlerine dönmeli.

Mini test için oyuncuyu başka bir yere sürükle, bayrağa bas ve açık koridorda başladığını kontrol et. Kukla başlangıçta duvara gömülürse başlangıç koordinatını açık alana taşı; ayrıca kukla boyutunun koridora sığdığını yeniden kontrol et.

Başarı ölçütü, projeyi her çalıştırdığında güvenli ve tekrarlanabilir bir başlangıç oluşmasıdır. Bu ölçüt sağlanmadan hareket bloklarını döngünün içine ekleme.

3. Sağ ve sol yön tuşlarıyla yatay hareketi ekle

Oyuncunun sağa ve sola gitmesi için ikinci adımda oluşturduğun tek sürekli tekrarla döngüsünün içine iki ayrı eğer bloğu ekle. Bu adımda yalnızca x konumu değişecek, oyuncunun y konumu sabit kalacak.

Blok sırası

Oyuncu kuklasında iki koşulu aynı seviyede, aşağıdaki sırayla yerleştir. İkinci eğer bloğunu ilkinin içine sürükleme.

sürekli tekrarla
  eğer <[sağ ok] tuşu basılı (mı?)> ise
    x'i (4) arttır
  eğer <[sol ok] tuşu basılı (mı?)> ise
    x'i (-4) arttır

[sağ ok] tuşu basılı (mı?) koşulu doğru olduğunda x'i (4) arttır bloğu oyuncuyu sağa taşır. Sol ok için kullanılan negatif değer oyuncuyu sola götürür. İki koşul da aynı sürekli tekrarla döngüsünde kontrol edildiği için tuş basılı tutulduğu sürece hareket devam eder.

Beklenen davranış

Sağ veya sol ok tuşuna basılı tuttuğunda yalnızca yatay konum değişmelidir. Tuşu bıraktığında koşullar doğru olmadığı için oyuncu hareket etmemelidir. Çarpışma kontrolü henüz eklenmediğinden bu ara testte oyuncu duvarın içinden geçebilir. Bu, tamamlanmış labirentin davranışı değildir; şu anda yalnızca yatay hareketi sınarsın.

Mini test

  1. Yeşil bayrağa tıkla ve oyuncunun başlangıç konumuna döndüğünü kontrol et.
  2. Açık bir koridorda sağ ok tuşunu basılı tut. Oyuncu sağa ilerlemeli, tuşu bırakınca durmalıdır.
  3. Aynı koridorda sol ok tuşunu dene. Oyuncu sola ilerlemelidir.
  4. Hiçbir tuşa basmadan bekle. Oyuncu yerinde kalmalıdır.

Sağ, sol ve tuşsuz denemeler beklenen sonucu veriyorsa yatay hareket alt testi tamamlanır. Dört yönlü hareketin başarı ölçütü bir sonraki adımda kontrol edilecektir.

4. Yukarı ve aşağı hareketi ekle ve hareketi doğrula

4. Yukarı ve aşağı hareketi ekle ve hareketi doğrula

Dikey hareket için yatay hareket bloklarının hemen altına iki ayrı koşul daha ekle. Dört yönün sırası sağ, sol, yukarı, aşağı olmalı ve bütün bloklar aynı sürekli tekrarla döngüsünün içinde bulunmalıdır.

Blok sırası

sürekli tekrarla
  eğer <[sağ ok] tuşu basılı (mı?)> ise
    x'i (4) arttır
  eğer <[sol ok] tuşu basılı (mı?)> ise
    x'i (-4) arttır
  eğer <[yukarı ok] tuşu basılı (mı?)> ise
    y'yi (4) arttır
  eğer <[aşağı ok] tuşu basılı (mı?)> ise
    y'yi (-4) arttır

Yukarı ok için y'yi (4) arttır, aşağı ok için y'yi (-4) arttır kullanılır. Böylece sağ ve sol tuşları x konumunu, yukarı ve aşağı tuşları y konumunu değiştirir. Her koşul ayrı olduğu için bir yönün kodu diğer yönün içine karışmaz.

Beklenen davranış

Dört ok tuşu da yalnızca kendisine ait eksende hareket oluşturmalıdır. Tuşu bıraktığında ilgili koşul çalışmaz ve oyuncu durur. Bu aşamada duvar çarpışması henüz eklenmediği için açık yolda hareketi doğrulamak yeterlidir.

Mini test

  1. Yeşil bayrağa tıklayıp oyuncuyu başlangıç konumuna sıfırla.
  2. Açık bir koridorda sağ, sol, yukarı ve aşağı ok tuşlarını tek tek dene.
  3. Yukarı okla oyuncunun yukarı, aşağı okla aşağı ilerlediğini kontrol et. Bu iki yön ters çalışıyorsa y değişimlerinin işaretlerini düzelt: yukarı için (4), aşağı için (-4).
  4. Her tuşu bıraktığında oyuncunun durduğunu yeniden kontrol et.

Bu adımın bağımsız başarı ölçütü, dört tuşun beklenen eksende tutarlı hareket vermesi ve oyuncunun açık yolda ilerleyebilmesidir. Duvara çarpınca durma ya da geri dönme davranışı bu ölçüte henüz dahil değildir.

5. Renge değiyor mu? ile duvar çarpışmasını geri al

Duvar çarpışmasını çözmek için her yön tuşunda önce oyuncuyu 4 birim hareket ettir, hemen ardından duvar rengine değip değmediğini kontrol et ve temas varsa aynı eksende 4 birim geri al. Bu dört dalı mevcut sürekli tekrarla döngüsünün içine ekle. Türkçe editörde renk bloğu, seçtiğin renge göre mavi rengine değiyor mu? şeklinde görünür. Renk kutusuna tıklayıp damlalıkla dekorun düz duvar rengini seç. Tüm duvarları aynı mavi tonuyla çiz, oyuncu ve Hedef kuklasında bu tonu kullanma.

Önce hareket edip hemen sonra kontrol etmelisin. Kontrolü hareketten önce yaparsan henüz yapılmamış adımı sınarsın. Çarpışmada aynı eksende ters hareket etmek de oyuncunun başka bir yöne kaymadan son adımını geri almasını sağlar.

Sağa hareket:

eğer <sağ ok tuşuna basıldı mı?> ise
  x konumunu 4 değiştir
  eğer <mavi rengine değiyor mu?> ise
    x konumunu -4 değiştir

Sola hareket:

eğer <sol ok tuşuna basıldı mı?> ise
  x konumunu -4 değiştir
  eğer <mavi rengine değiyor mu?> ise
    x konumunu 4 değiştir

Yukarı hareket:

eğer <yukarı ok tuşuna basıldı mı?> ise
  y konumunu 4 değiştir
  eğer <mavi rengine değiyor mu?> ise
    y konumunu -4 değiştir

Aşağı hareket:

eğer <aşağı ok tuşuna basıldı mı?> ise
  y konumunu -4 değiştir
  eğer <mavi rengine değiyor mu?> ise
    y konumunu 4 değiştir

Beklenen davranış ve mini test: Oyuncu açık koridorlarda ilerlemeli, duvara değdiğinde yalnızca son adımı geri almalı ve duvarın içinde kalmamalı. Duvara sağdan, soldan, yukarıdan ve aşağıdan yavaşça yaklaş. Aynı denemeyi bir köşede de yap ve açık koridorun kapanmadığını kontrol et. Bu aşamanın başarı ölçütü, dört yönde de çarpışmanın aynı eksende geri alınmasıdır.

Kısa teşhis: Oyuncu başlangıçta duvara gömülüyse kuklayı koridorun ortasına taşı, boyutunu koridor genişliğine uygun yap ve güvenli başlangıç koordinatını yeniden seç, bu örnekte x: -210 y: 140. Duvarı aşıyorsa renk koşulunun hareket bloğunun hemen altında olduğuna bak ve hareket ile geri alma değerlerini eşleştir. Renk eşleşmiyorsa rengi düz duvar yüzeyinden yeniden seç; gerekirse 4 ve -4 değerlerini birlikte küçült.

6. Hedefe değince sonraki dekoru aç ve oyunu tamamla

Temel sürümde ikinci dekoru tamamlanma ekranı olarak hazırla. Hedef kuklasını görünür bırakıp x: 210 y: -140 konumuna yerleştir. Dört hareket ve çarpışma dalından sonra, aynı sürekli tekrarla döngüsünün içinde Hedef kuklasına temas kontrolü yap. Türkçe bloklarda sonraki sahne için sonraki dekor, bütün komutları durdurmak için durdur bloğunun menüsündeki tümü seçeneği kullanılır.

yeşil bayrağa tıklandığında
  Labirent dekoruna geç
  x: -210 y: 140 konumuna git
  sürekli tekrarla
    eğer <sağ ok tuşuna basıldı mı?> ise
      x konumunu 4 değiştir
      eğer <mavi rengine değiyor mu?> ise
        x konumunu -4 değiştir
    eğer <sol ok tuşuna basıldı mı?> ise
      x konumunu -4 değiştir
      eğer <mavi rengine değiyor mu?> ise
        x konumunu 4 değiştir
    eğer <yukarı ok tuşuna basıldı mı?> ise
      y konumunu 4 değiştir
      eğer <mavi rengine değiyor mu?> ise
        y konumunu -4 değiştir
    eğer <aşağı ok tuşuna basıldı mı?> ise
      y konumunu -4 değiştir
      eğer <mavi rengine değiyor mu?> ise
        y konumunu 4 değiştir
    eğer <Hedef e değiyor mu?> ise
      sonraki dekor
      x: -210 y: 140 konumuna git
      durdur [tümü]

İkinci dekoru yeni bir labirent yaparsan o dekor için hedef konumunu ve duvar rengi seçimini ayrıca ayarla. Bu temel sürümde ikinci dekor tamamlanma ekranıdır.

Beklenen davranış ve mini test: Oyuncu Hedef kuklasına gerçekten değdiğinde dekor değişmeli ve oyuncu yenilenen başlangıç konumuna taşınmalıdır. Hedefe yalnızca yaklaşmak geçiş başlatmamalıdır. Tüm yolu tamamlayıp Hedef'in üzerine gel, dekor değişimini ve x: -210 y: 140 konumunu kontrol et.

Tetiklenmiyorsa: Koşulun sürekli döngünün içinde ve dört hareket dalından sonra olduğunu, kukla menüsünde doğru Hedef'in seçildiğini, Hedef'in görünür ve temas edilebilir olduğunu kontrol et. Oyun başlar başlamaz tamamlanıyorsa başlangıç koordinatı ile Hedef'in konumunu birbirinden ayır.

Son kontrol listesi:

  • Dört yönde hareket ve aynı eksende geri alma çalışıyor.
  • Duvar rengine temas edilince son hareket geri alınıyor.
  • Hedefe temas edilince dekor değişiyor ve başlangıç konumu yenileniyor.

Bu üç kontrol tamamlandığında labirent oyununun temel akışı, hareketten çarpışma kontrolüne ve hedefte tamamlanmaya kadar çalışır.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara