If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Postać bobra

Zacznijmy od stworzenia naszej postaci, Skaczącego Bobra. Aby opisać postać Bobra, wykorzystamy programowanie obiektowe opisane w tym kursie.
Tworząc postać w grze, powinniśmy zastanowić się nad tym, jakie właściwości oraz zachowania powininna ona mieć. Dla przykładu, nasz bóbr powinien pamiętać swoją lokalizację x oraz y, a także ile patyków już zebrał. Postać ta powinna także mieć dwa zachowania: skok, dzięki któremu podnosi się w górę oraz spadanie, które będzie sprawiać, że obniży się pozycja postaci.
Oto przykład, jak możemy zaprezentować naszą postać jako obiekt:
Ten program nie sprawdza jednak zbyt dobrze różnych zachowań - nie jest animowany, więc możemy naszą postać oglądać tylko w jednym stanie. Dodajmy funkcję rysowania(draw), aby nasz bóbr mógł robić różne rzeczy na podstawie interakcji użytkownika. W tej grze chcemy, aby bóbr skakał za każdym razem, kiedy użytkownik naciśnie spację. Można to zaimplementować w łatwy sposób:
draw = function() {
    background(255, 255, 255);
    if (keyIsPressed && key.code === 32) {
        beaver.hop();
    } else {
        beaver.fall();
    }
    beaver.draw();
};
To całkiem wydajny kod, ale gdybyśmy go uruchomili, musielibyśmy ciągle klikać spację tak aby nasz bóbr nie wypadł poza ekran widziany przez użytkownika. Powinniśmy ograniczyć wartość współrzędnej y do rozsądnej liczby, tak aby bóbr był zawsze na ekranie. Normalną praktyką jest utrzymanie postaci wewnątrz "świata gry." Aby tego dokonać możemy użyć funkcji constrain z odpowiednimi argumentami mix, max wewnątrz funkcji draw:
 this.y = constrain(this.y, 0, height-50);
A oto nasz program, zawierający bobra skaczącego na podstawie poleceń z klawiatury. Pobaw się nim chwilę!

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.