Skocz do zawartości

Prosta biblioteka graficzna Java


Recommended Posts

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!

Link to post
Share on other sites

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 przez Karister
Link to post
Share on other sites

Ź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.

  • Popieram 1
Link to post
Share on other sites
  • 3 tygodnie później...
  • 4 tygodnie później...

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.

Link to post
Share on other sites

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ą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...