dla programistów | |
_A |
Rysunek 4. Schemat komunikacji sieciowej w funkcji GameLoop
to niestety przegraliśmy i do przeciwnika zostanie przesłany komunikat o jego wygranej.
Omówienie naszej gry zakończymy sposobem jej uruchomienia. Do poprawnego działania potrzebne są pliki z danymi o wyglądzie określonych kafli. Pliki znajdują się w katalogu data. Katalog ten musi znajdować się w tym samym katalogu, w którym obecny jest plik wykonywalny naszej gry. Pparametry potrzebne do gry, takie jak adres IP i numer portu, podajemy podczas wywołania naszego programu. Dla przykładu, gdy chcemy uruchomić grę w trybie serwera, wydajemy następujące polecenie:
./statki srv 44444
Pierwszy parametr (srv) oznacza, że program ma działać w trybie serwera, a drugi to numer portu, na którym będzie pracował nasz serwer (pamiętajmy, że porty o numerze poniżej 1000 wymagają uprawnień roota). Po tej komendzie program przejdzie do trybu, w którym rozstawiamy naszą flotę, a po zakończeniu tej czynności, zacznie nasłuchiwać na zgłoszenie klienta. Program klienta uruchamiamy w następujący sposób:
./statki clc 66.123.53.23 44444
Pierwszy parametr (clę) oznacza oczywiście, że program ma funkcjonować w roli klienta. Drugi parametr to numer IP (może to być także symboliczna nazwa) maszyny, na której uruchomiono serwer. Trzeci parametr to naturalnie numer portu. Po rozstawieniu floty, program spróbuje się połączyć z serwerem, a jeśli nie dojdzie do połączenia (np. serwer nie został jeszcze uruchomiony), pojawi się komunikat, aby nacisnąć spację - program powtórzy próbę połączenia.
W taki oto sposób napisaliśmy sieciową wersję „Gry w statki”. Gdy chcemy ją uruchomić, warto skorzystać ze skryptów znajdujących się na płycie CD. Cały kod wbrew pozorom nie jest skomplikowany, więc zachęcam do jego modyfikacji i wprowadzania nowych możliwości do gry. &
• Strona biblioteki SDL: http://www. libsdl. org/
• Dokumentacja do biblioteki SDL_net: http://jcatki. no-ip. org/SDL_net/
• Strona domowa biblioteki FreeType wykorzystywanej przez SDL_Ttf:
http://www. freetype. org/
64
grudzień 2003