Kodu, na pomoc!

Z Zasoby CoderDojo
Skocz do: nawigacji, wyszukiwania

Cele

Celem dzisiejszych zajęć będzie stworzenie świata, w którym zachodzą podstawowe interakcje między obiektami. Wykorzystamy narzędzia, jakie poznaliśmy na poprzednich zajęciach, ale oprócz tego poznamy również nowe funkcje, które głębiej wprowadzą nas w świat Kodu.

Założenia

Stworzymy świat, w którym spaceruje znany już nam Rover. Na jego drodze stoi jednak kamień, który zagradza Roverowi drogę do wody. Tylko Kodu może mu pomóc i usunąć przeszkodę. A więc do dzieła!

Kodu, na pomoc !

Zadanie 1. Rozpoczęcie pracy i przygotowanie mapy pod scenariusz.

Po uruchomieniu Kodu Game Lab, w menu głównym wybieramy New World. Otwarty zostanie nowy, pusty świat, musimy więc dostosować go do naszych potrzeb.

Knp 1.jpeg

Na początek użyjmy narzędzia Rysuj, dodaj lub usuń podłoże i za jego pomocą powiększmy trochę teren, którym dysponujemy, czyli dorysujmy trochę trawy. Następnie ustawmy wielkość pędzla na bardzo małą i z wykorzystaniem pędzla Liniowy kwadratowy pędzel narysujmy taką ścieżkę, jak na poniższej ilustracji:

Knp 2.jpeg

Taką ścieżkę możemy również narysować odręcznie, za pomocą zwykłego pędzla, jednak użycie pędzla liniowego jest wygodniejsze i bardziej precyzyjne, chociaż przy pierwszym użyciu może sprawić nieco trudności niektórym uczniom. Kolejnym etapem tworzenia mapy będzie dorysowanie większej powierzchni po drugiej stronie naszej ścieżki, tak jak na ilustracji obok.

Knp 3.jpeg

Kolejny krok to podniesienie terenu, by móc do naszego świata dodać wodę. Aby podnieść teren, wybieramy narzędzie Podnieś lub obniż podłoże i powiększamy jego rozmiar strzałką w prawo tak, by objąć zasięgiem narzędzia cały nasz teren. Następnie lewym przyciskiem myszy nieznacznie podnosimy podłoże, by uzyskać rezultat podobny, jak na ilustracji poniżej.

Knp 4.jpeg

Jeśli podnieśliśmy poziom terenu, teraz zróbmy miejsce, w którym możemy umieścić wodę. W tym celu jeszcze raz użyjemy narzędzia, które wykorzystaliśmy przed chwilą. Zmniejszmy rozmiar pędzla strzałką w lewo na tyle, byśmy mogli precyzyjnie obniżyć niewielki obszar podłoża, a później obniżmy je za pomocą prawego przycisku myszy. Dzięki temu w tym miejscu będziemy mogli umieścić wodę.

Knp 5.jpeg

Wybieramy więc narzędzie Dodaj, podnieś lub obniż wodę, następnie wybieramy dowolny rodzaj wody i „nalewamy” ją w stworzone wcześniej zagłębienie, tak jak na ilustracji obok.

Knp 6.jpeg

Zadanie 1 dobiegło końca. Mamy już przygotowany świat, na którym możemy zrealizować nasz scenariusz. Jeżeli wszystkie kroki wykonaliśmy poprawnie, nasz świat powinien wyglądem być zbliżonym do tego, jaki widzimy na ilustracji poniżej:

Knp 7.jpeg

Zadanie ukończone.

Zadanie 2. Umieszczenie na mapie Rovera i zaprogramowanie jego zachowania.

Mając już stworzony świat, jakiego potrzebujemy do realizacji scenariusza, umieśćmy teraz na nim Rovera i zaprogramujmy jego ruch tak, by spełniał nasze założenia. W tym celu wybieramy narzędzie Dodaj i programuj obiekty oraz klikamy lewym przyciskiem myszy gdzieś na naszej pierwszej wyspie, by umieścić tam Rovera.

Knp 8.jpeg

Przeszkoda dla Rovera Teraz, gdy Rover jest już na mapie, stwórzmy przeszkodę, która zagrodzi mu dostęp do wody. Ponownie, z aktywnym narzędziem Dodaj i programuj obiekty kliknijmy na mapę, jednak teraz gdzieś na obszarze ścieżki, bo tam ma się znaleźć przeszkoda. W menu obiektów wybierzmy Kamień, a następnie kliknijmy na Igneous.

Knp 9.jpeg

Konfiguracja ustawień przeszkody Nasz kamień jest nieco zbyt mały, by mógł stanowić skuteczną przeszkodę dla pojazdu, co więcej, Rover mógłby go przesunąć swoją siłą. Dlatego musimy zmienić parametry kamienia tak, aby ten był poważnym problemem na drodze Rovera. W tym celu kliknijmy teraz prawym przyciskiem myszy na kamień i wybierzmy Zmień ustawienia.

Knp 10.jpeg

Ustawienia obiektu W Kodu Game Lab każdy obiekt ma szereg ustawień, które możemy swobodnie dopasować do naszych potrzeb. W tym przypadku musimy zmienić ustawienia kamienia, by nie dało się go zbyt łatwo usunąć.

Knp 11.jpeg

1. Pierwszą opcją, jaką ustawimy dla kamienia to Nieruchomy. Oznacza to, że kamień będzie niemożliwy do przesunięcia. Klikamy na symbol włącznika tego elementu lewym przyciskiem myszy - zaświeci się on na zielono, co oznacza, że opcja jest aktywna.

Knp 12.jpeg

2. Nieco niżej znajdziemy opcję Max ilość punktów trafień. Domyślnie wartość ta wynosi 50. Ustawmy ją jednak na 400, używając do tego strzałki w prawo. Do zniszczenia kamienia potrzebny będzie nam Kodu, a ten domyślnie zadaje obrażenia o sile 50 punktów. Dlatego zmieniany tę wartość dla kamienia - żeby nie zniszczy go jednym pociskiem.

Knp 13.jpeg

3. Jesteśmy już coraz bliżej finału. Następnym krokiem będzie ustawienie wielkości kamienia. W tym celu musimy zjechać trochę niżej i odszukać pozycję Skala wielkości. Wielkość kamienia ustawmy na maksymalną możliwą, czyli 4,0.

Knp 14.jpeg

4. Ostatnim krokiem jest włączenie opcji Pokaż punkty trafień. Dzięki temu, podczas niszczenia kamienia będziemy widzieli, ile jeszcze punktów trafień posiada kamień i ile jeszcze pocisków trzeba wystrzelić, by go zniszczyć. Po dokonaniu wszystkim zmian wciskamy klawisz Escape, by wyłączyć menu ustawień i wrócić do świata.

Knp 15.jpeg

Teraz nasz kamień powinien zagradzać już Roverowi całą drogę oraz nad kamieniem powinien być widoczny pasek punktów trafień - w tym momencie pełen w 100%. Następnym etapem będzie wreszcie zaprogramowanie pojazdu tak, by zachowywał się zgodnie z założonym scenariuszem, czyli jeździł i wzywał pomocy, a kiedy spotka się z Kodu, poprosił go o udzielenie pomocy. Programowanie Rovera Tym razem zaprogramowanie obiektu będzie trochę bardziej złożone, niż na poprzednich zajęciach, co więcej, łącznie musimy wykonać aż trzy instrukcje. To jednak wcale nie oznacza, że będzie trudniej - musimy tylko poświęcić nieco więcej czasu na ten element. Na koniec, nasze instrukcje powinny wyglądać w następujący sposób:

Knp 16.jpeg

Czyli:

  1. Po upływie czasu [warunek] o długości 5 sekund [parametr warunku] Rover wypowie zadaną kwestię [zdarzenie].
  2. Zawsze [warunek] Rover będzie się poruszał [zdarzenie] losowo (funkcja spacer) [parametr zdarzenia] i powoli [parametr zdarzenia].
  3. Kiedy oczy [warunek] Kodu [parametr warunku] znajdą się blisko [parametr warunku] Rover wypowie zadaną kwestię [zdarzenie] jeden raz [parametr zdarzenia].

Instrukcja 1

Na początek wykonajmy konfigurację funkcji nr 1, czyli wołanie Rovera o pomoc. Wybierzmy z menu głównego narzędzie Dodaj i programuj obiekty, a następnie kliknijmy na Rovera prawym klawiszem myszy i wybierzmy pozycję Program. Następnie kliknijmy lewym przyciskiem myszy na żółty plus w elemencie Kiedy i w otwartym menu wybierzmy Więcej, a następnie Czas (ilustracja obok). Kolejny raz klikamy na żółty plus w elemencie Kiedy. Tym razem zobaczymy parametry dotyczące czasu - wybierzmy opcję 5 sekund.

Knp 17.jpeg

Jeśli mamy już ustawiony warunek Kiedy, przejdźmy do ustawień zdarzenia. W tym celu klikamy lewym przyciskiem myszy na plus w polu Wykonaj:

Knp 18.jpeg

Naszym zdarzeniem będzie wołanie Rovera o pomoc. Dlatego w menu wybieramy Akcje, a następnie, w kolejnym menu Powiedz. W ten sposób otworzymy okno ustawień mowy.

Knp 19.jpeg

W oknie ustawień mowy wpiszmy kwestie, które widzimy na poniższej ilustracji. Ważne, by każda z nich była napisana w nowym wierszu. Następnie wybierzmy opcję Dymek, wskaż linię losowo i Zapisz, by zapisać wprowadzone ustawienia. Funkcja 1 jest już ukończona. Wciśnijmy teraz element Graj grę w menu głównym, by sprawdzić, jak zachowuje się Rover.

Knp 20.jpeg

Kodu Game Lab niestety nie umożliwia wpisywania polskich znaków.

Instrukcja 2

Jak widzimy, Rover woła o pomoc, ale się nie porusza. Sprawmy więc, by spacerował po swoim świecie. Kliknijmy więc na niego prawym przyciskiem myszy i raz jeszcze wybierzmy Program. Teraz ustawmy warunek Kiedy ustawiając Zawsze - ten warunek poznaliśmy już na poprzednich zajęciach (dla przypomnienia: Więcej, a następnie Zawsze). Dalej klikamy lewym przyciskiem myszy na plus w polu Wykonaj i wybieramy Ruch.

Knp 21.jpeg

Kolejny krok to ustawienie parametrów ruchu. W tym celu klikamy lewym przyciskiem myszy na żółty plus w polu wykonaj, obok zdarzenia Ruch. Z menu wybieramy Spacer.

Knp 22.jpeg

Jeszcze raz klikamy na żółty plus i w menu wybieramy parametr dla spaceru - Powoli.

Knp 23.jpeg

Teraz klawiszem Escape powróćmy do świata i wybierzmy Graj grę, żeby ponownie skontrolować, jak zachowuje się Rover. Zauważymy, że pomimo, iż ustawiliśmy, że spacer ma się odbywać powoli, to Rover i tak porusza się dość szybko. W kolejnym kroku zmniejszymy jego prędkość w ustawieniach, tak jak zmienialiśmy ustawienia naszego kamienia. Chcąc zmienić prędkość poruszania się Rovera, musimy znowu uaktywnić narzędzie Dodaj i programuj obiekty, a następnie kliknąć prawym klawiszem na Rovera i wybrać pozycję Zmień ustawienia. W ustawieniach dokonamy zmian w dwóch opcjach: Współczynnik prędkości oraz Współczynnik szybkości obracania. Obie te wartości domyślnie mają ustawiony współczynnik na 1,0. Za pomocą strzałek zmieńmy je na 0,5 (ilustracja obok).

Knp 24.jpeg

Wybierzmy teraz Graj grę. Widzimy, że Rovera spaceruje powoli po swoim świecie, co kilka sekund wołając o pomoc. Ostatnią rzeczą, jaka nam została, jest zaprogramowanie zachowania naszego pojazdu, kiedy ten spotka Kodu.

Knp 25.jpeg

Instrukcja 3

Ponownie uaktywniamy narzędzie Dodaj i programuj obiekty, klikamy prawym klawiszem na Rovera i po wybraniu Program, w funkcji nr 3 klikamy żółty plus w polu Kiedy.

Knp 26a.jpeg

Tym razem Rover będzie reagował na zbliżenie się Kodu, czyli gdy Kodu podejdzie odpowiednio blisko, Rover wykona określoną akcję. W menu wybierzmy zatem Oczy, bo to właśnie na oczy Kodu zareaguje nasz pojazd.

Knp 26b.jpeg

Kolejny krok to ustawienie parametrów dla zdarzenia Oczy. Tak więc klikamy raz jeszcze na żółty plus i z dostępnych opcji wybieramy Kodu.

Knp 27.jpeg

Funkcja nr trzy powinna teraz wyglądać tak, jak na poniżej ilustracji, ale brakuje nam tutaj jeszcze jednego elementu. Jakiego? Kiedy-Oczy-Kodu-? Wygląda na to, że brakuje jeszcze jednego parametru.

Knp 29b.jpeg

Klikamy więc ponownie na żółty plus i z dostępnego menu wybieramy Opcje, a następnie Blisko.

Knp 28.jpeg

Warunek mamy już zaprogramowany, teraz pozostało nam jeszcze stworzyć Zdarzenie. Tak więc w polu Wykonaj wybieramy Akcje, a następnie Powiedz. Ponownie zostanie otwarte okno konfiguracji mowy.

Knp 29a.jpeg

Wpiszmy w okno poniższe kwestie i wybierzmy Dymek, wskaż linię sekwencyjnie. To oznacza, że ustawione przez nas dialogi zostaną wypowiedziane kolejno, jeden po drugim. Następnie kliknijmy Zapisz.

Knp 30.jpeg

Teraz kliknijmy na żółty plus obok Powiedz i z wyświetlonego menu wybierzmy Raz. Ta funkcja sprawi, że Rover wypowie swoją kwestię tylko raz, kiedy Kodu do niego podejdzie. W innym wypadku powtarzałby swoje słowa cały czas, nawet gdyby Kodu już dawno odszedł.

Knp 31.jpeg

Zadanie ukończone.

Zadanie 3. Wysłanie Kodu na pomoc.

Ostatnim etapem naszych dzisiejszych zajęć jest umieszczenie w świecie Kodu. Dodajmy go zatem za pomocą narzędzia Dodaj i programuj obiekty oraz zaprogramujmy jego zachowanie, by Kodu miał zdolność niszczenia kamieni. Pierwszym elementem będzie sprawienie, byśmy mogli poruszać się Kodu samodzielnie. Ta funkcja powinna wyglądać następująco:

Wdk 15a.jpeg

Jako że takie same ustawienia wprowadzaliśmy na poprzednich zajęciach, warto wydać uczniom polecenie, by samodzielnie spróbowali zaprogramować ruch Kodu - to okazja do sprawdzenia, czy nabyte umiejętności zostały utrwalone. Jeżeli uczniowie będą mieli problem z tym zadaniem, należy powtórzyć i omówić ten etap raz jeszcze, korzystając z materiałów zawartych w scenariuszu 1 na stronach 6-7. Jeśli Kodu potrafi się już poruszać, nadajmy mu teraz zdolność niszczenia kamieni. Najwygodniejszy do strzelania będzie lewy przycisk myszy, zatem w polu Kiedy wybierzmy Mysz.

Knp 33.jpeg

Następnie, w kolejnym menu wybierzmy Lewy, aby zdarzenie ustawić na lewy przycisk myszy

Knp 34.jpeg

W porządku. Teraz przejdźmy do pola Wykonaj i tam kliknijmy żółty plus. W menu odszukajmy pozycję Strzał i ją wybierzmy. A zatem po kliknięciu lewego przycisku myszy nastąpi strzał, potrzebujemy jeszcze tylko parametrów tego zdarzenia.

Knp 35.jpeg

W tym momencie nasza funkcja powinna wyglądać tak, jak na ilustracji obok:

Knp 36.jpeg

Ustawmy teraz parametry strzału. Po kliknięciu na żółty plus wyświetli nam się menu z opcjami strzału, wybierzmy tutaj Pocisk.

Knp 37.jpeg

Kolejną opcją, jaką ustawimy dla pocisku będzie tor jego lotu. Do wyboru mamy dwie możliwości: Auto oraz Poziom. Auto sprawia, że pocisk będzie omijał wszystkie przeszkody w postaci nierówności terenu, natomiast Poziom to prosty ruch pocisku, więc jeśli pocisk napotka wzniesienie - uderzy w nie. Nasz scenariusz nie przewiduje jednak takich elementów, jak wzniesienia, więc nie ma znaczenia, którą opcję wybierzemy.

Knp 38.jpeg

Ostatnia opcja, jaką ustawimy, to kolor pocisków. Będziemy musieli wystrzelić łącznie 8 rakiet (jeśli ustawiliśmy punkty trafień kamienia na 400), więc możemy sprawić, by Kodu strzelał kolorowymi rakietami - rozgrywka będzie nieco ciekawsza. Klikamy więc znowu na żółty plus w polu Wykonaj, następnie wybieramy Kolory i Losowy. Gotowe!

Knp 39.jpeg

Sprawdźmy teraz, czy nasz scenariusz działa poprawnie. Kliknijmy Graj grę i podejdźmy Kodu do Rovera wzywającego pomocy. Zobaczymy, co Rover powie:

Knp 40.jpeg

Nie pozostaje nam teraz nic innego, jak tylko spełnić prośbę Rovera i zniszczyć kamień celując w niego myszką i strzelając lewym jej przyciskiem. Po kilku celnych trafieniach kamień zostaje zniszczony.

Knp 41.jpeg

Zadanie ukończone.