Autor Wątek: [c++]mapa top-down  (Przeczytany 1577 razy)

Offline magik6000

  • Użytkownik

# Grudzień 09, 2010, 17:13:58
Witam. Może pytanie wydaje się banalne, ale wcale takie nie jest, otóż mapa ma mieć:
- nieograniczoną wielkość - to nie problem, bo wystarczy że ustawie domyślną teksture podłorza i ogranicza mnie wtedy tylko wielkość int-a.
-nielimitowaną ilość obiektów (yyyy... no nie wiem jak to zrobić, ale docenię każdy pomysł)
-możliwie jak najmniejszy rozmiar (gra multi, ogromne pliki nie wchodzą  grę)

PS nie proszę o gotowy kod czy nawet strukturę, tylko pomysł bo tkwię na tym 3 dni  :-\

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Xirdus

  • Redaktor

# Grudzień 09, 2010, 17:29:14
Chodzi o struktury w grze czy o pliki?

Offline magik6000

  • Użytkownik

# Grudzień 09, 2010, 17:38:00
o pliki

Offline mwojt

  • Użytkownik

# Grudzień 09, 2010, 17:38:48
Chodzi o rozkład początkowy obiektów na mapie ? czy ogólnie ma być ich dowolna ilość ?

Offline Kos

  • Użytkownik
    • kos.gd

# Grudzień 09, 2010, 17:49:22
Sektory.

Jeden sektor = 128x128 pól tilemapy (bo o tilemapę chodzi?) + obiekty. Jeden plik = jeden sektor. Nazwa pliku w stylu "10-53.map" (czyli współrzędne konkretnego sektora).

Offline magik6000

  • Użytkownik

# Grudzień 09, 2010, 17:51:51
tak o tilemape, tylko jak to wczytać (wielowątkowa mapa :P )

EDIT zapomniałem że mapa jest po stronie klienta i wystarczy wczytać 4 sektory (ten na którym jest klient, i 3 najbliższe)
« Ostatnia zmiana: Grudzień 09, 2010, 17:55:14 wysłana przez magik6000 »

Offline magik6000

  • Użytkownik

# Grudzień 09, 2010, 18:15:09
a takie pytanie trochę poza tematem, mianowicie jak zaszyfrować plik w md5 (bo muszę porównać pliki po stronie klienta i serwera) ew czy jest do tego celu jakaś biblioteka bo opis md5 na wiki mnie straszy  ;D

Offline Karol

  • Użytkownik

# Grudzień 09, 2010, 18:58:05
MD5 to nie szyfrowanie, tylko "skrót" czy też "odcisk palca" danego ciągu znaków/pliku (nie da się tego odwrócić). Są gotowe funkcje, poszukaj - na pewno znajdziesz.

Offline magik6000

  • Użytkownik

# Grudzień 09, 2010, 19:36:56
teraz Wiem.

EDIT Google wiedzą

Offline magik6000

  • Użytkownik

# Grudzień 10, 2010, 23:50:39
a tak wracając do tematu, to jaki rozmiar kafla jest najlepszy na 800x600, bo zastanawiałem się nad 20x20, ale przyjmując że jest to wyświetlane na 600x500 to wychodzi 750 kafli. A jeśli jeden moduł ma 100x100 -> 10k kafli to do dużej mapki potrzeba wielu modułów, a każdego kafla trzeba opisać np.: czy da sie przez niego przejść, jaką ma akcję do wykonania (lub jej brak) itd. A każdy moduł to 10k kafelków, każdy bajt kafelka to ~10kb modułu. Tak więc 20x20 odpada i nie za bardzo mam pomysł na jakiś dobry rozmiar.

PS.pisze z komy
PS2.sory za błędy
// jak z komy mogłeś napisać "pżez" (przez ż)? - Xirdus
« Ostatnia zmiana: Grudzień 11, 2010, 00:24:50 wysłana przez Xirdus »

Offline Karol

  • Użytkownik

# Grudzień 11, 2010, 00:01:30
  • Najczęściej korzysta się z kafli 32x32.
  • Kafle nie muszą idealnie pasować do rozdzielczości.
  • Jeżeli chcesz zapisać mapę kaflową jako tablicę dwuwymiarową to zapisuj w ten sposób tylko te dane, które ma każdy kafel (np. grafika podłoża).
  • Grafika podłoża może określać czy da się po kaflu chodzić, oszczędzasz w ten sposób miejsce.
  • Przedmioty, obiekty, postacie zapisuj w postaci listy dla każdego sektora, jest ich o wiele mniej niż podłoża więc iteracja po liście sektora, aby znaleźć obiekty w zakresie wyświetlanych koordynatów nie będzie kosztowna, a zaoszczędzisz MNÓSTWO miejsca.