close
13595366674_8db04a695f_o

To już ostatnia część serii “Tworzenie gry przeglądarkowej”. Napiszemy bardzo prosty ranking, w którym gracze zostaną posortowani według liczby punktów. Zaczynajmy 🙂

Pierwszą rzeczą jaką zrobimy będzie całkowite wyczyszczenie wszystkich tabel. W dalszej części zmienimy nieco szyfrowanie haseł. Musimy to zrobić ponieważ hasła, które są w tym momencie szyfrowane algorytmem md5 nie będą później działać. Prostym sposobem na opróżnienie tabel jest zaznaczenie ich i wybranie opcji Opróżnij.

oproznij tabele

Po kliknięciu na Opróżnij potwierdzamy opróżnienie tabel.

Przejdźmy teraz do klasy ModuleLoader i uzupełnijmy treść strony Ranking. Zdecydowałem wykorzystać w tym celu metodę loadUserList, którą wykorzystywaliśmy już w trakcie tworzenia strony Walka. Musimy ją trochę zmodyfikować (nie chcemy wyświetlać przycisków Zaatakuj). Jeśli chcesz to możesz to zrobić tworząc osobną metodę.

Najpierw modyfikujemy metodę loadUserList:

Do metody dodałem dwa nowe parametry. Jest to $button, który przyjmuje wartości true (jeśli wyświetlamy przycisk) lub false (jeśli go nie wyświetlamy) oraz $rank który odpowiada za wyświetlanie pozycji na liście.

Aby wszystko działało jak wcześniej musimy na chwilę wrócić do case walka i dodać brakujące parametry.

Jest to jedyna linia, którą zmieniamy. Dodajemy możliwość wyświetlania przycisku i wyłączamy numerację. Wszystko będzie działało jak dawniej.

Teraz możemy przejść do case ranking i dodać kod odpowiedzialny za wyświetlenie rankingu.

Ten case jest bardzo podobny do poprzedniego. Różni się zapytaniem do bazy (które od razu sortuje wyniki), brakiem buttona oraz numeracją. Korzystamy z wcześniej już zdefiniowanych stylów. W pliku style.css nadpiszmy jedną regułę:

To wszystko, ranking będzie już działał.

Zajmiemy się teraz zmianą algorytmy szyfrującego, o którym wspominałem na początku. W tym celu przejdźmy do klasy UserManager i zmodyfikujmy metodę CreateUser. Zmodyfikujemy tylko pierwsze zapytanie:

Zamiast funkcji md5 używamy tutaj password_hash. To jedyna zmiana w tej metodzie, którą musimy przeprowadzić.

W tym miejscu warto się zastanowić czy nasza tabela users nadal jest przystosowana do przechowywania danych użytkownika. Algorytm md5 generuje 128 bitowy ciąg (32 znaki). Do tej długości ograniczyliśmy pole password w tabeli users. Funkcja password_hash generuje zawsze ciąg o długości 60 znaków. Musimy zatem wprowadzić drobną poprawkę w ustawieniach pola password.

W widoku tabeli wybierz opcję Zmień, która znajduje się w kolumnie Działanie. Następnie zmień ustawienia:

ustawienia hasla

Ta drobna zmiana wystarczy by hasła były zapisywane poprawnie. Nadal jednak podczas logowania sprawdzane jest hasło jakby było zakodowane w md5. Aby to zmienić wróćmy do metody isExist aby zmienić weryfikację użytkownika:

Po pierwsze – zmieniamy zapytanie do bazy. Teraz wybieramy tylko rekord, w którym występuje podana nazwa użytkownika. Jeśli rekord zostanie znaleziony to przy pomocy funkcji password_verify weryfikujemy podane hasło. Funkcja zwróci true jeśli hasło będzie się zgadzało. W tym przypadku zwracamy tablicę. W przeciwnym wypadku zwracamy false.

W tym momencie wszystko będzie już działało.

Zbliżamy się już do końca tego poradnika. Jeśli dobrnąłeś/aś do tego momentu – gratuluję.

W ciągu dwóch miesięcy napisaliśmy kompletną grę przeglądarkową. Jest prosta, ale napisaliśmy ją od zera. Zachęcam Cię abyś przy pomocy zdobytej wiedzy napisał kolejną grę lub rozbudował tą. Będzie to świetna okazja do utrwalenia wiedzy.

Mam nadzieję, że poradnik czytało Ci się tak dobrze jak mi się go pisało.

Do zobaczenia w kolejnych wpisach! 🙂

Przykład możesz zobaczyć tutaj.

Paczkę możesz pobrać tutaj.

Tags : javascriptjqueryphptworzenie gry przeglądarkowej
  • dervil

    W twoim kursie gry jest

    class MainPage {

    private $active_page;

    public function __construct($ACTIVE_PAGE) {

    $this->active_page = $ACTIVE_PAGE;

    switch($this->active_page) {

    case ‘home’:

    require_once $this->active_page.”.library.php”;

    break;

    } } }

    i ustawiasz każdą stronę tak jak tą home

    a jak wyciągnąć/pobrać zmienne jeżeli chciałbym przesyłać zmienne metodą GET w linku

    np: http://strona.pl/home?zmienna1=100&zmienna200=2&zmienna3=300

    normalnie byłoby

    $zmienna1 = $_GET[‘zmienna1’];

    $zmienna2 = $_GET[‘zmienna2’];

    $zmienna3 = $_GET[‘zmienna3’];

    ale gdy są klasy to wyskakuje błąd bo jest to

    $mp = new MainPage($_GET[‘page’]);
    no i w pliku .htcacces $1

  • dervil

    świetne, ale przydałaby się weryfikacja formularza rejestracyjnego
    pozdrawiam 😉

  • Krzysiek

    Dzięki za serie!