Dokümanlar · ← Blog yazıları

Öğretmenler için

Scratch elma toplama oyunu nasıl yapılır? Adım adım kodlar ve hazır proje dosyası

Probot Studio

Kısa cevap: Scratch'te elma toplama oyunu iki kukla ve iki değişkenle yapılır. Sepet, "sürekli tekrarla" içinde sağ ve sol ok tuşlarıyla hareket eder. Elma, rastgele bir yerden düşmeye başlar. Sepete değerse "puan" bir artar, yere düşerse "kaçan" bir artar. İki durumda da elma tekrar yukarıdan düşer. Üç elma kaçınca oyun biter ve puan ekranda yazar. Aşağıdaki kodlar ve indirilebilir proje dosyası Scratch'in kendi motorunda denendi.

Bu oyun, labirent oyunundan sonra iyi bir ikinci proje. Labirentte öğrenci koordinatı, döngüyü ve koşulu görmüştü. Elma toplamada bunlara değişken ve rastgele sayı ekleniyor. İkisi de ilk kez burada gerçek bir işe yarıyor: puan tutmak ve elmanın her seferinde başka yerden düşmesi.

Başlamadan önce

1. Kuklaları ve dekoru hazırlayın

Scratch sahnesi: açık mavi gökyüzü, altta yeşil çimen şeridi, ortada kırmızı bir elma, altta kahverengi bir sepet

Sağ alttaki Bir Kukla Seç düğmesinden kütüphaneyi açın ve Yiyecek kategorisinden iki kukla ekleyin: elma için Apple, sepet için Bowl. Kütüphanedeki kukla adları İngilizce geliyor. Kukla bilgisindeki İsim kutusundan adlarını Elma ve Sepet yapın. Bu küçük adım önemli. Elmanın koduna yazacağınız "değiyor mu?" bloğunun menüsünde kuklalar bu adlarla görünecek.

Dekor için Bir Dekor Seç ile kütüphaneden bir gökyüzü seçebilir ya da sahneyi seçip Dekorlar sekmesinde kendiniz çizebilirsiniz. Örnekte açık mavi bir gökyüzü ve altta yeşil bir çimen şeridi var.

Scratch sahnesi 480 x 360 boyutunda. Yatayda x -240 ile 240, dikeyde y -180 ile 180 arasında. Sepet altta (y: -150), elma üstte (y: 170) başlayacak. Ortadan aşağısı eksi, yukarısı artı.

2. Değişkenleri oluşturun

Değişkenler bölümünde Bir Değişken Oluştur düğmesine basın. Açılan Yeni Değişken penceresinde adı puan yazın ve Tüm kuklalar için seçeneği seçili olsun. Scratch bu pencereyi her açılışta bu seçenekle getirir. Aynı şekilde kaçan adında ikinci bir değişken oluşturun.

Değişkeni öğrenciye "üstünde adı yazan bir kutu" diye anlatın. Kutunun içine bir sayı koyuyoruz, oyun boyunca bu sayıyı değiştiriyoruz. İki değişkenin yanındaki kutu işaretli kalsın. Sahnenin sol üstünde puanı ve kaçan elma sayısını gösterirler. Öğrenci kodun ne yaptığını bu sayılardan izler.

3. Sepeti ok tuşlarıyla hareket ettirin

Scratch blokları: yeşil bayrağa tıklandığında, x: 0 y: -150 konumuna git, sürekli tekrarla içinde iki eğer bloğu: sağ ok tuşuna basıldı mı ise x konumunu 8 değiştir, sol ok tuşuna basıldı mı ise x konumunu -8 değiştir

Bu kodu Sepet kuklasına yazın. Sepet yalnızca sağa sola gidiyor, bu yüzden sadece x konumu değişiyor. Sağ artı, sol eksi yön.

Labirent oyunundaki gibi burada da "tuşuna basılınca" bloğu yerine "sürekli tekrarla" içinde "tuşuna basıldı mı?" sorusu kullanılıyor. Tuş basılı tutulunca sepet kesik kesik değil, akıcı kayar. Adım 8, elma 5 adımla düştüğü için sepet elmaya yetişebiliyor. Sepet daha yavaş olursa oyun gereksiz zorlaşır.

4. Elmayı rastgele bir yerden düşürün

Scratch blokları: yeşil bayrağa tıklandığında, puan değişkenini 0 yap, kaçan değişkenini 0 yap, x: -220 ile 220 arasında rastgele bir sayı seç y: 170 konumuna git, sürekli tekrarla içinde y konumunu -5 değiştir

Bu kodu Elma kuklasına yazın. Oyun her başladığında iki değişken sıfırlanıyor. Sonra elma sahnenin üstüne, yatayda rastgele bir yere gidiyor. -220 ile 220 arası, sahnenin sol kenarından sağ kenarına kadar demek. Elma döngü içinde her seferinde 5 adım aşağı iniyor.

"rastgele bir sayı seç" bloğu Operatörler bölümünde. Onu "konumuna git" bloğundaki x kutusunun içine sürükleyin. Rastgele sayı olmazsa elma hep aynı yerden düşer, oyuncu sepeti oraya koyup bekler ve oyun bir dakikada sıkıcı olur.

Bu adımdan sonra elma bir kez düşer ve sahnenin dibinde kalır. Ders burada bitecekse döngüye şimdilik tek bir blok ekleyin: "eğer y konumu < -170 ise" içinde, elmayı tekrar yukarıya gönderen "konumuna git" bloğu. Böylece öğrenci derse sürekli düşen bir elmayla ara verir. 6. adımda bu bloğa kaçan sayacı eklenir.

5. Sepete değince puan kazansın

Scratch bloğu: eğer Sepet e değiyor mu ise puan i 1 kadar değiştir, x: -220 ile 220 arasında rastgele bir sayı seç y: 170 konumuna git

Bu bloğu elmanın "sürekli tekrarla" döngüsünün içine, "y konumunu -5 değiştir"in altına ekleyin. "e değiyor mu?" bloğu Algılama bölümünde, menüsünden Sepet'i seçin.

Puan arttıktan hemen sonra elmanın yukarı gönderilmesi şart. Bu satır olmazsa elma sepetin içinden geçerken birkaç tur boyunca sepete değmeye devam eder ve tek elma için puan birden çok kez artar. Öğrencilerin en sık düştüğü hata bu.

6. Yere düşerse kaçan sayısı artsın

Scratch bloğu: eğer y konumu küçüktür -170 ise kaçan i 1 kadar değiştir, x: -220 ile 220 arasında rastgele bir sayı seç y: 170 konumuna git

Bu bloğu da döngüye ekleyin. 4. adımın sonunda "eğer y konumu < -170 ise" bloğunu eklediyseniz yalnızca içine "kaçan i 1 kadar değiştir" koyun. "y konumu" elmanın o anki yüksekliği. Elma -170'in altına indiyse sepet onu kaçırmış demektir.

Sınır olarak -170 iyi bir değer. Daha aşağı bir sayı, örneğin -200 seçmeyin. Scratch bir kuklanın tamamen sahneden çıkmasına izin vermiyor, bir parçasını hep sahnede tutuyor. Elma o kadar aşağı inemez, kaçan sayısı hiç artmaz ve elma sahnenin dibinde takılı kalır.

7. Üç elma kaçınca oyun bitsin

Scratch bloğu: eğer kaçan = 3 ise 2 saniye boyunca Oyun bitti! Puanın: i ve puan ile birleştir de, durdur tümü

Son bloğu da döngüye ekleyin. "birleştir" bloğu yazıyla değişkeni yan yana koyuyor. "Puanın:" yazısının sonunda bir boşluk bırakın, yoksa ekranda "Puanın:12" diye bitişik görünür.

"durdur tümü" bütün kodları durdurur ve konuşma balonlarını da siler. Bu yüzden burada süresiz "de" bloğu değil, "2 saniye boyunca ... de" bloğu kullanılıyor. Balon iki saniye ekranda kalır, sonra oyun durur.

Kodun tamamı

Elma toplama oyununun elma kuklasındaki tüm kodu: bayrak, değişkenleri sıfırlama, rastgele başlangıç ve sürekli tekrarla içinde düşme, yakalama, kaçırma ve oyun sonu kontrolleri

Sepet kuklasının kodu 3. adımdaki koddur. Elmanın kodunun tamamı yukarıda.

Hazır proje dosyası: elma-toplama.sb3. Scratch'te Dosya menüsünden bilgisayardan yükleme seçeneğiyle açabilirsiniz. Bu seçeneğin Türkçe çevirisi henüz yok, menüde İngilizce "Load from your computer" yazısını görebilirsiniz. Dosyada bu yazıdaki kodun aynısı ve kendi çizdiğimiz elma, sepet ve dekor var. Biz bu dosyayı Scratch'in proje motorunda çalıştırıp iki durumu denedik. Sepet ok tuşlarıyla elmanın altına sürüldüğünde puan 14'e çıktı ve hiç elma kaçmadı. Sonra tuşlar bırakıldı ve sepet olduğu yerde kaldı. Rastgele düşen elmalardan üçü sepetin içine denk gelip puanı 17'ye çıkardı, üçü yere düştü. Ekranda "Oyun bitti! Puanın: 17" yazdı ve oyun durdu.

Öğrencilere hazır dosyayı başta vermeyin. Önce kendileri yapsın, takılan öğrenci kendi koduyla hazır dosyayı yan yana karşılaştırsın.

Sık yapılan hatalar

Belirti Olası sebep Çözüm
Ok tuşları hiçbir şey yapmıyor Bayrağa tıklanmamış ya da bloklar "yeşil bayrağa tıklandığında" bloğundan kopmuş Bayrağa tıklayın. Kopuk blokları sürükleyip bayrak bloğunun altına yapıştırın
Bayrak tıklı ama sepet ok tuşlarıyla gitmiyor Klavye bir blok kutusunda kalmış. Bir sayı yazdıktan sonra ok tuşları o kutunun içinde kalıyor Sahneye bir kez tıklayın, sonra ok tuşlarına basın
Bir elma yakalanınca puan birden çok artıyor Puan arttıktan sonra elma yukarı gönderilmemiş "puan i 1 kadar değiştir"in altına "konumuna git" bloğunu ekleyin
Elma yere düşüp orada kalıyor, kaçan artmıyor Yer sınırı çok aşağıda (örneğin -200) Sınırı -170 yapın. Scratch kuklayı tamamen sahneden çıkarmaz
Elma düşmüyor, bir yerde duruyor "y konumunu -5 değiştir" yerine "y konumunu -5 yap" seçilmiş "değiştir" bloğunu kullanın. "yap" elmayı bir kez o yüksekliğe koyar, "değiştir" her turda biraz indirir
Puan hep 1 kalıyor "puan i 1 kadar değiştir" yerine "puan değişkenini 1 yap" seçilmiş "kadar değiştir" bloğunu kullanın
Elma hep aynı yerden düşüyor x kutusuna sabit sayı yazılmış x kutusuna "rastgele bir sayı seç" bloğunu koyun
Yeni oyunda puan eski oyundan devam ediyor Bayrak bloğunun altında sıfırlama yok Oyun başında "puan değişkenini 0 yap" ve "kaçan değişkenini 0 yap" olsun
Değişkenlerde iki "puan" var, sahnedeki sayı artmıyor Değişken iki kez oluşturulmuş (biri "Puan", biri "puan" ya da biri bir kuklaya özel) Fazlasını silin, kodda kalan değişkenin seçili olduğuna bakın
Üç elma kaçınca oyun bitmiyor "kaçan = 3" bloğu döngünün dışında kalmış Oyun sonu bloğunu "sürekli tekrarla"nın içine alın
Oyun çok kolay ya da sepet elmayı hep kaçırıyor Kütüphaneden gelen kuklalar çok büyük ya da çok küçük Kukla bilgisinden Büyüklük değerini değiştirin. Sepet elmadan biraz büyük kalsın
"değiyor mu?" menüsünde Sepet yok Kukla adı hâlâ Bowl Kukla bilgisinden adı Sepet yapın ya da menüden Bowl'u seçin
Sepetin kodunda puan değişkeni görünmüyor Değişken "Sadece bu kukla için" seçilerek elmada oluşturulmuş Değişkeni silip Tüm kuklalar için seçeneğiyle yeniden oluşturun
"Oyun bitti" yazısı hiç görünmüyor "2 saniye boyunca ... de" yerine "... de" kullanılmış "durdur tümü" balonu da siler. Süreli "de" bloğunu kullanın

Hata ayıklarken sahnedeki puan ve kaçan sayılarına birlikte bakın. "Elmayı yakaladın, puan kaç arttı?" sorusu çoğu hatayı birkaç saniyede ortaya çıkarıyor.

Oyunu geliştirme fikirleri

Temel oyunu bitiren öğrenciler için zorluk sırasıyla:

  1. Fareyle oynansın. Sepetin döngüsündeki iki "eğer" yerine tek blok koyun: "x konumunu (farenin x i) yap". Sepet fareyi izler. Dokunmatik ekranlarda parmakla oynamak da kolaylaşır. Sepeti büyütürseniz y konumunu biraz yukarı alın, yoksa elma sepete değmeden yer sınırını geçebilir.
  2. Süreli oyun yapın. 30 saniye sınırı koyun: "eğer zamanlayıcı > 30 ise" bloğu oyunu bitirsin. Yeşil bayrak zamanlayıcıyı zaten sıfırlıyor. "kaçan = 3" bloğunu silerseniz oyun yalnızca süreyle biter. Bırakırsanız hangisi önce gelirse oyun onunla biter.
  3. Rekor tutun. "rekor" değişkeni ile en yüksek puanı saklayın. Oyun bittiğinde puan rekordan büyükse rekoru puan yapın. Rekoru bayrak bloğunda sıfırlamayın, yoksa her oyunda silinir. Scratch değişkenin son değerini projeyle birlikte kaydeder. Rekorun kalması için proje oyundan sonra yeniden kaydedilmeli.
  4. Çürük elma ekleyin. Kahverengi bir elma kuklası ekleyin, sepete değerse puan bir azalsın. Puan sıfırın altına inmesin diye kural "puan > 0 ise bir azalt" olsun. Öğrencilerin çoğu çürük elmayı Elma kuklasını çoğaltarak yapar ve kod da kopyalanır. Çürük elmanın kodundan değişkenleri sıfırlayan, kaçanı artıran ve oyunu bitiren blokları silin. Yoksa çürük elmayı kaçırmak da kaçan sayısını artırır ve oyunu erken bitirebilir.
  5. Elma gittikçe hızlansın. "hız" adında bir değişken oluşturun, oyun başında 5 yapın. Düşme bloğunda -5 yerine "0 - hız" kullanın ve öğrenciye "hız kadar aşağı" diye okuyun. Her beş yakalamada hızı 1 artırın. Bir sınır koyun: örnek projede sepet 8 adım gidiyor ve hız 6'yı geçince sahnenin öbür kenarına düşen elmaya yetişemiyor. Hızı artırırken sepetin adımını da büyütün ya da hıza bir üst sınır koyun.

Sınıfta nasıl kullanılır?

Ders başlamadan bilgisayarlar açık ve Scratch yüklü olsun. Laboratuvarda açılış 5-10 dakika sürebiliyor ve bu süre plandan gider.

Birinci ders (40 dk):

İkinci ders (40 dk):

Okul laboratuvarlarının çoğunda bilgisayar kapanınca masaüstü ve indirilen dosyalar silinir. İki ders arasında proje kaybolmasın diye birinci dersin sonunda Dosya menüsünden Bilgisayarına kaydet ile kaydettirin. Dosya adı öğrencinin adı olsun (örneğin elma-ayse.sb3), yeri sizin gösterdiğiniz klasör ya da bir USB bellek.

Rastgele sayıyı ilk kez görenler için küçük bir deneme işe yarar: "rastgele bir sayı seç" bloğuna tek başına birkaç kez tıklatın. Her tıklamada başka bir sayı çıktığını görmek, elmanın neden her seferinde başka yerden düştüğünü açıklar.

Sıkça sorulan sorular

Scratch elma toplama oyunu hangi sınıfa uygun? Ortaokul 5-6. sınıf için iki ders saatlik bir proje. Değişkenle ilk kez tanışan öğrenciler için uygun. Eksi sayıları okulda henüz görmemiş olmaları sorun değil, eksiyi "ters yön" diye anlatın. Daha önce labirent gibi bir hareket projesi yapmış olmaları işi kolaylaştırır.

Kütüphanede Apple ve Bowl kuklalarını bulamıyorum. Kukla seçme penceresinin üstündeki arama kutusuna "apple" ve "bowl" yazın. Başka bir meyve ya da kap da olur. Önemli olan, kod içindeki kukla adının menüde seçtiğiniz adla aynı olması.

Proje dosyası neden açılmıyor? Dosya Scratch 3 biçiminde (.sb3). Scratch'in eski 2.0 sürümünde açılmaz. Güncel Scratch sitesinde ya da Scratch uygulamasında Dosya menüsünden açın.

Öğrencilerin hesap açması gerekiyor mu? Hayır. Projeyi Bilgisayarına kaydet ile dosya olarak saklamak hesap gerektirmiyor. Hesap yalnızca projeyi Scratch sitesinde kaydetmek ve paylaşmak için gerekiyor.

Kaynaklar

Kaynaklara erişim: 8 Ekim 2026.