Scratch’te yukarıdan düşen nesneler yapmak için elma karakterini klonlayabilir, her klona farklı bir yatay konum verebilir ve klonların y konumunu zamanla azaltabilirsin. Böylece tek bir elma karakterinden üretilen kopyalar, sahnenin farklı noktalarından aşağı doğru hareket eden bir Scratch düşen nesne oyunu oluşturur.
Scratch sahnesindeki x ve y koordinatları nasıl çalışır?
Scratch sahnesinde x değeri yatay, y değeri dikey konumu belirler; üstten düşen bir nesne yüksek bir y konumundan başlatılır. Sahnenin tam ortası x: 0, y: 0 noktasıdır. Yatay eksende x değeri sola doğru azalır, sağa doğru artar. Dikey eksende y değeri aşağı doğru azalır, yukarı doğru artar. Sahnenin koordinatları genel olarak x ekseninde -240 ile 240, y ekseninde -180 ile 180 arasında gösterilir.
Bu sistemi bir haritadaki adres gibi düşünebilirsin. x değeri sokağın sağa veya sola uzaklığını, y değeri ise yukarı veya aşağı konumu gösterir. Kareli bir oyun tahtasında bir taşın bulunduğu kareyi söylemek için satır ve sütun kullanmak da benzer bir mantıktır. Scratch’te bir karakterin yerini belirtmek için bu iki sayı birlikte kullanılır.
Elmayı sahnenin üst kısmında başlatmak için y değerini 170 veya 180 gibi yüksek bir sayı yapabilirsin. Elma aşağı inerken y konumunu -5 değiştir bloğunu kullandığında y değeri azalır ve elma alt bölgeye doğru hareket eder. Elmanın her turda farklı bir yerden düşmesi için x değerini belirli bir aralıkta rastgele seçmek yeterlidir.
- x aralığını seç: Elmanın ekranın çok kenarına yapışmaması için -220 ile 220 arasında bir değer kullan.
- Üstten başlat: Elmanın y konumunu üst bölgeye, örneğin 170 civarına taşı.
- Düşme yönünü belirle: Her hareket döngüsünde y konumunu negatif bir değerle azalt.
Bu üç kontrol, elmanın nereden başlayacağını, hangi yükseklikten görüneceğini ve aşağı doğru ilerleyip ilerlemeyeceğini anlamanı sağlar.
Klonlar aynı elmadan nasıl çoğaltılır?

Klonlar, elma karakterinin çalışma sırasında oluşturulan ayrı kopyalarıdır; her kopya kendi konumunda hareket edebilir. Bunu aynı kalıptan üretilen, görünüşü aynı fakat farklı yerlerde duran elmalar gibi düşünebilirsin.
Elma karakterinde iki ayrı kod akışı bulunmalıdır. Ana karakter, yeni klonları üretir. Klon olarak başlayan kopya ise görünür hâle gelir, üst bölgeye gider ve aşağı doğru hareket eder. Elmanın ana karakterini başlangıçta gizlemek, sahnede yalnızca klonların görünmesini sağlar.
| Kodun bulunduğu yer | Görevi |
|---|---|
| Elma karakteri, Yeşil bayrağa tıklandığında | Ana elmayı gizler ve belirli aralıklarla yeni klon oluşturur. |
| Elma karakteri, Klon olarak başladığımda | Klonu üst bölgeye taşır, gösterir ve düşme hareketini başlatır. |
Elma karakterine ekleyebileceğin temel akış şöyle kurulabilir:
Yeşil bayrağa tıklandığında
gizlen
sürekli tekrarla
kendimin klonunu oluştur
1 saniye bekle
Klon olarak başladığımda
göster
x: rastgele -220 ile 220 arasında seç
y: 170 konumuna git
sürekli tekrarla
y konumunu -5 değiştir
0.05 saniye bekle
Bu akışta kendimin klonunu oluştur bloğu ana elmanın üretim kodunda bulunur. Klon olarak başladığımda bloğunun altındaki düşme kodu ise yalnızca klonun çalıştıracağı bölümdür. Elmanın ana karakterine doğrudan y konumunu -5 değiştir döngüsü ekleme. Aksi durumda gizlenmiş olsa bile ana karakter de hareket akışına katılır ve klonlarla ana elmanın görevleri birbirine karışır.
Elmaların rastgele düşmesi için bloklar nasıl sıralanır?

Elmaların düşmesi için önce klon üretim döngüsünü, ardından her klonun rastgele bir x konumuna gidip üstten başlamasını ve y değerini düzenli olarak azaltmasını sağlayan sırayı kurmalısın. Ana elma görünmez kalır, oyun boyunca yeni elma klonları üretir ve her klon kendi hareketini bağımsız biçimde sürdürür.
| Karakter | Blokların sırası | Görevi |
|---|---|---|
| Elma | Yeşil bayrak tıklanınca, gizlen, sürekli tekrarla, bekle, kendimin klonunu oluştur | Ana elmayı saklar ve belirli aralıklarla yeni klon üretir. |
| Elma klonu | Klon olarak başladığımda, göster, rastgele x konumuna git, üst y konumuna git, düşme döngüsünü çalıştır | Her klonu farklı bir yatay konumdan başlatır ve aşağı doğru hareket ettirir. |
İlk kodu Elma karakterine ekle. Ana elmanın sahnede sabit durmasını istemediğin için önce gizlen bloğunu kullan. Ardından sürekli tekrarla içine örnek olarak 1 saniye bekle ve kendimin klonunu oluştur bloklarını yerleştir. Bekleme süresini değiştirerek elmaların ne sıklıkla üretileceğini ayarlayabilirsin.
İkinci kod yine Elma karakterine eklenir, fakat klon olarak başladığımda bloğunun altına kurulmalıdır. Klon önce göster bloğuyla görünür olur, sonra x konumu rastgele seçilir ve y değeri sahnenin üst kısmına ayarlanır. Düşüş sırasında y konumu negatif bir değerle azaltılır. Böylece elma, koordinat sistemindeki aşağı yönü kullanarak sepete doğru iner.
Elma, ana üretim kodu
yeşil bayrak tıklanınca
gizlen
sürekli tekrarla
1 saniye bekle
kendimin klonunu oluştur
Elma, klon kodu
klon olarak başladığımda
göster
x'i (-220 ile 220 arasında rastgele bir sayı seç) yap
y'yi (170) yap
tekrarla ta ki <([Sepet v] değiyor mu?) veya ((y konumu) < (-170))>
y'yi (-5) değiştir
0.05 saniye bekle
eğer <[Sepet v] değiyor mu?> ise
Skor'u (1) arttır
end
bu klonu sil
bu klonu sil bloğunu düşüş döngüsünün dışına yerleştir. Çünkü klon, sepete değene ya da alt sınıra ulaşana kadar hareket etmeli; silme komutu döngünün içinde olursa elma ilk adımda kaybolabilir. Sepete değme kontrolü sırasında skor yalnızca yakalanan klon için artırılır. Oyunu çalıştırdığında elmalar farklı x konumlarından sırayla düşer. y'yi -5 değiştir ve 0.05 saniye bekle değerleri örnek tasarım tercihleridir; oyunun hızını ve oynama zorluğunu dengelemek için değiştirilebilir.
Sepet nasıl hareket eder ve skor nasıl artar?
Sepet, sağ ve sol yön tuşlarıyla x konumunu değiştirerek yatay hareket eder; bir elma klonu sepete değdiğinde skor bir artırılır. Sepetin hareket kodu Sepet karakterine, çarpışma ve skor kodu ise Elma klonunun koduna eklenmelidir.
Sepet karakterinde önce başlangıç konumunu belirle ve skoru sıfırla. Ardından sürekli tekrarla döngüsünde sağ ok tuşu basılı mı? ve sol ok tuşu basılı mı? koşullarını kontrol et. Sağ ok basılıysa x konumunu pozitif bir değerle, sol ok basılıysa negatif bir değerle değiştir.
Örnek olarak Sepet karakterine şu sırayı kurabilirsin:
Sepet
yeşil bayrak tıklanınca
x: (0) y: (-150) konumuna git
Skor'u (0) yap
sürekli tekrarla
eğer <[sağ ok v] tuşu basılı mı?> ise
x'i (10) değiştir
end
eğer <[sol ok v] tuşu basılı mı?> ise
x'i (-10) değiştir
end
Bu kodda sepet yalnızca hareket eder. Skorun rastgele artmaması için skor artırma bloğunu Sepet karakterinin sürekli döngüsüne koyma. Elma klonu sepete değdiğini algıladığında skoru bir artırmalı ve ardından kendi klonunu silmelidir. Böylece her yakalanan elma bir kez puan kazandırır.
Düşen nesne oyununda hangi hatalar görülür?
Oyunun zamanla yavaşlaması ve beklenmeyen davranışlar göstermesi çoğunlukla klonların silinmemesi, ana elma karakterinin klon kodunu çalıştırması veya üretim döngüsünde bekleme bulunmamasıyla ilişkilidir. Hatanın kaynağını bulmak için her bölümü ayrı ayrı kontrol etmek, birkaç ayarı aynı anda değiştirmekten daha kolaydır.
- Elmalar ekranda birikiyorsa: Elma karakterindeki “bu klonu sil” bloğunun, elma alt sınıra ulaştığında veya sepete değdiğinde çalıştığını kontrol et.
- Ana elma da düşüyorsa: Klonlar oluşturulduktan sonra ana elma karakterinin “gizlen” bloğuyla saklandığından emin ol. Ana karakter görünür kalırsa sahnede fazladan bir elma bulunabilir.
- Her elma aynı anda hareket etmiyorsa: Düşme kodu, yeşil bayrak bloğuna değil “klon olarak başladığımda” bloğuna bağlanmalıdır. Böylece her yeni elma kendi hareket kodunu çalıştırır.
- Oyun kısa sürede ağırlaşıyorsa: Klon oluşturan “sürekli tekrarla” döngüsünün içine küçük bir “saniye bekle” bloğu ekle. Bekleme bulunmazsa yeni klonlar çok hızlı üretilebilir.
- Oyun yeniden başlatıldığında skor eski değerini koruyorsa: Skor değişkenini “yeşil bayrak tıklandığında” bloğunun altında 0 yap ile sıfırla.
Test sırasında tek bir ayarı değiştirerek ilerle. Önce klon üretimindeki bekleme süresini değiştir ve elmaların ne sıklıkta oluştuğunu gözle. Ardından düşme hızını belirleyen hareket değerini ayarla. Son olarak sepete değildiğinde skorun bir kez arttığını ve hemen ardından klonun silindiğini kontrol et. Bu sırayla çalışmak, hangi değişikliğin oyunun davranışını etkilediğini görmeni sağlar.
Sık Sorulan Sorular
Scratch’te klon ile ana karakter arasındaki fark nedir?
Ana karakter projede bulunan özgün kukladır, klon ise oyun çalışırken bu kukladan oluşturulan ayrı bir kopyadır. Klonların davranışını başlatmak için “klon olarak başladığımda” bloğu kullanılır ve işini tamamlayan klon “bu klonu sil” bloğuyla kaldırılabilir.
Elmalar neden ekranda birikiyor ve oyun zamanla yavaşlıyor?
Elmalar ekranda birikiyorsa klonların alt sınıra veya sepete değdikten sonra silinmesi gerçekleşmiyor olabilir. Üretim döngüsünde bekleme bulunmaması da kısa sürede çok sayıda klon oluşmasına ve oyunun yavaşlamasına yol açabilir.
Sepet elmayı yakaladığı hâlde skor neden artmıyor?
Skorun artması için elmanın klon kodunda sepetle temas kontrolü bulunmalı ve temas gerçekleştiğinde skor değişkeni 1 kadar değiştir bloğuyla artırılmalıdır. Ayrıca skor değişkeninin doğru seçildiğini ve sıfırlama kodunun oyunu başlatırken yalnızca bir kez çalıştığını kontrol et.
Düşen nesnelerin hızını ve üretim sıklığını nasıl ayarlayabilirim?
Düşme hızını, klonun hareket döngüsündeki adım değerini değiştirerek ayarlayabilirsin. Üretim sıklığı için klon oluşturan döngüdeki “saniye bekle” süresini değiştir; daha uzun bekleme daha seyrek, daha kısa bekleme daha sık üretim sağlar.
Bu kontrolleri sırayla uyguladığında elma yakalama oyununun davranışını daha kolay anlayabilir ve değişiklikleri kontrollü biçimde test edebilirsin.