Uzay Savunması
Gök yüzünden gelen uzaylılara karşı dünyayı savunun...
Adım 1: Bir Uzay Gemisi Yapmak
Dünyayı savunacak bir uzay gemisi yapalım!
Etkinlik Kontrol Listesi
-
Yeni bir Scratch projesi başlat ve projenin boş kalması için kedi sprite'ı sil. Çevrimiçi Scratch editörünü jumpto.cc/scratch-new adresinde bulabilirsiniz .
-
Projenize 'yıldız' zemini ve 'Uzay gemisi' sprite ekleyin. Uzay gemisini küçültün ve ekranın altına kaydırın.
-
Sol ok tuşuna basıldığında, uzay geminizi sola taşımak için kod ekleyin. Bu blokları kullanmanız gerekecek:
when flag clicked forever if
key
left arrow
pressed?
then change x by
-4
end end
-
Sağ ok tuşuna basıldığında, uzay geminizi sağa hareket ettirmek için kod ekleyin.
-
Uzay geminizi ok tuşları ile kontrol edip edemeyeceğinizi görmek için projenizi test edin.
Projeni sakla
Adım 2: Şimşek
Uzay gemisine şimşek çakması yeteneği verelim!
Etkinlik Kontrol Listesi
-
Scratch kütüphanesinden 'Lightning' hareketli grafiğini ekleyin. Oyun başladığında, uzay gemisi lazer toplarını ateşleyene kadar yıldırım gizlenmelidir. Sprite çok daha küçük ve baş aşağı olmalı. Şimşek 'sprite için aşağıdaki kodu ekleyin.
when green flag clicked hide set size to
25
% point in direction
-90
-
Boşluk tuşuna her basıldığında yeni bir şimşek oluşturmak için aşağıdaki kodu Uzay Gemisine ekleyin.
when flag clicked forever if
key
space
pressed?
then create clone of
Lightning
end end
-
Ne zaman yeni bir klon oluşturulmuşsa, uzay gemisi ile aynı yerden başlamalı ve daha sonra kenara değene kadar sahne üzerinde hareket etmelidir. Lightning sprite'e şu kodu ekleyin:
when I start as a clone go to
Spaceship
show repeat until
touching
edge
?
change y by
10
end delete this clone
Not: Yeni klonu hala gizlendikten sonra, göstermeden önce uzay gemisine götürürüz. Bu sadece daha hoş görünüyor.
- Boşluk tuşuna basarak yıldırımınızı test edin.
Projeni sakla
Zorluk: Yıldırımın düzeltilmesi
Boşluk tuşunu basılı tutarsanız ne olur? Bunu düzeltmek için wait
{.blockcontrol} bloğunu kullanabilir misiniz?
Projeni sakla
Adım 3: Uçan Boşluk suaygırları
Uzay geminizi yok etmeye çalışan birçok uçan suaygırı ekleyelim.
Etkinlik Kontrol Listesi
-
Scratch kütüphanesindeki 'Hippo1' görüntüsünden yeni bir sprite oluşturun.
-
Dönme stilini yalnızca solda olacak şekilde ayarlayın ve oyun başladığında hareketli çizgiyi gizlemek için aşağıdaki kodu ekleyin:
when flag clicked hide
-
Sadece suaygırı sprite için,
speed
{.blockdata} adlı yeni bir değişken oluşturun.Bunu doğru yapıp yapmadığınızı bileceksiniz, çünkü değişken, yanında bulunan sprite adına sahip olacaktır:
-
Aşağıdaki kod birkaç saniyede yeni bir su aygırı yaratacaktır. Sahne Alanı , bu kodun yaşaması için iyi bir yerdir:
when flag clicked forever wait
secs create clone of
Hippo1
end
-
Her su aygırı klonu başladığında, şimşek çarpıncaya kadar sahnenin etrafında (rastgele bir hızda) hareket etmesini sağlayın. Bu kodu su aygırı hareketli grafiğine ekleyin:
when I start as a clone set
speed
to
go to x:
y:
150
show repeat until
touching
lightning
?
move
speed
steps turn right
degrees if on edge, bounce end delete this clone
-
Su aygırı kodunuzu test edin. Her birkaç saniyede bir, yeni bir su aygırı klonunun kendi hızında hareket ettiğini görün.
-
Lazer topunu test et. Bir su aygırı vursanız, yok olur mu?
-
Bir su aygırı uzay geminize dokunduğunda, uzay gemisinin patlamasını sağlamalıyız! Bunu yapmak için önce uzay geminizin 'normal' ve 'hit' olarak adlandırılan 2 kostümü olduğundan emin olun.
Uzay gemisinin 'hit' kostümü, 'Sun' görüntüsünü Scratch kütüphanesinden içeri alarak ve rengini değiştirmek için 'bir şekil rengi' aracını kullanarak yapılabilir.
-
Bu kodu uzay geminize ekleyin, böylece uçan bir suaygırıyla çarpıştığı zaman kostüm değiştirir:
when flag clicked forever switch costume to
normal
wait until
touching
Hippo1
? switch costume to
hit
broadcast
hit
wait
1
secs end
-
Yukarıdaki kodda bir 'hit' mesajı yayınladığınızı fark ettiniz mi? Bu mesajı, uzay aracına çarptığında tüm suaygırlarının kaybolması için kullanabilirsiniz.
Bu kodu hipopotama ekle:
when I receive
hit
delete this clone
-
Yeni bir oyuna başlatarak ve bir su aygırı ile çarpışarak bu kodu test edin.
Projeni sakla
Zorluk: Yaşıyor ve Puanlıyor
Oyuna {.blockdata} lives
ekleyebilir, {.blockdata} score
ve hatta highscore
{.blockdata} ekleyebilir misin? Size yardımcı olması için 'Noktaları Yakala' projesini kullanabilirsiniz.
Projeni sakla
Adım 4: Meyve Yarasaları!
Uzay geminize portakal fırlatan bir meyve yarasası yapalım.
Etkinlik Kontrol Listesi
-
Öncelikle,
forever
{.blockcontrol} aşamasının üstünde {.blockmotion}move
edecek yeni bir yarasa sprite yapın. Kodunuzu test etmeyi unutmayın. -
Eğer yarasanın kostümlerine bakarsanız, zaten 2 tane olduğunu göreceksiniz:
Yarasa kanadı hareket ederken kanatlarını çırpmak için bir
next costume
{.blocklooks} bloğunu kullanın. -
Scratch kütüphanesinden yeni bir 'Turuncu' sprite oluşturun
-
Yarasaya kod ekleyin, böylece her birkaç saniyede yeni bir turuncu klon oluşturur.
when flag clicked forever wait
secs create clone of
Orange
end
-
Turuncu sprite tıklayın ve her portakal klonunun yarasadan uzay gemisine doğru sahneyi düşürmesini sağlamak için bu kodu ekleyin:
when flag clicked hide when I start as a clone go to
Bat1
show repeat until
touching
edge
? change y by
-4
end delete this clone when I receive
hit
delete this clone
-
Uzay gemisi sprite'ınızda, bir su aygırı veya turuncuya dokunursanız, isabet almanız için kodunuzu değiştirmeniz gerekir:
wait until
touching
Hippo1
?
or
touching
Orange
?
-
Oyununu test et. Düşen bir portakal çarptığında ne olur?
Projeni sakla
Adım 5: Oyun bitti
Oyunun sonuna bir 'oyun bitti' mesajı ekleyelim.
Etkinlik Kontrol Listesi
-
Henüz yapmadıysanız, life {.blockdata} adında yeni bir değişken oluşturun. Uzay geminiz 3 hayatla başlamalı ve bir düşmanla çarpıştığı zaman hayatını kaybetmeli. Hayatınız bittiğinde oyununuz da durmalıdır. Yardıma ihtiyacınız olursa, size yardımcı olmak için 'Noktaları Yakala' projesini kullanabilirsiniz.
-
Metin aracını kullanarak 'Oyun Bitti' adlı yeni bir sprite çizin.
-
Sahnende, oyun bitmeden hemen önce {.blockevents} mesajı
game over
birgame over
yayınla.broadcast
game over
and wait
-
Mesajın oyunun sonunda gösterilmesi için bu kodu 'Game Over' sprite'ınıza ekleyin.
when flag clicked hide when I receive
game over
show
Bir
broadcast [game over] and wait
sahnenizde {.blockevents} bloğunu beklediğiniz için, oyunu bitirmeden önce 'Game Over' sprite'ın görünmesini bekleyecektir. -
Oyununu test et. Kaç puan kazanabilirsiniz? Çok kolay veya çok zorsa oyununuzu iyileştirmenin yollarını düşünebilir misiniz?
Projeni sakla
Zorluk: Oyununu geliştir
Oyunda ne gibi iyileştirmeler yapabilirsin? İşte bazı fikirler:
- Fazladan hayat kazanmak için toplayabileceğiniz sağlık paketleri ekleyin;
- Uzay geminizin kaçınması gereken yüzen kayalar ekleyin;
- Puanınız 100'e ulaştığında daha fazla düşman görünmesini sağlayın.
wait until
score
=
100
Kaynak