Autor Wątek: Tilemap Collsion - prosta platformówka 2d  (Przeczytany 893 razy)

Offline Szedou

  • Użytkownik

# Styczeń 03, 2017, 21:28:04
Witam,
Mam mały problem z "odpowiednią" kolizja między playerem a Tilemapą.
Używam SFML , do sprawdzania kolizji u gracza używam sf::RectangleShape.
Kolizja jakoś tam działa z podłożem , ale mam problem z obliczeniem kolizji z innymi obiektami/blokami na mapie(niekoniecznie jako podloze). Wrzucam kod Tilemapy , może ktoś pomoże. Pozdrawiam

Tilemap.h
http://pastebin.com/kYgprT6k

Tilemap.cpp
http://pastebin.com/DSE8GEvd

Offline Mr. Spam

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

Offline Avaj

  • Użytkownik

# Styczeń 03, 2017, 23:49:49
Debugger w dłoń, albo printfy.

Z kodu nie wiadomo o co dokładnie chodzi. To jest widok z boku? Oprócz tego włącz kolorowanie składni na pastebinie bo nie połowa kodu to komentarze i nie widać o co chodzi.

Co to znaczy "mam problem"? Kolizje nie działają? Nie działają wtedy kiedy trzeba? Używasz tej zmiennej m_onGround później gdzieś? Ma dobrą wartość?

for (int i = 0; i < map_height; i++){
            for (int j = 0; j < map_width; j++){

po co ta pętla jak nie używasz i ani j?

Offline Szedou

  • Użytkownik

# Styczeń 05, 2017, 19:12:25
Próbuje zrobić prostą platformówkę 2d , coś jak Mario.

https://paste.kotsendekat.nl/nihanikoji.avrasm

Dobra, powiedzmy że 0 - puste pole, 1 - grasstile(czyli u mnie podloze levela), 2 - RockTile(Tile z ktorym chce zrobic kolizje z Playerem, tzn jezeli wejde w to z lewej lub prawej strony to nie moge dalej isc , a jezeli od gory to   
"stoje na tym". Próbowałem zrobić to na kilka sposobów/obliczyć jakoś ale nie działa.

Offline karol57

  • Użytkownik

# Styczeń 06, 2017, 20:03:43
Zrób analogicznie jak teraz masz, dodaj jeszcze 3 zmienne opisujące kolizję z lewej, prawej i góry i użyj je podobnie do m_onGround, które opisuje ci kolizję z dołu.

Rozrysuj sobie na kartce kilka sytuacji, pomyśl jakie mają współrzędne poszczególne klocki i gracz i kiedy powinna nastąpić kolizja z której strony, jak nie da rady to książka od matmy (chyba z gimnazjum powinna starczyć) i ogarniamy ładnie równania z niewiadomymi i geometrię (a najlepiej wszystko).