osgParticle.RandomRateCounter是osgParticle计数器类的一种,它可以在每一秒内随机产生一定范围内的计数,用于指定系统的发射速率。
osgParticle.RandomRateCounter继承自 osgParticle.Counter。
以下是osgParticle.RandomRateCounter类的公共函数:
RandomRateCounter()
构造函数,创建一个新的osgParticle.RandomRateCounter对象。
clone(osgParticle::ParticleProcessor::CloneContext& context) const
从上下文中克隆一个新的osgParticle.RandomRateCounter对象。
参数:
context
:osgParticle::ParticleProcessor::CloneContext对象。返回值:一个指向新的osgParticle.RandomRateCounter对象的指针。
setRateRange(float minRate, float maxRate)
设置计数器每秒产生的最小和最大数值。
参数:
minRate
:最小计数值。maxRate
:最大计数值。getRateRange(float &min, float &max) const
获取计数器每秒产生的最小和最大数值。
参数:
min
:返回最小计数值。max
:返回最大计数值。getNumPrimitivesToCreate(double dt)
计算在给定时间内计数器应该产生的新粒子数量。
参数:
dt
:时间间隔,单位为秒。返回值:计数器应该产生的新粒子数量。
以下示例代码演示了如何使用osgParticle.RandomRateCounter计数器。
osg::ref_ptr<osgParticle::RandomRateCounter> randomCounter = new osgParticle::RandomRateCounter;
randomCounter->setRateRange(5.0f, 25.0f);
...
double dt = 1.0 / 60.0;
int numNewParticles = randomCounter->getNumPrimitivesToCreate(dt);