Message Board
Message Board > C/C++ > help with class vectors and stuff |
August 10, 2013, 02:53 | |
DoctorN
Whiskered 91 posts |
I need some quick programming help with c++. Let me explain first, I have class player and class coin. Class player is defined like so: Code: player *player_obj; //the player object Class coin is defined like so: Code: vector<coin> coin_obj; //the coin object When the player is created, it is created like so: Code: player_obj = new (std::nothrow) player( x, y ); it is executed like so: Code: player_obj->controls(); player_obj->move( lvlbox ); player_obj->air(); player_obj->show(); and is deleted like so: Code: delete player_obj; When the coin(s) is/are created, it is like so: Code: coin_obj.push_back( coin( x, y ) ); executed like so: Code: for(std::size_t t = 0; t < coin_obj.size(); ++t) if( !coin_obj[t].collision( player_obj->get_rects() ) ) coin_obj[t].show(); else coin_obj.erase(coin_obj.begin()+t); and deleted/erased like so: Code: coin_obj.erase(coin_obj.begin(),coin_obj.begin()+coin_obj.size()); The problem is, when the player collides into the coin, the coin does disappear (so it works for that part), but all the other coins will blink, since I have rechanged the order. Do you know how I can change the way the coins are done so that they won't all blink when one is erased? Thanks ____________ |
# |
August 13, 2013, 23:45 | |
DTM
Earthling! 823 posts |
Why do they blink? How is the order changed? I don't understand that. Mmkay. When you delete one item, you need to decrement the "t" index: Code: for(std::size_t t = 0; t < coin_obj.size(); ++t) { if( !coin_obj[t].collision( player_obj->get_rects() ) ) coin_obj[t].show(); else { coin_obj.erase(coin_obj.begin()+t); t --; } } Otherwise the next item will be skipped and not .show()'d Maybe that's the problem? ____________ :o |
# |
October 19, 2013, 05:43 | |
DoctorN
Whiskered 91 posts |
I fixed it awhile back to your help, never got around to thanking you. Thanks
____________ |
# |
Message Board > C/C++ > help with class vectors and stuff