Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Czy przeglądarka się wyrobi ?
Forum PHP.pl > Forum > Przedszkole
wizard144
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)) questionmark.gif

Proszę o odpowiedź i ewentualną chęć pokierowania jak to zrobić. Js i PHP troche znam wink.gif Sql też nienajgorzej. Chodzi mi po prostu o pytanie CZY DA SIE ? (Np 6 graczy plansza 50 x 50 kratek).


Pozdrawiam i oczekuję na odpowiedź wink.gif
kamil4u
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ę smile.gif - najprostszy przykład:
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ć smile.gif

Jak napiszesz nie zapomnij się podzielić informacjami, jak to działa w praktyce - czy jest wydajne itd.
wizard144
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... :/
xmen491
wydaje mi się że się da pamiętam nawet jak pac man był na stronie startowej jako logo google
webdice
Cytat(xmen491 @ 1.06.2011, 11:55:04 ) *
wydaje mi się że się da pamiętam nawet jak pac man był na stronie startowej jako logo google


Heh, to był GIF.
wizard144
Była gra też i to zrobiona chyba za pomoca JS ale watpie zeby tam byla jakas komunikacja z baza danych ^^
Crozin
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. wink.gif
kamil4u
@crozin: myślę, że komunikację między 6 graczami da radę zrobić za pomocą AJAX-a smile.gif Jakieś większej komunikacji oczywiście się nie zrobi i tu masz rację, ale zakładając, że gra będzie raczej prosta takie zapytania, nie powinny "zmulić" gry w żaden sposób.
Crozin
@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.
wizard144
mhm... A jak to jest z flashem ? (zastanawiam się czy nie zacząć się go uczyć).

Srry za OT.
kamil4u
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).
Crozin
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.
wizard144
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ąquestionmark.gif

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
Crozin
Cytat
Po UDP powinno isc szybko i bezproblemowo.
Szybko? Tak. Bezproblemowo? Raczej nie. wink.gif
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).
wizard144
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 smile.gif (tak wiem ze Java i JS to 2 rozne rzeczy wink.gif jak cos smile.gif )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.