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

Scratch'te Değişken Nasıl Kullanılır? Skor ve Seviye Sistemi Yapımı

scratch-te-degisken-nasil-kullanilir-skor-ve-seviye-sistemi-yapimi
Bu yazıda neler var?
  1. Değişken Aslında Ne İşe Yarar?
  2. Adım 1: Değişken Oluşturma
  3. Adım 2: Başlangıç Değerlerini Sıfırlama
  4. Adım 3: Puan Artırma Mantığı
  5. Adım 4: Seviye Koşulu ve Yayın Mesajı
  6. Adım 5: Hata Kontrolü - Değişken Neden Beklenmedik Davranıyor?
  7. Beklenen Oyun Davranışı (Özet Liste)
  8. Sonraki Adım

Scratch'te değişken kullanmak için sol panelde Değişkenler kategorisine girip yeni bir değişken oluşturur, ona başlangıç değeri verir ve olaylarla (bir sprite'a tıklama, çarpışma gibi) değerini artırıp azaltırsın. Skor ve seviye sistemi de tam olarak bu mantıkla çalışır: "Puan" adında bir değişken oluşturup her doğru harekette değerini bir artırırsın, belirli bir eşiğe ulaştığında da "Seviye" değişkenini değiştirirsin.

Bu makalede bu işlemi sıfırdan, gerçek bir mini oyun akışı üzerinden adım adım göreceksin. Değişken oluşturma, oyun başında sıfırlama, puan artırma bloklarını bağlama ve seviye koşulunu kurmayı tek tek uygulayacağız.

Değişken Aslında Ne İşe Yarar?

Değişkeni kağıda not aldığın bir bilgi gibi düşünebilirsin. Oyunda skor değiştikçe bunu elle güncellemek yerine, değişken bu işi otomatik yapar: bir olay gerçekleştiğinde değeri değişir, sahnedeki kutucuk da anında yeni değeri gösterir. Scratch'te her değişkenin bir adı ve bir değeri vardır; bu değer sayı, yazı veya boş olabilir.

Bir skor/seviye sistemi kurarken aslında üç şeyi birbirine bağlıyorsun:

  • Bilginin saklandığı yer: değişkenin kendisi (Puan, Seviye gibi)
  • Değiştiği an: bir olay veya koşul (çarpışma, tıklama, süre dolması)
  • Oyuncuya gösterilme şekli: sahnedeki kutucuk veya bir "söyle" mesajı

Bu üç parça yerine oturduğunda, oyunun "canlı" hissettiren geri bildirim mekanizması ortaya çıkar.

Adım 1: Değişken Oluşturma

Sol taraftaki blok kategorilerinden Değişkenler sekmesine gir ve Değişken Oluştur butonuna bas. Açılan pencerede değişkene "Puan" adını ver ve "Tüm spritelar için" seçeneğini işaretli bırak; bu sayede değişken projedeki her sprite'tan erişilebilir olur.

Aynı adımı tekrarlayıp bu kez "Seviye" adında ikinci bir değişken oluştur. Değişkenleri oluşturduktan sonra sahnenin sol üst köşesinde iki küçük kutucuk belirir; bunlar oyuncuya anlık puan ve seviye bilgisini gösterir. İstersen kutucukların yanındaki onay kutusunu kapatıp gizleyebilirsin, ama öğrenme aşamasında görünür bırakmak değişkenlerin nasıl değiştiğini takip etmeni kolaylaştırır.

Adım 2: Başlangıç Değerlerini Sıfırlama

Bir oyun yeniden başlatıldığında Puan ve Seviye değerleri kendiliğinden başlangıç değerlerine dönmez. Bu bloklar eklenmezse yeni oyun, önceki oyunda kalmış puan ve seviyeden devam eder. Bu nedenle değişkenleri sıfırlama kodunu, oyunu başlatan Bayrak tıklandığında olay bloğunun hemen altına yerleştirmelisin.

Bayrak tıklandığında
Puan'ı (0) yap
Seviye'yi (1) yap

Burada Puan 0, Seviye ise 1 olur. Bu, yeni başlayanların en sık atladığı adımlardan biridir. Oyun çalışırken değerleri değiştirmek yeterli değildir; her yeni başlangıçta aynı temiz başlangıcı kurmak gerekir.

Adım 3: Puan Artırma Mantığı

Toplanabilir nesne olarak bir elma kuklası kullanalım. Elmanın kodu bayrakla başlamalı ve sürekli tekrarla döngüsü içinde ana karaktere dokunup dokunmadığını kontrol etmelidir:

Bayrak tıklandığında
sürekli tekrarla
  eğer ana karaktere dokunuyor ise
    Puan'ı (1) artır
    gizle
    (0.5) saniye bekle
    rastgele konuma git
    göster

Dokunma koşulu sağlandığında önce puan artar, elma gizlenir, kısa bir beklemeden sonra yeni bir konuma taşınır ve yeniden gösterilir. Gizle bloğunu unutursan karakter elmanın üzerinde kalırken koşul döngünün her tekrarında yeniden doğru olabilir. Böylece tek bir dokunuşta Puan birden fazla artabilir. Gizleme, aynı temasın tekrar tekrar sayılmasını önleyen basit bir korumadır.

Adım 4: Seviye Koşulu ve Yayın Mesajı

İlk seviye eşiğini 10 puan olarak belirleyebilirsin. Koşulu yalnızca Puan 10'a eşit olduğunda çalıştırmak yerine, Seviye ile eşik çarpımını kullanmak tekrarları önler:

Bayrak tıklandığında
sürekli tekrarla
  eğer Puan ≥ Seviye × 10 ise
    Seviye'yi (1) artır
    [seviye_atla] yayınını gönder

Böylece Puan 10 olduğunda Seviye 2 olur, sonraki eşik 20 puana taşınır. seviye_atla mesajı gönderildiğinde, bu mesajı dinleyen başka kuklalar kendi kodlarını çalıştırabilir. Arka planı temsil eden bir kuklaya şu tepkiyi ekleyebilirsin:

seviye_atla mesajını aldığımda
sonraki kostüm
"Seviye atladın!" de (2) saniye

Scratch'in güncel Türkçe blok çevirisinde bu görünüm bloğu sonraki kostüm adıyla yer alır. Yayın mesajı, puan kuklası ile arka plan kuklasını tek bir uzun kod dizisine bağlamadan, aynı olayda bağımsız ve senkronize biçimde tepki vermelerini sağlar.

Adım 5: Hata Kontrolü - Değişken Neden Beklenmedik Davranıyor?

Skor sistemi çalışırken ortaya çıkan sorunlar çoğunlukla değişkenin yanlış yerde değiştirilmesinden veya aynı temasın döngü boyunca tekrar tekrar algılanmasından kaynaklanır. Şu üç kontrol, sorunun kaynağını bulmayı kolaylaştırır:

  1. Puan sürekli sıfırlanıyorsa: Puan'ı 0 yap bloğu yalnızca yeşil bayrak tıklanınca bölümünün başlangıcında bulunmalıdır. Bu blok sürekli tekrarla içine girerse her döngüde yeniden çalışır ve alınan puan silinir. Sıfırlama bloklarını döngünün dışına taşı.
  2. Bir dokunuşta Puan birden fazla artıyorsa: Nesneye dokunan karakter, döngünün birkaç turu boyunca teması sürdürebilir. Puan artırmadan sonra nesneyi gizlen, kısa süre bekle ve ardından göster bloklarını kullan. Böylece aynı temasın art arda sayılması önlenebilir.
  3. Seviye hiç değişmiyorsa: Koşulda Puan = 10 kullanmak yerine Puan > 9 kontrolünü tercih et. Puan bir temas sırasında birden fazla artarsa 10 değerini atlayabilir. Eşik aşıldığında seviye değişir ve mesaj gönderilir.
eğer <<(Puan) > (9)> ve <(Seviye) = (1)>> ise
  (Seviye)'yi (2) yap
  [Seviye 2] haberini sal

Buradaki ek Seviye = 1 kontrolü, koşul döngü içinde tekrar çalışsa bile aynı mesajın sürekli gönderilmesini önlemeye yardımcı olur.

Beklenen Oyun Davranışı (Özet Liste)

Bloklar doğru kurulduğunda oyun akışı şu şekilde görünür:

  1. Oyun başlarken Puan 0, Seviye 1 olur.
  2. Her geçerli dokunuşta Puan tam 1 artar.
  3. Toplanan nesne kaybolur, kısa beklemenin ardından yeniden belirir.
  4. Puan 10'a ulaştığında veya bu değeri geçtiğinde Seviye 2 olur ve mesaj gösterilir.
  5. Oyun yeniden başlatıldığında Puan 0'a, Seviye 1'e ve diğer başlangıç değerlerine döner.

Beklenmeyen bir sonuç görürsen blokları tek tek tıklayarak test et. Özellikle puan artırma, gizleme, bekleme ve seviye koşulunu ayrı ayrı denemek, hangi bloğun farklı davrandığını görmeyi kolaylaştırır.

Sonraki Adım

Değişkenler yalnızca veri saklamaz; oyunun hangi kararı vereceğini de belirler. Aynı mantık can sayısı, zaman sayacı veya envanter sistemi kurarken uygulanabilir.

Yeni Scratch proje fikirleri ve liste kullanımıyla ilgili anlatımlar için Berk Akademi blogundaki ilgili yazılara göz atabilirsin. Görsel programlamaya ilgisinin hangi problem çözme ve algoritmik düşünme becerileriyle örtüştüğünü değerlendirmek isteyenler ücretsiz kariyer testini inceleyebilir. ([berkakademi.com](ücretsiz kariyer testi))

Bu proje, değişkenlerle düşünmenin ve oyun akışını adım adım kurmanın temelini gösterir.

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