![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 3 Dołączył: 4.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Mam kilka pytań. Pierwsze - załóżmy że kilka procesów ma być wykonywane jednocześnie na kilku elementach - 1 np ma sie zapalać a drugi gasić. Procesy mają być wykonane w tym samym momencie, czy jest to możliwe w JavaScript ? Drugie, powiązane z pierwszym - Załóżmy że mamy na ekranie 10 kolorowych klocków poruszających się (widziałem w kursie jquery jak zmieniały wektor ruchu). Czy gdybym komunikował się z bazą danych za pomocą advAjax + php a do wyswietlania aktualnej pozycji uzywal jQuery to ma szanse zrobienie powiedzmy mini gry w stylu pacman w Javascript na kilka osob (PHP + mySql + Ajax (biblioteki takie jak advAjax i jQuery)) ![]() Proszę o odpowiedź i ewentualną chęć pokierowania jak to zrobić. Js i PHP troche znam ![]() Pozdrawiam i oczekuję na odpowiedź ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pierwsze - załóżmy że kilka procesów ma być wykonywane jednocześnie na kilku elementach - 1 np ma sie zapalać a drugi gasić. Procesy mają być wykonane w tym samym momencie, czy jest to możliwe w JavaScript ? Oczywiście, że da się ![]() Kod <input type="checkbox" id="test1"> <input type="checkbox" id="test2"> <script> e1 = document.getElementById('test1'); e2 = document.getElementById('test2'); setInterval( function(){ e1.checked = !e1.checked;} , 1000); setInterval( function(){ e2.checked = !e2.checked;} , 500); </script> Cytat Drugie Powinno dać radę, jednak sam nigdy się w to nie bawiłem. Zacznij od napisania skryptu, w którym każdy będzie poruszał swoim klockiem na ekranie. Najprostszy ruch. Zobacz czy jest to w miarę optymalne, jeśli nie podaj nam swój kod i postaramy się go jakoś bardziej zoptymalizować. Pamiętaj, żeby wykonywać jak najmniej operacji, a dane serwera pobierać w paczce - nie pojedynczo dla każdego gracza. Na podobnej zasadzie działa wile gier we flashu i shoutbox-y. Powinno się udać ![]() Jak napiszesz nie zapomnij się podzielić informacjami, jak to działa w praktyce - czy jest wydajne itd. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 3 Dołączył: 4.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź, dziś wieczorem siądę i spróbuję to napisać. Raz już próbowałem, ale nie chciało za bardzo pobierać wszystkich elementów... :/
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 1 Dołączył: 30.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
wydaje mi się że się da pamiętam nawet jak pac man był na stronie startowej jako logo google
|
|
|
![]()
Post
#5
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 3 Dołączył: 4.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Była gra też i to zrobiona chyba za pomoca JS ale watpie zeby tam byla jakas komunikacja z baza danych ^^
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pierwsze - załóżmy że kilka procesów ma być wykonywane jednocześnie na kilku elementach - 1 np ma sie zapalać a drugi gasić. Procesy mają być wykonane w tym samym momencie, czy jest to możliwe w JavaScript ? Technicznie... nie. JavaScript jest jednowątkowy co oznacza, że nie może wykonywać kilku operacji na raz. Jednakże takie "pierdoły" jak pokazanie i ukrycie elementów wykonują się tak szybko, że w efekcie będzie to wyglądało jakby ostało wykonane w tym samym czasie.Cytat Drugie, powiązane z pierwszym - Załóżmy że mamy na ekranie 10 kolorowych klocków poruszających się (widziałem w kursie jquery jak zmieniały wektor ruchu). Czy gdybym komunikował się z bazą danych za pomocą advAjax + php a do wyswietlania aktualnej pozycji uzywal jQuery to ma szanse zrobienie powiedzmy mini gry w stylu pacman w Javascript na kilka osob (PHP + mySql + Ajax (biblioteki takie jak advAjax i jQuery)) Raczej nie będzie to działało zbyt ciekawie, z kilku powodów:1. AJAX daje Ci jedynie jednostronną komunikację (klient -> serwer), a Ty potrzebujesz dwustronnej (klient -> serwer oraz serwer -> klient). 2. AJAX działa na zasadzie wysyłania żądań HTTP, a te są dosyć duże i powolne. Nie dość, że wysyłana jest cała masa kompletnie niepotrzebnych (z punktu widzenia takiej gry) danych to jeszcze całość leci po TCP/IP. Częściowym rozwiązaniem tych problemów jest WebSockets, ale to technologia z której jeszcze skorzystać nie możesz. Są jeszcze protezy w stylu Cometa, które jakoś tam sobie radzą. Cytat Heh, to był GIF. Nie, to byla normalna gra. ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
@crozin: myślę, że komunikację między 6 graczami da radę zrobić za pomocą AJAX-a
![]() -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@kamil4u: To nie będzie żadnej komunikacji pomiędzy graczami. Wszystko będzie lecieć na linii klient -> serwer i odwrotnie. Masz rację co do ilości przesyłanych danych przez samą grę - nieduża, ale sposób w jaki będzie się klient z serwerem komunikować do najszybszych nie należy, a w takiej grze potrzebne są bardzo małe opóźnienia.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 3 Dołączył: 4.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
mhm... A jak to jest z flashem ? (zastanawiam się czy nie zacząć się go uczyć).
Srry za OT. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Flash na pewno da radę - choć sam nie umiem w nim nic zrobić to widziałem gry, aplikacje, gdzie odbywała się płynna komunikacja między 4 użytkownikami(ale to nadal mała liczba, żeby można było stwierdzić, jak flash sobie radzi)
. Ale jak pisaliśmy, dla 6 graczy powinno być ok w PHP + JS(AJAX). -------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat mhm... A jak to jest z flashem ? Szczerze to nigdy się nim nie interesowałem, ale istnieje dla niego dedykowane narzędzie w postaci Flash Media Server. Nie wiem jak sprawa wygląd w przypadku ActionScriptu ale pewnie daje on możliwość komunikacji przy pomocy TCP i, co w tym przypadku ważniejsze, UDP z dowolnym serwerem.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 3 Dołączył: 4.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Po UDP powinno isc szybko i bezproblemowo. Lepiej sie tym zainteresować. To jeszcze ostatnie pytanie. Czy jest jakis sposób żeby osadzić aplikacje napisaną w C/C++ na stronie internetowej jako zawartość aktywną
![]() Z jednej strony wydaje sie to absurdalne a z drugiej kilka razy troche czasu temu czytalem teo forum i przewijał się wątek aplikacji C++, no chyba ze coś źle zrozumiałem. Pozdrawiam |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Po UDP powinno isc szybko i bezproblemowo. Szybko? Tak. Bezproblemowo? Raczej nie. ![]() Cytat Czy jest jakis sposób żeby osadzić aplikacje napisaną w C/C++ na stronie internetowej jako zawartość aktywną C / C++ nie bardzo. Najlepiej byłoby skorzystać z Flasha, później Java (aplety).
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 138 Pomógł: 3 Dołączył: 4.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
O jeja O.o
O Javie z tego co mi wiadomo jest tyle książek... i to dosyć grubych. Zdała by sie jakaś biblia i ze 2 miesiące wolnego. Mhm... W każdym bądź razie dzięki za odpowiedzi :] Gdyby ktoś coś chciał dodać do tematu Javy, Javascriptu etc. to będę wdzięczny ![]() ![]() ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 23:35 |