void PowerUp::respawn() { QVector2D random = RandomNumber::inUnitCircle(); QVector3D pos( mPosition.x() + random.x() * mRadius, 0, mPosition.y() + random.y() * mRadius ); pos.setY( mLandscape->terrain()->getHeight( pos ) + 1.5 ); setPosition( pos ); mRespawnCoolDown = RandomNumber::minMax( 1.0f, 3.0f ); mRespawning = true; if( mRandom ) { mPowerType = PowerType(RandomNumber::minMax(0, 5)); } }
double MOCPumpConfig::GetPower(double dX) { double dNewPower = 0; double dPress = GetPress(dX); double dMass = dX; if(0 == FlowType())//体积流量 dX = MOCFluid::TranMassToQ(dX); if(dX > MaxFlow()) dX = MaxFlow(); if(dX < 0) dX = 0; dNewPower = m_CurvePower.GetY(m_PowerData,dX); if(fabs(dNewPower)<1E-6||dNewPower<0) return 0; if(0==PowerType()) { double dPe = CalcPe(dMass,dPress); dNewPower = dPe*100/dNewPower; } return dNewPower; }