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 ifkeyleft arrowpressed?then change x by-4end 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 to25% 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 ifkeyspacepressed?then create clone ofLightningend 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 toSpaceshipshow repeat untiltouchingedge?change y by10end 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 waitsecs create clone ofHippo1end -
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 setspeedtogo to x:y:150show repeat untiltouchinglightning?movespeedsteps turn rightdegrees 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 tonormalwait untiltouchingHippo1? switch costume tohitbroadcasthitwait1secs 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 receivehitdelete 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}moveedecek 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 waitsecs create clone ofOrangeend -
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 toBat1show repeat untiltouchingedge? change y by-4end delete this clone when I receivehitdelete 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 untiltouchingHippo1?ortouchingOrange? -
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 overbirgame overyayınla.broadcastgame overand wait -
Mesajın oyunun sonunda gösterilmesi için bu kodu 'Game Over' sprite'ınıza ekleyin.
when flag clicked hide when I receivegame overshowBir
broadcast [game over] and waitsahnenizde {.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=
100Kaynak