|
| 1 | +--- |
| 2 | +title: Balony |
| 3 | +level: Scratch + |
| 4 | +language: pl-PL |
| 5 | +stylesheet: scratch |
| 6 | +embeds: "*.png" |
| 7 | +materials: ["Zasoby Lidera Klubu/*"] |
| 8 | +... |
| 9 | + |
| 10 | +# Wprowadzenie { .intro } |
| 11 | + |
| 12 | +Za chwilę stworzysz grę w przebijanie balonów! |
| 13 | + |
| 14 | +<div class="scratch-preview"> |
| 15 | + <iframe allowtransparency="true" width="485" height="402" src="http://scratch.mit.edu/projects/embed/26745384/?autostart=false" frameborder="0"></iframe> |
| 16 | + <img src="balloons-final.png"> |
| 17 | +</div> |
| 18 | + |
| 19 | +# Krok 1: Animowanie balona { .activity } |
| 20 | + |
| 21 | +## Zadania do wykonania { .check } |
| 22 | + |
| 23 | ++ Stwórz nowy projekt Scratch, usuń duszka-kota, aby Twój projekt był pusty. Edytor Scratch jest dostępny online pod adresem <a href="http://jumpto.cc/scratch-new">jumpto.cc/scratch-new</a>. |
| 24 | + |
| 25 | ++ Dodaj nowego duszka-balona oraz odpowiednie tło. |
| 26 | + |
| 27 | +  |
| 28 | + |
| 29 | ++ Dodaj następujący kod dla duszka, dzięki któremu będzie on latał po scenie i odbijał się od jej brzegów: |
| 30 | + |
| 31 | + ```blocks |
| 32 | + kiedy kliknięto zieloną flagę |
| 33 | + idź do x:(0) y:(0) |
| 34 | + ustaw kierunek na (45 v) |
| 35 | + zawsze |
| 36 | + przesuń o (1) kroków |
| 37 | + jeżeli na brzegu, odbij się |
| 38 | + koniec |
| 39 | + ``` |
| 40 | + |
| 41 | ++ Przetestuj swojego duszka. Czy nie porusza się za wolno? Zmień nieco liczby w Twoim kodzie, aby go przyspieszyć. |
| 42 | + |
| 43 | ++ Czy zauważyłeś, że balon obraca się w locie po zmianie kierunkuk? |
| 44 | + |
| 45 | +  |
| 46 | + |
| 47 | + Balony nie poruszają się w ten sposób! Poprawmy to, kliknij na duszka, następnie na niebieską ikonkę `i` {.blockmotion}. |
| 48 | + |
| 49 | +  |
| 50 | + |
| 51 | + W sekcji 'styl obrotu', kliknij na kropkę, aby zapobiec obrotom balona. |
| 52 | + |
| 53 | +  |
| 54 | + |
| 55 | ++ Przetestuj swój program ponownie aby sprawdzić, czy problem został rozwiązany. |
| 56 | + |
| 57 | +## Zapisz swój projekt { .save } |
| 58 | + |
| 59 | +# Krok 2: Losowe balony { .activity } |
| 60 | + |
| 61 | +## Zadania do wykonania { .check } |
| 62 | + |
| 63 | ++ Obecnie Twoj balon będzie zawsze startował w tej samej pozycji i poruszał się tą samą ściezką. Kliknij na zieloną flagę kilka razy, a przekonasz się, że gra przebiega zawsze w ten sam sposób. |
| 64 | + |
| 65 | ++ Zamiast używać tych samych wartości dla pozycji startowych `x` i `y`, pozwólmy Scratchowi wybrać losowe liczby. Zmień kod duszka-balona, tak aby wyglądał w ten sposób: |
| 66 | + |
| 67 | + ```blocks |
| 68 | + kiedy kliknięto zieloną flagę |
| 69 | + idź do x:(losuj od (-150) do (150)) y:(losuj od (-150) do (150)) |
| 70 | + ustaw kierunek na (45 v) |
| 71 | + zawsze |
| 72 | + przesuń o (1) kroków |
| 73 | + jeżeli na brzegu, odbij się |
| 74 | + koniec |
| 75 | + ``` |
| 76 | + |
| 77 | ++ Jeśli klikniesz na zieloną flagę kilka razy, powinieneś zauważyć, że balon startuje z różnych miejsc. |
| 78 | + |
| 79 | ++ Możesz także użyć losowych liczb aby zmienić kolor balona: |
| 80 | + |
| 81 | + ```blocks |
| 82 | + zmień efekt [kolor v] o (losuj od (0) do (200)) |
| 83 | + ``` |
| 84 | + |
| 85 | +  |
| 86 | + |
| 87 | + Co się stanie, jeśli umieścisz kod na początku programu? Czy zadzieje się tak samo, jeżeli umieścisz kod wewnątrz pętli `zawsze` {.blockcontrol}? Które rozwiązanie wolisz? |
| 88 | + |
| 89 | +## Zapisz swój projekt { .save } |
| 90 | + |
| 91 | +## Wyzwanie: Więcej losowości {.challenge} |
| 92 | +Czy potrafisz sprawić, aby Twój balon rozpoczynał lot w losowo wybranym kierunku (pomiędzy -90 a 180 stopni)? |
| 93 | + |
| 94 | +## Zapisz swój projekt { .save } |
| 95 | + |
| 96 | +# Krok 3: Przebijanie balonów { .activity } |
| 97 | + |
| 98 | +Pozwólmy graczom przebijać balony! |
| 99 | + |
| 100 | +## Zadania do wykonania { .check } |
| 101 | + |
| 102 | ++ Kliknij na duszka-balona, przejdź do zakładki "Kostium". Możesz usunąć wszystkie inne kostiumy, zostaw tylko pierwszy z nich. Dodaj nowy kostium klikając na "Narysuj nowy kostium" i utwórz kostium o nazwie 'rozerwany'. |
| 103 | + |
| 104 | +  |
| 105 | + |
| 106 | ++ Upewnij się, że balon zmienia kostium na domyślny, kiedy gra się rozpoczyna. Twój kod powinien wyglądać w ten sposób: |
| 107 | + |
| 108 | + ```blocks |
| 109 | + kiedy kliknięto zieloną flagę |
| 110 | + zmień kostium na [balloon1-a v] |
| 111 | + ustaw kierunek na (losuj od (-90) do (180)) |
| 112 | + idź do x:(losuj od (-150) do (150)) y:(losuj od (-150) do (150)) |
| 113 | + zmień efekt [kolor v] o (losuj od (0) do (200)) |
| 114 | + zawsze |
| 115 | + przesuń o (1) kroków |
| 116 | + jeżeli na brzegu, odbij się |
| 117 | + koniec |
| 118 | + ``` |
| 119 | + |
| 120 | ++ Aby pozwolić graczom przebć balon, dodaj ten kod: |
| 121 | + |
| 122 | + ```blocks |
| 123 | + kiedy duszek kliknięty |
| 124 | + zmień kostium na [rozerwany v] |
| 125 | + zagraj dźwięk [pop v] |
| 126 | + ``` |
| 127 | + |
| 128 | ++ Przetestuj swój projekt. Czy potrafisz przebić balon? Czy działa to tak, jak tego oczekiwałeś? Będziesz musiał poprawić kod, aby po kliknięciu na balon, wyświetlił się kostium 'rozerwany', a następnie, po krótkiej chwili, balon zniknął. Możesz to zrobić zmieniając blok `kiedy duszek kliknięty` {.blockcontrol} w taki sposób: |
| 129 | + |
| 130 | + ```blocks |
| 131 | + kiedy duszek kliknięty |
| 132 | + zmień kostium na [burst v] |
| 133 | + zagraj dźwięk [pop v] |
| 134 | + czekaj (0.3) s |
| 135 | + ukryj |
| 136 | + ``` |
| 137 | + |
| 138 | ++ Teraz, kiedy już usuwasz balon, gdy został kliknięty, musisz dodać także blok `pokaż` {.blocklooks} na początku kodu `kiedy kliknięto zieloną flagę` {.blockevents}. |
| 139 | + |
| 140 | ++ Spróbuj przebić balon ponownie żeby sprawdzić, czy wszystko działa jak należy. Jeśli ciężko Ci przebić balon nie przesuwając go po scenie, spróbuj zagrać w trybie pełnoekranowym. Aby go włączyć, kliknij na przycisk: |
| 141 | + |
| 142 | +  |
| 143 | + |
| 144 | +## Zapisz swój projekt { .save } |
| 145 | + |
| 146 | +# Krok 4: Dodawanie punktacji { .activity .new-page } |
| 147 | + |
| 148 | +Dodajmy punktację, aby uczynić grę bardziej emocjonującą. |
| 149 | + |
| 150 | +## Zadania do wykonania { .check } |
| 151 | + |
| 152 | ++ Będziemy potrzebowali czegoś do trzymania punktacji gracza. _Zmienna_ to dobre miejsce do trzymania danych, które mogą się zmienić, takich jak punktacja. |
| 153 | + |
| 154 | + Aby utworzyć zmienną, kliknij na zakładkę 'Skrypty' i wybierz `Dane` {.blockdata}, a nastepnie kliknij na 'Utwórz zmienną'. |
| 155 | + |
| 156 | +  |
| 157 | + |
| 158 | + Wpisz 'punkty' jako nazwę zmiennej, upewnij się, że jest dostępna dla wszystkich duszków i kliknij 'OK'. Teraz pojawi się wiele nowych bloków, dzięki którym będziesz mógł użyć swojej zmiennej `punkty` {.blockdata}. |
| 159 | + |
| 160 | +  |
| 161 | + |
| 162 | + Powinieneś także zobaczyć punkty w lewym górnym rogu sceny. |
| 163 | + |
| 164 | +  |
| 165 | + |
| 166 | ++ Kiedy nowa gra się zacznie (po kliknięciu na flagę), powinieneś ustawić `punkty` na 0. Dodaj taki kod na górę skryptu duszka-balona po bloku `kiedy kliknięto zieloną flagę` {.blockevents}: |
| 167 | + |
| 168 | + ```blocks |
| 169 | + ustaw [punkty v] na [0] |
| 170 | + ``` |
| 171 | + |
| 172 | ++ Musisz dodać 1 punkt zawsze, kiedy balon zostanie przebity: |
| 173 | + |
| 174 | + ```blocks |
| 175 | + kiedy duszek kliknięty |
| 176 | + zmień kostium na [rozerwany v] |
| 177 | + zagraj dźwięk [pop v] |
| 178 | + czekaj (0.3) s |
| 179 | + zmień [punkty v] o (1) |
| 180 | + ukryj |
| 181 | + ``` |
| 182 | + |
| 183 | ++ Uruchom swój program ponownie i kliknij na balon. Czy punkty uległy zmianie? |
| 184 | + |
| 185 | +## Zapisz swój projekt { .save } |
| 186 | + |
| 187 | +# Krok 5: Więcej balonów { .activity } |
| 188 | + |
| 189 | +Przebijanie jednego balona to nie jest zbyt zajmująca gra, dodajmy więcej balonów! |
| 190 | + |
| 191 | +Prostym sposobem na dodanie wielu balonóœ jest kliknięciu prawym przyciskiem na duszku-balonie i wybranie opcji 'Duplikuj'. Takie podejście jest OK, jeśli chcesz dodać tylko kilka nowych duszków, ale co zrobić jeśli ma ich być 20 lub 100? Czy chciałbyś duplikować duszka tyle razy? |
| 192 | + |
| 193 | +## Zadania do wykonania { .check } |
| 194 | + |
| 195 | ++ Dużo lepszym sposobem jest _klonowanie_ duszka-balona. |
| 196 | + |
| 197 | + Przeciągnij część skryptu znajdującego się po `kiedy kliknięto zieloną flagę` {.blockevents} (za wyjątkiem kodu dotyczącego punktacji) kawałek dalej (nie usuwaj go), a zamiast niego dodaj kod tworzący 20 klonów duszka. |
| 198 | + |
| 199 | + Teraz możesz spowrotem przyczepić kod, który przed chwilą odciągnąłeś na bok do bloku `kiedy zaczynam jako klon` {.blockevents}. Powinieneś także zastąpić `ukryj` {.blocklooks} w skrypcie odpowiedzialnym za ukrywanie balona po kliknięciu blokiem `usuń tego klona` {.blockcontrol}. |
| 200 | + |
| 201 | + Kod dla balona powinien wyglądać obecnie następująco: |
| 202 | + |
| 203 | +  |
| 204 | + |
| 205 | ++ Przetestuj swój projekt! Teraz, kiedy zielona flaga zostanie kliknięta, główny duszek zostanie ukryty i sklonowany 20 razy. Kiedy każdy z klonów zostanie dodany do gry, będzie latał po scenie losowo, tak jak robił to duszek-balon. Sprawdź, czy możesz przebić 20 balonów. |
| 206 | + |
| 207 | +## Zapisz swój projekt { .save } |
| 208 | + |
| 209 | +# Krok 6: Dodawanie sekundnika { .activity } |
| 210 | + |
| 211 | +Możesz sprawić, że gra będzie bardziej interesująca poprzez dodanie ograniczenia 10 sekund na przebicie wszystkich balonów. |
| 212 | + |
| 213 | +## Zadania do wykonania { .check } |
| 214 | + |
| 215 | ++ Możesz użyć kolejnej zmiennej do trzymania informacji o czasie, jaki pozostał graczom. Kliknij na scenę a następnie utwórz nową zmienną o nazwie 'czas': |
| 216 | + |
| 217 | +  |
| 218 | + |
| 219 | ++ Oto jak powinien działać sekundnik: |
| 220 | + |
| 221 | + + Czas powinien być ustawiony początkowo na 10 sekund. |
| 222 | + + Co sekundę powinieneś odejmować 1 od pozostałego czasu. |
| 223 | + + Gra powinna się zatrzymać, kiedy sekundnik osiągnie 0. |
| 224 | + |
| 225 | + Oto kod, który Ci to umożliwi, musisz go dodać do _sceny_: |
| 226 | + |
| 227 | + ```blocks |
| 228 | + kiedy kliknięto zieloną flagę |
| 229 | + ustaw [czas v] na [10] |
| 230 | + powtarzaj aż <(czas) = [0]> |
| 231 | + czekaj (1) s |
| 232 | + zmień [czas v] o (-1) |
| 233 | + koniec |
| 234 | + zatrzymaj [wszystko v] |
| 235 | + ``` |
| 236 | + |
| 237 | + Aby dodać blok `powtarzaj aż`{.blockcontrol}`czas`{.blockdata}`= 0`{.blockoperators}, musisz najpierw przenieś zielony blok `=` {.blockoperators} na blok `powtarzaj aż` {.blockcontrol}: |
| 238 | + |
| 239 | +  |
| 240 | + |
| 241 | + Wtedy będziesz mógł przesunąć zmienną `czas`{.blockdata} na blok `=` {.blockoperators}: |
| 242 | + |
| 243 | +  |
| 244 | + |
| 245 | ++ Przenieś zmienną `czas` w prawy górny róg sceny. Możesz także kliknąć na zmienną prawym przyciskiem myszy i wybrać sposób wyświetlania `duży odczyt`, aby zmienić sposób, w jaki zmienna będzie prezentowana: |
| 246 | + |
| 247 | +  |
| 248 | + |
| 249 | ++ Przetestuj swoją grę. Jak wiele punktów potrafisz zdobyć? Jeśli gra jest zbyt łatwa, możesz: |
| 250 | + |
| 251 | + + Dać graczom mniej czasu. |
| 252 | + + Dodać więcej balonów. |
| 253 | + + Sprawić, aby balony poruszały się szybciej. |
| 254 | + + Zmniejszyć balony. |
| 255 | + |
| 256 | + Przetestuj grę kilka razy, aż uznasz, że poziom trudności jest odpowiedni. |
| 257 | + |
| 258 | +## Zapisz swój projekt { .save } |
| 259 | + |
| 260 | +## Wyzwanie: Więcej obiektów {.challenge} |
| 261 | +Czy potrafisz dodać inne obiekty do gry? Możesz dodać obiekty, dzięki którym zdobędziesz wiele punktów, jak pączki, albo takie, jak nietoperze, przez które będziesz tracił punkty po kliknięciu. |
| 262 | + |
| 263 | + |
| 264 | + |
| 265 | +Będziesz musiał przemyśleć kilka kwestii dotyczących obiektów, które dodasz. Np.: |
| 266 | + |
| 267 | ++ Ile powinno ich być? |
| 268 | ++ Jak duże powinny być? Jak powinny się poruszać? |
| 269 | ++ Ile punktów stracisz lub zyskasz po kliknięciu na nowe obiekty? |
| 270 | ++ Czy będa poruszać się szybciej czy wolniej niż balony? |
| 271 | ++ Jak będą wyglądać i brzmieć, kiedy zostaną kliknięte? |
| 272 | + |
| 273 | +Jeśli potrzebujesz pomocy przy dodawaniu kolejnych obiektów, możesz skorzystać z wcześniejszych instrukcji. |
| 274 | + |
| 275 | +## Zapisz swój projekt { .save } |
0 commit comments