m97 Opublikowano 30 Czerwca 2012 Udostępnij Opublikowano 30 Czerwca 2012 Witam, napisałem funkcję pewnej klasy, jednak wywołuje ona dziwny efekt, przerywa program. Oto funkcja: GML void World::draw_world(){ for(int a = view_y;a < view_y + 50;a++){ for(int b = view_x;b < view_x + 80;b++){ switch(pole_gry[a*b]){ case 0: break; case 1: dirt_sprite.x = b*16; // współrzędna x na ekranie dirt_sprite.y = a*16; // współrzędna y na ekranie dirt_sprite.w = dirt_bitmap->w; // szerokość wklejanego obiektu dirt_sprite.h = dirt_bitmap->h; // wysokość wklejanego obiektu SDL_BlitSurface(dirt_bitmap, NULL, screen, &dirt_sprite); break; } } } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 30 Czerwca 2012 Filar Społeczności Udostępnij Opublikowano 30 Czerwca 2012 Witam, napisałem funkcję pewnej klasy, jednak wywołuje ona dziwny efekt, przerywa program. Oto funkcja: GML void World::draw_world(){ for(int a = view_y;a < view_y + 50;a++){ for(int b = view_x;b < view_x + 80;b++){ switch(pole_gry[a*b]){ case 0: break; case 1: dirt_sprite.x = b*16; // współrzędna x na ekranie dirt_sprite.y = a*16; // współrzędna y na ekranie dirt_sprite.w = dirt_bitmap->w; // szerokość wklejanego obiektu dirt_sprite.h = dirt_bitmap->h; // wysokość wklejanego obiektu SDL_BlitSurface(dirt_bitmap, NULL, screen, &dirt_sprite); break; } } } } Wtf, po co ci w ogóle case 0? Co to za switch dupny lol Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
CrackGM Opublikowano 1 Lipca 2012 Udostępnij Opublikowano 1 Lipca 2012 w takim przypadku w ogóle switch nie potrzebny o_o wrzuć to w ifa pozatym bez sensu masz to pole_gry[a*b] dla a = 2, b = 5 indeks tablicy = 10 a = 5, b = 2 indeks tablicy = 10 itd indeksy na innych pozycjach się powtarzają jeżeli dobrze to zrozumiałem o_o Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Lipca 2012 Administratorzy Udostępnij Opublikowano 1 Lipca 2012 Przerywa, czy moze program się wywala? Bo ja na to drugie bym obstawiał. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Floodnik Opublikowano 1 Lipca 2012 Udostępnij Opublikowano 1 Lipca 2012 A gdy przykładowo Twoje view_y/view_x znajduje się w rogu mapy... To czy przypadkiem w pewnym momencie nie próbujesz wykroczyć poza zakres pole_gry[]? Poza tym, tak jak CrackGM zauważył - bez sensu :P Albo użyj dwuwymiarowej tablicy, albo, jeśli chcesz koniecznie "spakować" mapę do jednowymiarowej tablicy, to: pole_gry[w*y+x], gdzie w - szerokość Twojej mapy, x, y - współrzędne, które aktualnie badasz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 1 Lipca 2012 Udostępnij Opublikowano 1 Lipca 2012 pole[a+b*szerokość mapy] e: dupa, do usunięcia Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się