Klasy, obiekty, jednostki i zdarzenia
Latające ptaki
a właściwie powinno być „latające żółwie”
Wskazówka: Sprawdź co się stanie, gdy klikniesz lewym lub prawym klawiszem myszki
W programie Logomocja utwórz nowy projekt, a nastepnie zapisz go pod mało oryginalną nazwąPtaki.
Pierwszą czynnością w nowo utworzonym projekcie będzie ustawienie tła strony. W tym celu pobierz tło projektu.
Uwaga: Jeżeli jesteś w szkole w pracowni możesz je znaleźć również w folderze publicznym (dysk J:).
Kliknij na pasku menu Strona/Ładuj tło i podaj ścieżkę do pobranego pliku tła.
Każda klasa określa działania podobnych obiektów, których jednostki lub podklasy zostaną utworzone później. Klasa definiuje "wnętrze" takich samych typów obiektów, tzn. ich prywatne stany i procedury. Dzięki tym procedurom obiekty mogą reagować na instrukcje wysyłane do nich.
W szkole podstawowej odkryłeś, że klasa organizmów żywych dzieli się na podklasy: zwierząt i roślin oraz, ze klasę zwierząt można dalej dzielić na podklasy: zwierząt domowych i dzikich albo według innej zasady - na przyjazne człowiekowi i bezpieczne oraz niebezpieczne. Nauczyłeś się dzielić zwierzęta na: ssaki, ptaki, gady, płazy i owady.
Klasy i klasyfikacje pomagają nam porządkować obraz rzeczywistości, organizować świat wokół nas i skutecznie w nim działać. Tak jest również i w naszym mikroświecie - w Logomocji. Są tam już pewne zastane (mówimy pierwotne) klasy obiektów. Ale możemy tworzyć również własne klasy.
Występuje kilka predefiniowanych pierwotnych klas, które nie mogą być modyfikowane. Można jednak łatwo zdefiniować swoje własne podklasy (lub tworzyć jednostki) bazujące na pierwotnych klasach. Można także, bazując na jednostce, tworzyć nowe jednostki.
Słowo obiekt może oznaczać zarówno konkretną jednostkę jak i klasę obiektów.
Nową klasę tworzymy poleceniem nowaKlasa z trzema danymi:
nowaKlasa "nazwa_rodzica "nazwa_nowej_klasy lista_ustawień
Chcemy, aby wszystkie żółwie były wiernymi kopiami (klonami) żółwia o nazwiePtaszek- prototypu latającego ptaka. Dzięki utworzeniu nowej klasy obiektów wszystkie nowe będą miały jednakową postać, identyczny zakres i styl zakresu oraz sposób reagowania na kliknięcie. Zdefiniujmy więc nową klasę żółwi o określonych właściwościach poleceniem:
nowaKlasa "Żółw "Ptaszek [postać ptak.LGF kierunek 90 pisak pod]
Ustawienie postać w definicji klasy Ptaszek mówi, że każdy nowy żółw tej klasy (tzn. każda utworzona w przyszłości jednostka) będzie miała domyślnie postać z pliku ptak.LGF. Technicznie, klasa Ptaszek otrzyma trzy zmienne prywatne: postać z wartością Ptak, pisak z wartością pod i kierunek z wartością 90 (na wschód). Później, gdy tworzona jest jednostka klasy Ptaszek, bieżące wartości standardowych ustawień postać, kierunek i pisak zostaną określone na podstawie wartości tych zmiennych.
Chcemy również, aby po kliknięciu na stronę lewym klawiszem myszy utworzony został nowy żółw klasy Ptaszek. Kliknij w tym celu na pasku menu Strona/Edycja i ustaw własciwość zdarzenia gdyKlik:
nowy "Ptaszek [poz ( pozmyszy )]
No dobrze, zdefiniowaliśmy już tło i sposób tworzenia nowych żółwi teraz czas żeby nasze żółwie - ptaki zaczęły latać.
Zredaguj w OknieGłównym nową procedurę o nazwieStarter
.Starter
w LOGO to szczególna nazwa procedury - będzie się ładowała automatycznie w momencie uruchomienia projektu.
Polecenie pierwotneeg
powoduje, żeOkno główne(pod paskami narzędzi) będzie zawierać jedynie ekran graficzny. Ekran tekstowy nie będzie wyświetlany.co N [lista-Poleceń]
uruchamia nowy, niezależny, równoległy proces typu „bezKońca” wykonujący powtarzalnie co N milisekund daną listę poleceń.
Treść procedury:
oto starter
eg
co 20 [słuchaj wszystkie np 1]
już
Na koniec dodajmy jeszcze tylko interakcję na lewy i prawy klawisz myszki.
Naciśnięcie lewego klawisza zmienia kierunek lotu ptaka o 1800, a prawego usuwa naszego „ptaszka” z ekranu.
Kliknij w prawym oknie pamięci klasę żółwi Ptaszek dwa razy lewym klawiszem myszy i dodaj dwa zdarzenia takie jak poniżej.
Lekcja 2
Dodajmy do strony dwa przyciski:Start/Stop– nazwa nie wymaga komentarza iCzyść– usuwającego wszystkie obiekty na planszy.
Przyciski są widocznymi elementami sterującymi, zwykle mającymi swoje ustawienia. Zwykle po kliknięciu lewym przyciskiem myszy specyficznie reagują, powodując, że np. żółw idzie naprzód, albo czyszczona jest zawartość strony, albo rozpoczyna się animacja itd.
Przyciski stworzysz: naciskając ikonę Nowy przycisk na pasku narzędzi i rysując je na stronie. Dodaj zdarzenia do tych obiektów jak naponiższych rysunkach.
Ustaw szerokość i wysokość przycisków oraz ich pozycję na stronie (pozycja względem środka strony lub pazycja absolutna względem lewego, górnego rogu strony).
Warto dodać jeszcze suwak poziomy, który będzie sterował szybkością lotu ptaków i pole tekstowe, które będzie pokazywać miarę tej szybkości.
Pole tekstowe jest, wyglądającym podobnie do okna, obiektem służącym do wyświetlania tekstów na stronie lub planszy. Może po prostu wyświetlać teksty lub być w trybie edycji (wystarczy nań podwójnie kliknąć) wówczas możemy samodzielnie wpisywać do niego teksty.
Suwaki są widocznymi narzędziami używanymi do wizualizowania wartości. Kiedy tworzymy lub modyfikujemy suwak, możemy określać jego przedział możliwych wartości, bieżącą wartość, a także rozmiar, kolor tła (może być przezroczyste), kierunek (poziomy lub pionowy), radę, pozycję i zachowanie oraz inne ustawienia.
Suwaki rozpoznają różne zdarzenia, szczególnie często gdyZmieniasz i gdyPoZmianie.
pt1'ustalzawartość suw1
Określ również minimalną: 1 i maksymalną: 30 wartość na suwaku.
Zmodyfikuj procedurę Starter
tak, by była to procedura parametryczna
oto starter :speed
eg
co :speed [słuchaj wszystkie np 1]
już
Na koniec popraw jeszcze właściwość gdyWciśnięty przycisku prz1 uruchamiajęcego procedurę Starter
tak, aby uruchamiała się z z paremetrem :speed, którego wartość będzie wartością, jaka została ustawiona w obiekcie Suw1.
Lekcja 3
Uatrakcyjnijmy nasz projekt poprzez losowo pojawiające się żólwie – tym razem nie ptaki a motyle. Dodatkowo ich pozycja, kierunek będzie zupełnie przypadkowy. Nowy motyl będzie się pojawiał dokładnie co 2 sekundy.
W tym celu zdefiniujmy nową klasę żółwi Motyl, której przedstawiciele będą się pojawiać na stronie poleceniem:
Zwróć uwagę na funkcję: jld
Nazwa funkcji powstała od „jak los da”. Wynikiem jest słowo jld, które może być daną wielu poleceń (na przykład naPoz, ustalKolPis itd.) jako substytut losowej wartości. Zakres losowości, którą wyraża jld zawsze zależy od kontekstu polecenia, w którym zostało użyte.
Do klasyMotyldodaj zdarzeniegdyPrawyWciśniętyi ustaw jego wartość:
Wstaw, po poleceniu eg
, jako drugi wiersz procedury Starter
następującą linię:
Dla przycisku prz2 zmodyfikuj właściwość zdarzenia gdyWciśnięty na następującą wartość:
Zachęcam do eksperymentów związanych z tworzeniem własnych żółwi w programieEdytor postaci.
Żółwie mozna zapisywać w folderze Moje dokumenty.
Należy wtedy zmienić ścieżkę np. do postaci zmodyfikowanego pliku ptak.LGFw klasie żółwi Ptaszek jak widać poniżej.
W szkolej pracowni będzie to ścieżka |H:\Moje dokumenty|. Zwróc uwagę na pionową kreskę, która występuje w ścieżce dostępu do pliku. Kod ASCII ALT+0124.