Autor Wątek: Kolizja typu tablica a mapa bmp  (Przeczytany 1750 razy)

Offline Dante

  • Użytkownik

# Wrzesień 18, 2012, 14:30:50
Witam,
piszę grę 2d, w której mapa jest plikiem .bmp o rozmiarach 1600x1000. Mapa jest złożona z kafli o rozmiarach 40x40. Mapę kolizji postanowiłem zrobić w tablicy map_kol[25][40] ( analogicznie do mapy z tutka Easykodera ). Bohatera rysuję w centralnej części ekranu, lecz zgodnie z moim algorytmem przechowuję jego pozycje x i y,które są mi potrzebne do wyliczania pozycji gracza na mapie kolizji: poz_x = (hero.x+40)/40;
poz_y = (hero.y+40)/40
Reszta algorytmu to po prostu stawianie odpowiedniego warunku przy poruszaniu postacią:if( key[KEY_A] )
          {
            if( map_kol[poz_y][poz_x-1]==0 )
            { hero.kierunek = 1;
              hero.Walk = true;
              hero.x--;
              mapax++;
            }
          }
reszta kierunków analogicznie...Tu niestety pojawia się mój problem: kolizja rzeczywiście jest "wyłapywana", lecz mapa kolizji jest jakby przesunięta w lewo o 2 jednostki, tzn. że gdy punkt map_kol[19][17] = 1 w grze występuje na pozycji map_kol[19][15]. Co może być źle? Z góry thx za rady ;)

Offline Mr. Spam

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

Offline Karol

  • Użytkownik

# Wrzesień 18, 2012, 14:33:50
Złe indeksowanie tablic, gdzieś niepotrzebny +1 lub -1, albo w jakimś warunku równość, zamiast nierówności (albo odwrotnie) i kolizję załapuje w kolejnym przebiegu?

Debuguj kurna i krok po kroku sprawdzaj co się dzieje to w 5* minut dojdziesz co i jak -.-'

* miejmy nadzieję, że tylko 5 ;)

Offline Dante

  • Użytkownik

# Wrzesień 18, 2012, 17:20:48
Znalazłem już błąd...temat do zamknięcia.