bingo009 Temat założony przez niniejszego użytkownika |
[C++]Vector subscript out of range » 2012-02-24 21:47:09 Witam was serdecznie, otóż mam problem z wyżej wspomnianym błędem. Używam wektora aby rysować węża zgodnie z ilością elementów. Wprawdzie kompiluje się dobrze, lecz wywala mi ten błąd: http://www.kamilsite.xaa.pl/Obrazy/Przechwytywanie.JPGO co może chodzić? Tu jest kawałek kodu z mojej głównej pętli: vec_x.push_back( player_x ); vec_y.push_back( player_y );
al_draw_filled_rectangle( player_x - 5, player_y - 5, player_x + 10, player_y + 10, al_map_rgb( 28, 223, 0 ) );
for( int i = 0; i < snake_size; i++ ) { al_draw_filled_rectangle( vec_x[ vec_x.size() - i - 5 ], vec_y[ vec_y.size() - i - 5 ], vec_x[ vec_x.size() - i + 10 ], vec_y[ vec_y.size() - i + 10 ], al_map_rgb( 28, 223, 0 ) ); } |
|
ison |
» 2012-02-24 21:52:09 vec_y[ vec_y.size() - i + 10 ]
to +10 raczej powinno być poza [] ;) to samo z -5 |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2012-02-24 21:58:53 Nic to nie dało. |
|
ison |
» 2012-02-24 22:29:06 vec_x[ vec_x.size() - i ]
dla i=0 odwołujesz się do nieistniejącego elementu vec_x[ vec_x.size() - i - 1 ] |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2012-02-25 18:09:59 Dalej nic, próbowałem też nadać i początkową wartość 1 i też nic. |
|
ison |
» 2012-02-25 18:13:05 wklej aktualny kod (w sensie samego fora) jesteś pewien, że snake_size wynosi zawsze dokładnie tyle ile vec_x.size() i vec_y.size()? |
|
pekfos |
» 2012-02-25 18:26:32 vec_x.push_back( player_x ); vec_y.push_back( player_y ); lepiej chyba użyć struktury a zamiast vectora, listy. |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2012-02-25 18:41:40 vec_x.push_back( player_x ); vec_y.push_back( player_y );
al_draw_filled_rectangle( player_x - 5, player_y - 5, player_x + 10, player_y + 10, al_map_rgb( 28, 223, 0 ) );
for( int i = 0; i < snake_size; i++ ) { al_draw_filled_rectangle( vec_x[ vec_x.size() - i - 1 ] - 5, vec_y[ vec_y.size() - i - 1 ] - 5, vec_x[ vec_x.size() - i - 1 ] + 10, vec_y[ vec_y.size() - i - 1 ] + 10, al_map_rgb( 28, 223, 0 ) ); }
Zauważyłem też, że błąd występuje wtedy, kiedy snake_size jest większe niż 1. |
|
« 1 » 2 |