Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Budowa mapy 2d
Forum PHP.pl > Forum > PHP
vesus
Cześć, zastanawiam się jak zbudować wyświetlanie + obsługę mapy 2d. Do głowy przychodzą mi takie rozwiązania:

1) mapa kafelkowa
a) zapis kafelków w bazie
cool.gif zapis kafelków w pliku
2) mapa z jednego obrazka
a) zapis kafelków w bazie
cool.gif zapis kafelków w pliku

Zastanawiam się które rozwiązanie jest bardziej optymalne od reszty. Powiedzmy że będziemy mieli lokacje 30x30 o rozmiarach kafelków 30x30px. Tworząc jedną lokację za pomocą bazy mielibyśmy 900 rekordów, za pomocą plików taką samą. Wszystko obsługiwane byłoby przez jQuery, więc dane nt. mapy(wygląd pól i zdarzenia na niej) byłyby zapisywane w js przy każdym otworzeniu mapy. Dzięki czemu przy każdym ruchu, sprawdzanie czy można wejść na dane pole odbywałoby się w JS.

Zapytania do bazy byłyby dzięki temu zminimalizowane, odbywałyby się tylko:
1) przy wczytaniu mapy
2) przy updacie pozycji gracza(tutaj też będę starał się znaleźć lepsze rozwiązanie; bo update za każdym ruchem gracza to troche zbyt dużo)
3) rozmowach z NPC

Dodatkowo wybór: kafelki czy cały obrazek. Mając kafelki, potrzeba opisać każdy kafelek(wygląd + akcje) a z kolei z całym obrazkiem opisanie polega na naniesieniu akcji na mapę.
Pojawia się też pytanie czy przy każdym przeładowaniu strony ładować całość mapy czy tylko dany fragment np 5x5. Pobierając całość(30x30) nie musimy później przy poruszaniu się pobierać dodatkowych pól, bo wszystko mamy zapisane w tablicy js. A co za tym idzie - kolejne pytanie. Pobierać całą mapę i zapisywać ją w js(później w nim obrabiać) czy za każdym ruchem pobrać fragment 5x5?

Chciałbym jak najlepiej do tego podejść, czyli wybrać baza czy pliki do trzymania informacji o mapie. Trzymanie w bazie - będzie oddziaływało na nią, a w plikach na transfer.

Jakie byłoby Waszym zdaniem najlepsze wyjście z tej sytuacji?

pozdrawiam
!*!
Przeszukaj forum pod kątem tworzenia gier, było już o tym.

Trzymanie danych w bazie dotyczących terenu czyli mapy i obiektów na niej się nie sprawdza i tylko ją zapycha. Zastosuj tu zwykłe pliki XML, a później zamień te dane ja json lub array.

Nie będę się rozpisywał jak tworzy się takie mapy i jak to działa od środka, ponieważ temat jest obszerny. Najprościej będzie jak zapoznasz się chociażby z http://www.mapeditor.org/ i jakieś proste edycje w JS do ich API. http://programmingmind.com/projects/isomet...5-canvas-part-1
vesus
Zapoznałem się z tym, zrobiłem podstawę mapy wzorując się na rozwiązaniach z linków i tematach pokrewnych z forum. Zainteresowało mnie w jaki sposób mogę aktualizować pozycje graczy. Natknąłem się na ten temat: http://forum.php.pl/lofiversion/index.php/t165596.html

Gdybym stworzył tabelę w bazie ze składowaniem MEMORY, mógłbym co "krok gracza" robić tam update i zapisywać aktualną pozycję? Chodzi mi czy jest to najbardziej optymalnym rozwiązaniem?
Dodatkowo co ruch pobierałbym wszystkie rekordy gdzie pozycje X i Y są równe mojej postaci i przez to tworzył listę

Oczywiście dziękuje za poprzdnią wskazówkę
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.