Winner Temat założony przez niniejszego użytkownika |
» 2012-01-02 22:14:33 Dzięki za przykład. Dzisiaj trochę posiedziałem nad tą kolizją i juz prawie działa, zn ludek gdy opada na kafelek i jest tak na pół na kafelku to opada dalej, nie zatrzymuje się, dopiera jak będzie cały ludek na kafleku to się zatrzyma opadanie... Mój kod kolizji: int RodzajTerenu = map[ my + y + 1 ][ mxx ]; int RodzajTerenuBok = map[ my + y ][ mxx + 1 ]; int RodzajTerenuNad = map[ my + y + 1 ][ mxx + 1 ]; int RodzajTerenuBok2 = map[ my + y + 1 ][ mxx ];
int RodzajTerenuDolLL = map[( int ) mapa_y + y ][( int ) mapa_x + x - 1 ]; int RodzajTerenuDolPP = map[( int ) mapa_y + y + 1 ][( int ) mapa_x + x - 1 ]; int RodzajTerenuGorPP = map[( int ) mapa_y + y + 1 ][( int ) mapa_x + x ]; int RodzajTerenuGor = map[( int ) mapa_y + y ][( int ) mapa_x + x ]; wys_mape(); textprintf_ex( bufor, font, 10, 30, makecol( 255, 255, 255 ), - 1, "numer kafelki %d, x=%d,mx=%d,my=%d,y=%d,mario_y=%d,my+y=%d,mx+x=%d,mxx=%d, RodzajTerenuDolP = %d, RodzajTerenu = %d, RodzajTerenuDolL = %d, RodzajTerenuPrzed = %d, RodzajTerenuGorP = %d", test, RodzajTerenu, mxx ); if( key[ KEY_RIGHT ] && RodzajTerenuBok == 0 && RodzajTerenuNad == 0 || key[ KEY_RIGHT ] && RodzajTerenuNad > 0 && RodzajTerenuBok2 > 0 && RodzajTerenuBok == 0 ) { mapa_x--; mmx++; } if( RodzajTerenu == 0 ) { mario_y++; } Podpowiedzcie mi którą zmienną mogę użyć do zatrzymania ludka na połowie kafelki... PS: Odczytuje mi już dobrze na jakiej kafelce jest ludek, ale ludek jak jest na pół na kafelce to spada... |
|
Winner Temat założony przez niniejszego użytkownika |
» 2012-01-04 15:16:05 Witam, z góry przepraszam, że pisze post pod postem ale chcę "odświeżyć" temat. Mam jeszcze jeden problem z kolizją, tym kodem int RodzajTerenu = map[ my + y + 1 ][ mxx ]; Sprawdzam kolizje w tym miejscu: [IMG]http://www.iv.pl/images/11493838714481624311.png[/IMG] Tym kodem int RodzajTerenuBok = map[ my + y ][ mxx + 1 ]; W tym miejscu: http://www.iv.pl/images/86368114480920830384.png Tym kodem int RodzajTerenuNad = map[ my + y + 1 ][ mxx + 1 ]; Sprawdzam kolizje w tym miejscu: http://www.iv.pl/images/84494110406125681728.png I teraz pytanie: Jak sprawdzić kolizje tylko w tym miejscu: http://www.iv.pl/images/83236652463125004123.png PS: Jak wstawić zdjęcie aby się otworzyło w miniaturce w moim poście? |
|
pekfos |
» 2012-01-04 15:51:24 PS: Jak wstawić zdjęcie aby się otworzyło w miniaturce w moim poście? | Kurs STCI teraz pytanie: Jak sprawdzić kolizje tylko w tym miejscu: http://www.iv.pl/images/83236652463125004123.png |
Na mapie kafelkowej nie sprawdzisz kolizji z obiektem mniejszym od kafla -.- trzymaj wyjątki w jakimś pliku jako zestawy współrzędnych i sprawdzaj je. |
|
Winner Temat założony przez niniejszego użytkownika |
» 2012-01-04 16:13:23 Tak, ale bym musiał zrobić bardzo dużo taki wyjątków, bo ja chcę na razie zrobić proste wchodzenie po stopniach. Wygląda to mniej więcej tak: 0,0,0,0,1,0, 0,0,0,1,0,0, 0,0,1,0,0,0, 0,1,0,0,0,0, 1,0,0,0,0,0 Mam taki kod: int RodzajTerenu = map[ my + y + 1 ][ mxx ]; int RodzajTerenuBok = map[ my + y ][ mxx + 1 ]; int RodzajTerenuNad = map[ my + y + 1 ][ mxx + 1 ]; int RodzajTerenuBok2 = map[ my + y + 1 ][ mxx ];
int RodzajTerenuDolLL = map[( int ) mapa_y + y ][( int ) mapa_x + x - 1 ]; int RodzajTerenuDolPP = map[( int ) mapa_y + y + 1 ][( int ) mapa_x + x - 1 ]; int RodzajTerenuGorPP = map[( int ) mapa_y + y + 1 ][( int ) mapa_x + x ]; int RodzajTerenuGor = map[( int ) mapa_y + y ][( int ) mapa_x + x ]; wys_mape(); textprintf_ex( bufor, font, 10, 30, makecol( 255, 255, 255 ), - 1, "numer kafelki %d, x=%d,mx=%d,my=%d,y=%d,mario_y=%d,my+y=%d,mx+x=%d,mxx=%d, RodzajTerenuDolP = %d, RodzajTerenu = %d, RodzajTerenuDolL = %d, RodzajTerenuPrzed = %d, RodzajTerenuGorP = %d", test, RodzajTerenu, mxx ); if( key[ KEY_RIGHT ] && RodzajTerenuBok == 0 && RodzajTerenuNad == 0 || key[ KEY_RIGHT ] && RodzajTerenuNad > 0 && RodzajTerenuBok2 > 0 && RodzajTerenuBok == 0 ) { mapa_x--; mmx++; } if( RodzajTerenu == 0 && RodzajTerenuNad == 0 ) { mario_y++; }
I aktualnie jest tak, że ja upadnę na stopień prawym rantem mojego ludka to nie mogę się ruszyć... Na ziemi jest ok, bo jak lewy róg wynosi > 0 to mogę się ruszyć, a na brzegu stopnia jak jestem i lewa część ludka wystaje poza stopien to lewy róg tego ludka wynosi 0 i nie mogę się ruszyć... |
|
pekfos |
» 2012-01-04 16:17:02 To zostaje ci zrobienie kafla schodów, narysowanie sceny i kolizje per-pixel. |
|
Winner Temat założony przez niniejszego użytkownika |
» 2012-01-04 16:19:51 Kafelki schodów już mam. Czy Kolizję którą miałeś na myśli to to coś podobnego do tego http://www.easykoder.vot.pl/arty/wormsowamapa |
|
pekfos |
» 2012-01-04 16:23:28 no coś takiego.
Wiesz, gdybyś podzielił się swoją wizją mapy w grze, nie musielibyśmy się z tobą męczyć naprawiając błędy w kolizjach które i tak teraz trzeba zmienić -.- |
|
Winner Temat założony przez niniejszego użytkownika |
» 2012-01-04 16:26:40 Wizją mapy w grze? To znaczy? Chcę stworzyć prostą grę - typu mario, ale nie chcę sprawdzać kolizji po współrzędnych ponieważ w przyszłości planuję zrobić edytor map... Żeby każdy mógł zrobić własną mapkę.
Czy dla kolizji per-pixel mam tło wypełnić jakimś kolorem i sprawdzać czy na przykład na dole ludka nie ma piksela o innym kolorze albo z przodu ludka? |
|
1 2 3 4 5 « 6 » 7 8 |