Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Umieszczenie graczy na pamię
GreenGo
post 22.05.2010, 23:11:47
Post #1





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


Witam,
chciałbym zrobić aby w grze rpg, którą piszę, była możliwość podglądu gdzie znajdują się poszczególni gracze. Ich pozycję chciałbym przetrzymywać w bazie jako np. 1,123,234 gdzie "1" jest lokacją a 123x234 aktualnymi współrzędnymi. No własnie, jak to wykonać ? Jak sprawić aby umieścić możliwość poruszania się po obrazu za pomocą współrzędnych, jak zaznaczyć kropkę oznaczającą gracza na tej mapie (obrazku) i jak np. podświetlić na pozycję danego gracza najeżdżając na niego w panelu bocznym z wypisanymi wszystkimi graczami ? Jak zaznaczyć na tej mapce miejsca jak sklepy itp. gdzie użytkownik będących w danych współrzędnych będzie mógł coś kupić? Potrzeba będzie do tego biblioteka GD czy może da się to wykonać w inny sposób ? Wiem, że dużo pytań ale mam nadzieję, że otrzymam jakieś wskazówki smile.gif

Ten post edytował GreenGo 22.05.2010, 23:15:57
Go to the top of the page
+Quote Post
croc
post 23.05.2010, 00:42:02
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


GD, Canvas albo zwykłe divy z position: relative. ja bym wybrał Canvas.
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 10:26:02
Post #3





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


Do canvas, z tego co widzę, jest bardzo mało poradników / tutków itp. :/ Nie dało by się tego zrobić za pomocą zwykłego <map> ?
Go to the top of the page
+Quote Post
motyl-pl
post 23.05.2010, 10:34:01
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

Ostrzeżenie: (0%)
-----


Zrzucam Ci książkę o tworzeniu gier internetowych smile.gif
Jak znasz chodź trochę angielskiego to Ci pomoże, ja ją czytam w wolnych chwilach.
Tam jest na przykładzie szachów to opisane.
http://test.motyl-pl.info >> PHP Game Programming


--------------------
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 19:22:37
Post #5





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


Dzięki choć nie wiem czy mój angielski jest taki dobry aby czytać książkę w tym języku. Bawiłem się teraz w canvas`ie. Bardzo fajna opcja ale niestety nie ma możliwości zaprogramowania zdarzenia po najechaniu myszką na jakiś element oraz nie ma wsparcia ze strony IE :/

W takim razie czego najlepiej użyć do nakładania pozycji użytkowników na mapę (jpg), możliwość np, wyświetlenia informacji o uzytkowniku po najechaniu na niego na mapie oraz aby cały czas gdzieś obok wyświetlały się współrzędne myszki na mapie aby użytkownik wiedział gdzie iść ?

Ten post edytował GreenGo 23.05.2010, 19:30:09
Go to the top of the page
+Quote Post
tehaha
post 23.05.2010, 19:34:38
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


z góry mówię, że nie mam doświadczenia z projektowaniem gier, ale może by to po prostu zrobić na divach np taka wyświetlona mapka to było by 100x100 małych divów i w każdym był by wyświetlony obrazek w zależności od tego co ma tam być: trawa, drzewo, domek, postać , te elementy czyli mapa była by zapisana w wielowymiarowej tablicy i przelatując pętlą po tablicy wyświetlasz mapę, przy takim rozwiązaniu bez problemu zrobisz tak, że po najechaniu na gracza czy na domek wyświetli się chmurka z opisem

Ten post edytował tehaha 23.05.2010, 19:34:53
Go to the top of the page
+Quote Post
Kshyhoo
post 23.05.2010, 20:03:41
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




W jakimś projekcie widziałem:

A potem w kodzie:
  1. <body onLoad="mapka(get_x_start,k,get_y_start,player,village,tribe); minimap(get_x_start,k2,get_y_start,player,village,tribe);">

Wyglądało to coś a'la Plemiona. Szczegółów nie znam...


--------------------
Go to the top of the page
+Quote Post
Lejto
post 23.05.2010, 20:44:30
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


może nie w temacie, ale mam pytanie
jak zrobić taką mapke jaka jest np. na www.plemiona.pl?


--------------------
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 21:24:50
Post #9





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


Cytat(tehaha @ 23.05.2010, 19:34:38 ) *
z góry mówię, że nie mam doświadczenia z projektowaniem gier, ale może by to po prostu zrobić na divach np taka wyświetlona mapka to było by 100x100 małych divów i w każdym był by wyświetlony obrazek w zależności od tego co ma tam być: trawa, drzewo, domek, postać , te elementy czyli mapa była by zapisana w wielowymiarowej tablicy i przelatując pętlą po tablicy wyświetlasz mapę, przy takim rozwiązaniu bez problemu zrobisz tak, że po najechaniu na gracza czy na domek wyświetli się chmurka z opisem


No potestowalem teraz takie rozwiązanie ale jest mały problem. Mapka będzie miała ok 700x700. Zakładając, że 1 div ma 5x5 to muszę w pętlach wygenerować ponad 19000 div`ów co dość zamula przeglądarkę :/

Kshyhoo - tego chyba nie uda mi się zrozumieć wstydnis.gif
Go to the top of the page
+Quote Post
croc
post 23.05.2010, 21:28:32
Post #10





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Czy po nałożeniu 19.000 divów 5x5 na mapkę 700x700 cokolwiek jeszcze widaćquestionmark.gif
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 21:33:48
Post #11





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


Oczywiście smile.gif One są przezroczyste, po prostu jak w pętli skrypt napotka diva ze współrzędnymi takimi jak lokalizacja usera to koloruje go na dany kolor dzięki czemu na mapie widoczna jest jego obecna lokalizacja.

Ten post edytował GreenGo 23.05.2010, 21:34:35
Go to the top of the page
+Quote Post
tehaha
post 23.05.2010, 21:37:06
Post #12





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


ja myślałem, że Tobie chodzi o rozdzielczość w takiej jak użytkownik sobie gra, bo wtedy to jeden div zapewne nie miałby mniej niż 15px i wtedy miałbyś już tylko 2k divów, ale jeżeli to ma być tylko mapka to wtedy zrób zwykły obrazek i na nim przy pomocy współrzędnych nanieś kropeczki
Go to the top of the page
+Quote Post
croc
post 23.05.2010, 21:37:29
Post #13





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Jeśli ma ich być tak dużo, to moim zdaniem tylko GD plus cron, choć utracisz stuprocentowy czas rzeczywisty.
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 21:49:57
Post #14





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


A znasz może jakiś poradnik do GD w którym było by coś podobnego zaprezentowane ? Nigdy nie miałem do czynienia z tą biblioteką więc moje zmagania mogły by potrwać dość duży okres czasu.
cron raczej odpada bo nie jest mi w sumie potrzebny i póki co jestem na localhoście na windowsie winksmiley.jpg
Czas rzeczywisty nie jest mi chyba potrzebny. Skrypt przy odświeżeniu strony ma pobierać wszystkie pozycje użytkowników z bazy i generując te divy, porozmieszczać ich.

ew. jedno pole zwiększę do 10x10 co da mi niespełna 5000 div`ów a to już się w miarę szybko generuję, choć nie wiem czy przy wielu użytkownikach serwer by wytrzymał.
Go to the top of the page
+Quote Post
tehaha
post 23.05.2010, 22:01:07
Post #15





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


jeżeli jesteś w stanie ustalić współrzędne usera to nie musisz generować tych pustych divów, tylko wygeneruj wyłącznie te z userami, dla każdego divu reprezentującego usera ustawisz position:absolute względem divu-rodzica czyli konteneru mapki i na podstawie tych współrzędnych obliczysz atrybuty left i top,
Go to the top of the page
+Quote Post
croc
post 23.05.2010, 22:01:43
Post #16





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Cron MUSI być, bo biblioteka GD jest dość powolna i nie wyobrażam sobie co by się stało gdybyś każdemu użytkownikowi generował w locie obrazek 700x700. Co do poradników, to tutaj na php.pl jest artykuł o GD, a poza tym Google: GD tutorial.
Go to the top of the page
+Quote Post
tehaha
post 23.05.2010, 22:07:33
Post #17





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


chodzi mi o to, że możesz dać tło tego dużego diva obrazek mapki i tam powstawiać tylko divy reprezentujące użytkowników o tak:
  1. <div style="width:700px;height:700px;position:relative;border:solid #000000 1px;">
  2. <div id="user_1" style="position:absolute;top:40px;left:100px;background-color:blue;width:5px;height:5px;"></div>
  3. <div id="user_2" style="position:absolute;top:340px;left:400px;background-color:blue;width:5px;height:5px;"></div>
  4. <div id="user_3" style="position:absolute;top:640px;left:600px;background-color:orange;width:5px;height:5px;"></div>
  5. <div id="user_3" style="position:absolute;top:140px;left:600px;background-color:red;width:5px;height:5px;"></div>
  6. </div>

przy czym dla każdego diva obliczysz sobie left i top na podstawie współrzędnych jego pozycji, rozwiązanie na pewno było by efektywne
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 22:08:33
Post #18





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


tehaha - eh, razja nie pomyślałem tongue.gif zaraz to sprawdzę smile.gif

croc - no to chyba póki co GD odpada. Spróbuje to z position:absolute a jeśli nie wypali to będe myślał dalej smile.gif

Wielkie dzięki panowie za rady smile.gif
Go to the top of the page
+Quote Post
croc
post 23.05.2010, 22:15:54
Post #19





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Z tymi divami to nie jest kwestia obciążania serwera tylko klienta smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 11:45