Chcesz nauczyć się JavaScript w ciekawy i angażujący sposób? Zapraszamy na nasz kurs, który łączy naukę podstaw tego języka z tworzeniem prostej, ale wciągającej gry! Kurs jest przede wszystkim skierowany do uczestniczek programu Girls Go IT, ale także dla każdego, kto chce w ciekawy sposób poznać podstawy JavaScript. Wymagana jest umiejętność programowania w dowolnym innym języku, abyś posiadała znajomość podstawowych struktur używanych w programowaniu.
Podczas kursu nauczysz się podstaw składni JavaScript, manipulacji DOM, a na koniec zbudujesz grę "Łapanie Jabłek" przy użyciu biblioteki PixiJS. Po ukończeniu kursu będziesz umiała:
- pisać skrypty JavaScript od podstaw,
- wykorzystywać obiektowy model dokumentu (DOM) do manipulacji stroną,
- tworzyć gry 2D z użyciem PixiJS.
Link do filmiku na YouTube.
Kurs składa się z kilku części (patrz spis treści), każda z nich jest na wydzielonym branchu wraz z utworzonym Pull Requestem. Dodatkowo, części podzielone są na zadania reprezentowane przez commity danej części kursu. W trakcji realizacji kurs, kursant powinien przechodzić przez poszczególne branche i commity, aby ostatecznie zrealizować wszystkie zadania. Kurs nie ma na celu nauki systemów wersjonowania kodu, jednak dla wygody kursantów, przedstawiamy potrzebne komendy do nawigacji po kursie:
Pierwszym krokiem jest sklonowanie repozutorium z kursem na lokalny komputer. W tym celu, należy wykonać komndę:
git clone https://github.com/Fundacja-Try-IT/kurs-javascript.git
cd motorolaPo sklonowaniu repozytorium znajdujemy się na branchu main, czyli głównym branchu repozytorium. Aby przejść do konkretnej części kursu, reprezentowanej przez oddzielny branch, należy wykonać komendę:
git checkout nazwa_branchaPo przejściu na odpowiedni branch, możemy sprawdzić listę commitów, które reprezentują zadania do wykonania w danej części kursu. W tym celu, należy wykonać komendę:
git logKażdy commit odpowiada konkretnemu zadaniu. Aby poruszać się między commitami (zadaniami) w obrębie danego brancha (części kursu), należy wykonać komendę:
git checkout id_commituZalecanym edytorem kodu do realizacji zadań w kursie jest VS Code. Można go pobrać ze strony Visual Studio Code. Wspiera wszystkie popularne systemy operacyjne (Windows, Linux, MacOS).
Aby uruchamiać pliki HTML z kodem JavaScript w przeglądarce, należy zainstalować rozszerzenie "Live Server", które umożliwia automatyczne przeładowywanie strony po zapisaniu zmian w pliku. W tym celu, należy:
- uruchomić VS Code
- przejść do zakładki Extensions i wyszukać rozszerzenie "Live Server"
- Zainstalować rozszerzenie
Pierwsza właściwa część kursu ma na celu zapoznać kursanta ze składnią języka JavaScript, podstawowymi instrukcjami oraz obsługi konsoli dewelopera JS w przeglądarce. Aby przejść do tej części kursu, należy wykonać komendę:
git checkout javascriptAby wykonywać proste skrypty JS, zalecamy korzystanie z konsoli dewelopera w przeglądarce. Aby otworzyć konsolę dewelopera w polecanej przeglądarce Chrome, można użyć klawisza F12. Taka konsola, oprócz wyświetlania komunikatów i błędów, pozwala na interaktywne uruchamianie kodu JS (aby umożliwić wklejanie kodu do konsoli, należy zaznaczyć opcję allow pasting).
Przeanalizuj zawartość strony internetowej https://www.tryit.org.pl/pl/. Zbadaj menu "O NAS" i sprawdź jak wygląda struktura tego elementu oraz pojawiającego się menu. Jakie id mają poszczególne elementy menu?
Rozwiązanie: przykładowe rozwiązanie znajduje się na branchu zadanie-domowe-1.
Mając dostęp do interaktywnej konsoli, możemy wykonać zadania z pliku main.js. Nawigujemy po kolejnych zdanaiach (commitach):
commit 7cd7df6Nauka wypisywania na ekran i tworzenia komentarzycommit 3e0432aNauka używania zmiennych i operatorówcommit 38cfa07Nauka pisania prostych funkcjicommit 8f58513Nauka używania list i obiektówcommit ade61ffPrzykład z funkcją zwracającą obiektcommit 51272c8Nauka pisania instrukcji warunkowych (if-else)commit 81fc398Nauka pisania pętli (for, while)commit 184a76dNauka tworzenia prostej klasy
Napisz funkcję, której argumentami jest imię i wiek użytkownika. Funkcja powinna zwracać obiekt z imieniem i wiekiem, a także informację o tym czy użytkownik jest dorosły oraz czy jego wiek jest liczbą parzystą. Następnie utwórz listę z 5 imionami i napisz pętlę, która przechodzi po wszystkich elementach listy. W każdej iteracji podaj imię użytkownika i wylosuj wiek. Jeśli wiek użytkownika jest parzysty, wypisz jego dane na ekran.
Podpowiedź: poniżej znajduje się funkcja, która pozwala wylosować liczbę całkowitą z zadanego przedziału:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}Rozwiązanie: przykładowe rozwiązanie znajduje się na branchu zadanie-domowe-2.
Gdzie szukać więcej informacji:
W dokumentacji JavaScript znajdź informacje o typach zmiennych, takich jak liczby, łańcuchy znaków (string), wartości logiczne (bool), null czy undefined. Zwróć uwagę na konwersję typów, która może występować automatycznie podczas porównywania zmiennych. Następnie napisz kilka instrukcji warunkowych, które pokazują różnicę między operatorem porównania (==) i ścisłego porównania (===). Porównaj liczby z łańcuchami znaków, wartości logiczne z liczbami, null z undefined, a także obiekty. W każdym przypadku użyj zarówno operatora ==, jak i ===, aby zobaczyć różnice.
Rozwiązanie: przykładowe rozwiązanie znajduje się na branchu zadanie-domowe-3.
Obiektowy Model Dokumentu (ang. Document Object Model, DOM) to reprezentacja dokumentu HTML w postaci drzewa obiektów. Pozwala na manipulację zawartością strony internetowej za pomocą języka JavaScript. Aby przejść do tej części kursu, należy wykonać komendę:
git checkout domW tej części, kursant poznaje DOM poprzez następujące zadania:
commit 4670d72Szablon stronycommit d21c68aNauka wyświetlania alertów i okienek dialogowychcommit a2bb84aNauka manipulowania elementamicommit 0ab84d5Nauka reagowania na akcje użytkownikacommit 035d1b0Nauka ustawiania opóźnień czasowych (timeouts)commit 11b6d58Nauka ustawiania interwałów
Zmień kolor pudełka na jasnozielony, jeśli liczba kliknięć jest parzysta, a w przeciwnym przypadku zmień kolor na czerwony.
Rozwiązanie: przykładowe rozwiązanie znajduje się na branchu zadanie-domowe-4.
Ostatnia część kursu to zebranie wszystkich dotychczasowych umiejętności w jednym projekcie - grze w łapanie jabłek. Aby przejść do tej części kursu, należy wykonać komendę:
git checkout czesc-4PixiJS to biblioteka JavaScript, która ułatwia tworzenie gier i animacji 2D w przeglądarce. Działa jak zestaw narzędzi, które pozwalają rysować, animować i dodawać interakcje do elementów graficznych, takich jak obrazki czy kształty. Wykorzystamy PixiJS do stworzyć gry, w której postać poruszają się po planszy, reagują na kliknięcia klawiaturą, a wszystko wygląda atrakcyjnie i działa płynnie. Wykorzystywane elementy biblioteki PixiJS będziemy tłumaczyć na bieżąco, w trakcie tworzenia gry.
Jeśli chcesz dowiedzieć się więcej o PixiJS, zapraszamy do zapoznania się z literaturą:
W tej części kursu, kursant poznaje podstawy tworzenia gier w PixiJS poprzez projekt gry w łapanie jabłek. Zadania składające się na projekt:
commit 80a16f8Materiały do budowy grycommit 62b27b1Dodanie skryptów PixiJScommit 20427d9Stworzenie aplikacji PixiJScommit 26758efDodanie pierwszego zasobu (gracz.png) i stworzenie graczacommit d407ef9Załadowanie i dodanie tłacommit 9d71622Sterowanie klawiaturącommit da20a06Spadające obiektycommit 4e4c131Aktualizacja pozycji spadających obiektówcommit aad9b86Wykrywanie kolizjicommit 2e792cfWyświetlanie wyniku i liczby żyćcommit 89c03f8Ładowanie i dodawanie dźwiękówcommit e1de4edZwiększanie trudności gry z czasem
- Zmień teksturę gracza w zależności od ruchu (twarz w lewo lub w prawo).
Podpowiedź: obiekt można odbić lustrzanie przez ustawienie ujemnej skali. - Dodaj wiatr - spraw, aby jabłka spadały krzywo (pamiętaj, że jabłka nie mogą wyjść poza ekran!)
- Dodaj restart (naciśnij spację na początku i po zakończeniu gry)
- Dodaj tablicę wyników (pokaż 3 najlepsze wyniki na ekranie końca gry)
Rozwiązanie: przykładowe rozwiązania znajdują się na branchu zadanie-domowe-5.
Gratulacje! Ukończyłaś podstawowy kurs języka JavaScript. Teraz powinieneś znać podstawy składni języka, umieć pracować z DOM, a także tworzyć proste gry w PixiJS. Jeśli masz jakieś pytania, uwagi lub sugestie, napisz do nas!