void SnowParticleHolder::add_particle (int x, int y, bool colliding) { // search for dead entry to replace for (std::vector<SnowParticle>::iterator it=particles.begin(); it != particles.end(); ++it) if (!it->alive) { *it = SnowParticle(x, y, colliding); return; } // create new entry particles.push_back(SnowParticle(x, y, colliding)); }
Snow::Snow() :Entity(false), mAnimation("snow.bmp"), mFrameCounter(0) { unsigned int i; for (i = 0; i < 40; i++) { mSnowParticlesForeground.push_back(SnowParticle(rand() % (320 * 3), rand() % (240 * 3), rand() % 2 + 1, rand() % 3 + 1)); } for (i = 0; i < 100; i++) { mSnowParticlesBackground.push_back(SnowParticle(rand() % (320 * 3), rand() % (240 * 3), rand() % 2 + 1, rand() % 3 + 1)); } }