Brat_Lehmana 8 Napisano 31 Października 2016 Udostępnij Napisano 31 Października 2016 Cześć, potrzebuje napisać w miarę prostą aplikację 2D typu "inteligentny dom". Będzie narysowany od góry plan domu i jakiś ludzik będzie sobie chodził (sterowany strzałkami z klawiatury). Przykładowo: ludzik wchodzi do garażu, zostaje uruchomiony alarm i w drugim oknie aplikacji (po przez sieć lan) pokazuje się informacja o włączeniu tego alarmu. Z racji tego, że z Javy jestem raczej zielony, to ardzo proszę o wskazania jakiejś prostej biblioteki graficznej w którym mógłbym coś takiego napisać. Dzięki! Cytuj Link to post Share on other sites
Karister 727 Napisano 31 Października 2016 Udostępnij Napisano 31 Października 2016 (edytowane) Java ma dwie biblioteki graficzne w standardzie - AWT i Swing. Służą one, jak sama nazwa wskazuje, do grafiki, więc nie wystarczą do napisania jakiegokolwiek programu od A do Z. Znacznie większym wyzwaniem będzie wspomniana komunikacja między dwoma kompami (ustalenie, czy klient ma używać pollingu, żeby odpytać serwer o update, czy odwrotnie - serwer wysyła event do klienta; obsługa sytuacji, gdy połączenie się zerwie, itp, itd.). Do tego wykrywanie kolizji, żeby ludzik nie poszedł w kosmos. Dochodzi jeszcze zgranie tego z obsługą inputa. Wyświetleniem grafiki martwiłbym się na koniec. Edytowane 31 Października 2016 przez Karister Cytuj Link to post Share on other sites
Brat_Lehmana 8 Napisano 3 Listopada 2016 Autor Udostępnij Napisano 3 Listopada 2016 Przeglądałem Internet i natknąłem się na bibliotekę "G". Czas mamy do stycznia, więc niby trochę jest, ale wolę się zabrać wcześniej. Chciałbym się już zdecydować na jakąś bibliotekę. up? Cytuj Link to post Share on other sites
Karister 727 Napisano 4 Listopada 2016 Udostępnij Napisano 4 Listopada 2016 Źle się za to zabierasz. Jeśli uważasz, że biblioteka graficzna coś ułatwi, to jej użyj. Tak, czy siak, masz tu do napisania dwa nietrywialne programy i biblioteka graficzna to tylko wierzchołek góry lodowej. Po pierwsze musisz jakoś zareprezentować stan aplikacji. Ludzik to zapewne będzie pozycja (x, y). Mapę też trzeba jakoś zapisać, bo program nie wie, co to kuchnia, a co garaż. Trzeba też jakoś wykrywać, że ludzik wszedł do pokoju. Dodatkowo wykrywanie kolizji, chyba, że ludzik ma przenikać przez ściany. Ja bym szukał tutoriali do gier platformowych 2D. Na pewno 90% się pokryje. A potem trzeba przejść do sedna prawy. Masz tu architekturę klient-serwer i musisz poszukać, jakie są opcje. Można to klepać w gołej Javie na socketach po TCP albo poszukać jakichś frameworków. Jeśli to jest prosta sytuacja, gdzie w aplikacji serwerowej jest ten domek i ludzik, a aplikacja kliencka ma jednie wyświetlać powiadomienia typu "ludzik wszedł do garażu", to jest dość prosto. Ja bym postawił kolejkę JMS pomiędzy aplikacjami, a całość spiął przy pomocy Spring Integration. Tam jest niemal za darmo obsługa czegoś takiego. Serwer wysyła event na kanał X albo Y, a klient odpowiednio reaguje na każdy z nich. A jeśli ma to być bardziej skomplikowane, tzn aplikacja serwera pozwala chodzić ludzikiem, a aplikacja kliencka w czasie rzeczywistym wyświetla ludzika na takiej samej mapie, to jest trudniej. Wtedy pokusiłbym się o polling, czyli klient co jakiś fragment czasu odpytuje serwer o pozycję ludzka i ją wyświetla. Ogólnie - tu jest masa roboty i do tego niekoniecznie prostej. 1 Cytuj Link to post Share on other sites
Brat_Lehmana 8 Napisano 4 Listopada 2016 Autor Udostępnij Napisano 4 Listopada 2016 Super, bardzo Ci dziękuję Trochę mi rozjaśniłeś sprawę! Cytuj Link to post Share on other sites
Brat_Lehmana 8 Napisano 20 Listopada 2016 Autor Udostępnij Napisano 20 Listopada 2016 Czy ma ktoś jakieś fajne materiały nt. programowania sieciowego w Javie? Mam 3 grube książki i niestety nic o tym nie jest napisane. Cytuj Link to post Share on other sites
Karister 727 Napisano 20 Listopada 2016 Udostępnij Napisano 20 Listopada 2016 Ja bym googlował za takimi hasłami jak "java tcp udp tutorial", "java client server tutorial", itp: http://www.cise.ufl.edu/~amyles/tutorials/tcpchat/ https://www.tutorialspoint.com/java/java_networking.htm Cytuj Link to post Share on other sites
fatfcuk 0 Napisano 15 Grudnia 2016 Udostępnij Napisano 15 Grudnia 2016 LWJGL albo libgdx do grafiki. Jest to wrapper openGLa Co do programowania sieciowego - co potrzebujesz? Jeśli chodzi o gry to wysyłasz po UDP jako datagrampacket , jeśli tekst np komendy lub jakiś prosty czat to TCP. Zazwyczaj przy aplikacjach z serwerami używasz obu. Cytuj Link to post Share on other sites
Recommended Posts
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.