Piszę Sokobana w SDL'u i mam z tym troche problemów :P. Piszę bez żadnego frameworka więc jest troszeczkę ciężej :) Jakby co grafike ściągnąłem z tutka Coldwinda :)...Gdyby ktoś chciał pomóc to może napisać na gg: 25823284, ponieważ ciężko się samemu kodzi. W załączniku dodaje obrazek z tym co udało mi się zrobić (:
Z checia pomoge jak przedstawisz problem na forum. Nie bardzo mi sie chce udostepniac moj numer gadu osobie, ktorej nie znam.
Ładuje mapkę z pliku tekstowego. Na mapce są skrzynie (kafelki) na mapce oznaczone odpowiednio literką 'c'. Jednak nie wiem za bardzo jak je przesuwać :D To znaczy wiadomo, że jeżeli skrzynka jest jedną kratkę nade mną i w nią 'wchodzę' to ma się przesunąć do góry o jedną kratkę a ja mam wejść w jej miejsce, jednakże...Co ma się przesunąć? Tzn. jakimi współrzędnymi mam opisywać tę skrzynki? Jak coś napisz to na PW kod Ci dam :)
Zwykle dwupoziomowe sprawdzanie kolizji, AABB wystarczy.
jesli jest kolizja gracz-skrzynka
jesli nie ma kolizji skrzynka-skrzynka OR skrzynka-sciana
gracz jak i skrzynka moga sie przesunac
w przeciwnym wypadku
hamujesz gracza, nie ruszasz skrzynki
Rozumiem, jednak nie wiem jak mam przesuwać tą skrzynkę ponieważ nie jest ona opisana żadnymi współrzędnymi. Jest ona po prostu w pliku tekstowym. Próbowałem zrobić coś takiego:
SDL_Rect Skrzynki[ilosc_skrzynek],
i później odczytywać znak po znaku całą mapę poprzez zmienne pomocnicze: i,j
jeżeli przy odczytywaniu napotykamy na znak 'c' to:
Skrzynki[k].x = i;
Skrzynki[k].y = j;
k++;
Dzięki temu miałbym tę skrzyneczki opisane ładnie współrzędnymi, jednak tym sposobem mi nie wychodzi :)