Projekt 7 – Rakieta
1.
Usuń
kota. Wybierz tło.
2.
Dodaj
rakietę poruszaną strzałkami (jeżeli
klawisz strzałka w górę naciśnięty to zmień y o 10). Pamiętaj o
ustawieniach początkowych.
3.
Dodaj
pocisk rakiety.
· Wybierz opcję
Maluj w prawym dolnym rogu ekranu
· PAMIĘTAJ, aby środek
namalowanego duszka był w szarym kółku znajdującym się na środku pola do
rysowania. Namaluj pocisk. Zmień nazwę duszka.
· Napisz skrypt,
który po naciśnięciu zielonej flagi ukryją pocisk. Dostosuj rozmiar pocisku.
· W skryptach dla
rakiety
dodaj skrypt, który będzie klonował pocisk po naciśnięciu spacji. Przypominam,
że jeśli zamiast tego umieścimy w skryptach dla pocisku bloczek sklonuj siebie, klonować będą
się wszystkie istniejące w danej chwili klony. To sprawi, że gra będzie wolniej
chodzić i będzie dostępnych „mniej” pocisków. Może też być kłopot z innymi
klonami. Sprawdź to.
· Dodaj skrypt
rozpoczynający się od gdy zaczynam jako klon, który sprawi, że
nowy klon pocisku ustawi się tam, gdzie rakieta (pod rakietą),
pokaże się, poleci do góry, oraz zniknie (klon zostanie usunięty) gdy dotknie
krawędzi.
Ważne jest, aby klon został USUNIĘTY, a nie tylko
ukryty. W Scartchu jednocześnie może występować tylko 300 klonów.
4.
Dodaj
spadające asteroidy (narysuj je, lub wybierz coś z istniejących duszków), które
gracz będzie mógł zestrzelić. Asteroidy pojawiają się w
losowym punkcie górnej części ekranu, lecą w dół i znikają, kiedy dotkną
krawędzi ekranu lub pocisku.
· W skrypcie dla
pocisku, dodaj w pętli powtarzaj aż instrukcję
warunkową jeżeli dotyka asteroidy to czekaj .01, usuń tego
klona, w przeciwnym razie zmień y o 5. Ponieważ po wystąpieniu kolizji pocisku
z asteroidą, oba duszki znikną, klony nie mogą być usuwane zaraz po wykryciu
kolizji. W przeciwnym razie kolizję wykryje tylko ten duszek, który zniknie
jako pierwszy – sprawdź to.
· Podobnie
przekształć fragment kodu odpowiedzialny za wykrywanie kolizji asteroidy z
pociskiem.
5.
Zaprogramuj
kolizję asteroidy z rakietą.
· W skrypcie
asteroidy dodaj fragment kodu odpowiedzialny za wykrywanie kolizji asteroidy z
pociskiem. Ponieważ po dotknięciu rakiety asteroida zniknie, zamiast wykrywać
kolizję również w skryptach rakiety, asteroida po wykryciu kolizji nada komunikat rakieta. Rakieta oraz wybuch będą reagować na
komunikat, a nie na wykrytą kolizję z asteroidą.
· Zaprogramuj
wybuch. Narysuj kilka etapów wybuchu.
· Dodaj skrypt,
który po rozpoczęciu gry ukryje wybuch. Po otrzymaniu komunikatu rakieta wybuch pójdzie na miejsce rakiety i pokaże się,
kostium po kostiumie. Na koniec ukryje się. Aby móc ponownie wykorzystać ten
sam fragment kodu, gdy wybuchnie coś innego, zaprogramujemy własny bloczek.
Bloczek będzie przyjmował jeden parametr, który pozwoli nam ustawić rozmiar
wybuchu.
W grupie
instrukcji Moje bloki kliknij przycisk, Utwórz blok,
wpisz nazwę bloku, następnie kliknij przycisk Dodaj dane wejściowe, kliknij ok.
Na ekranie pojawi się nowy bloczek, który możemy teraz zdefiniować. Zmienną number or text bierzemy z czerwonego bloczku definiującego wybuch.
· Dodaj skrypt dla
rakiety, który sprawi, że po otrzymaniu komunikatu rakieta rakieta ukryje
się, poczeka 2 sekundy, pójdzie na środek dolnej części ekranu, i pokaże się. Ponieważ
w trakcie trwania gry rakieta będzie znikać, dodaj bloczek pokaż
w ustawieniach początkowych.
· Aby zapobiec
pojawieniu się rakiety w miejscu, w którym są już asteroidy, co spowodowałoby
jej ponowny wybuch, krótko przed pojawieniem się rakiety usuń wszystkie
asteroidy znajdujące się w pobliżu rakiety. Wykorzystaj do tego komunikat rakieta,
oraz bloczki
jeżeli wartość bezwzględna z pozycha x < 100 i pozycja
y < 0 to usuń tego klona.
6.
Dodaj
wrogi statek kosmiczny. Aby dwa razy nie pisać tego samego kodu, zdefiniuj nowy
bloczek, u mnie jest to pies. W definicji tego bloku ukryj wrogi statek, idź do losowej pozycji w górnej części ekranu,
czekaj losowy czas od 1 do 5 sekund, przesuń się na wierzch, pokaż się. Następnie w
pętli zawsze leć przez 2 sekundy do losowego miejsca w górnej
części ekranu.
Dodaj skrypt, który po kliknięciu zielonej
flagi ustawi odpowiedni rozmiar a następnie wywoła funkcję pies.
Kiedy pocisk wykryje kolizję z psem, nada
komunikat MartwyPies. Kiedy wrogi statek otrzyma komunikat MartwyPies,
zatrzyma inne swoje skrypty (trafiony statek musi przestać latać), poczeka
chwilę, tak, aby miał czas wybuchnąć, wywoła funkcję pies.
Ponieważ trafiony statek będzie jeszcze
chwilę stał, aby zapobiec ponownemu trafieniu go przez pocisk, ustawimy flagę na 0.
Poza tym flaga jest przez cały czas ustawiona na 1.
Pocisk może trafić we wrogi statek, tylko wtedy, gdy flaga
jest ustawiona na 1. Sprawdź co się stanie, kiedy nie
ustawimy flagi, a wrogi statek zostanie w krótkim czasie wielokrotnie trafiony.
7.
Zmień
fragment kodu w skryptach dla pocisku, tak aby po wykryciu kolizji z wrogim
statkiem wysyłał komunikat MartwyPies. Do wybuchu dodaj
skrypt, który zareaguje na komunikat MartwyPies.
8. Naucz
wrogi statek strzelać.
9. Teraz
rakieta może uciec, nawet jeśli już zacznie wybuchać. Spraw, aby w momencie
wybuchu rakiety klawisze strzałek nie działały. Możesz użyć do tego flagi.
10. Dodaj
licznik punktów oraz żyć. Obie zmienne powinny być widoczne na ekranie. Ustaw
warunek końca gry.