frts::ComponentPtr frts::DropBuilder::build(const EntityPtr& entity, const SharedManagerPtr& shared, const ConfigNodePtr& node) { assert(entity != nullptr); assert(shared != nullptr); assert(node != nullptr); auto component = std::static_pointer_cast<Drop>(build(entity, shared)); for (auto& drop : node->getStrings("drops")) { auto id = shared->makeId(drop); component->addDrop(id); } return component; }
void F_CALLBACKAPI instrumentCallback(FMUSIC_MODULE *mod, unsigned char param) { int row = instrumentOffsets[param]; float *fft = FSOUND_DSP_GetSpectrum(); int top = -1; float val = 0.0; for(int i = 0; i < 256; ++i) { if(fft[i] > val) { top = i; val = fft[i]; } } if(top != -1) addDrop(row + top, val); }
void WaterBall::addRandomDrop() { float s = 20; addDrop(vec2(rx_random(position.x - s, position.x + s), rx_random(position.y - s, position.y + s)), rx_random(min_drop_mass, max_drop_mass)); }