// 使用设置好的值计算粒子的随机参数,然后初始化粒子 protected virtual void InitializeParticle(Particle particle, Vector2 where) { // 首先确定运动方向 Vector2 direction = PickDirection(); // 确定物理参数 float velocity = Tools.RandomBetween(minInitialSpeed, maxInitialSpeed); float acceleration = Tools.RandomBetween(minAcceleration, maxAcceleration); float lifetime = Tools.RandomBetween(minLifetime, maxLifetime); float scaleX = Tools.RandomBetween(minScaleX, maxScaleX); float scaleY = Tools.RandomBetween(minScaleY, maxScaleY); float rotationSpeed = Tools.RandomBetween(minRotationSpeed, maxRotationSpeed); float rotation = Tools.RandomBetween(minRotationAngle, maxRotationAngle); // 调用粒子的初始化方法 particle.Initialize(where, velocity * direction, acceleration * direction, lifetime, scaleX, scaleY, rotation, rotationSpeed); }
protected override void InitializeParticle(Particle particle, Vector2 where) { float velocity = Tools.RandomBetween(minInitialSpeed, maxInitialSpeed); float acceleration = Tools.RandomBetween(minAcceleration, maxAcceleration); float lifetime = Tools.RandomBetween(minLifetime, maxLifetime); float scaleX = Tools.RandomBetween(minScaleX, maxScaleX); float scaleY = Tools.RandomBetween(minScaleY, maxScaleY); float rotationSpeed = Tools.RandomBetween(minRotationSpeed, maxRotationSpeed); float rotation = Tools.RandomBetween(minRotationAngle, maxRotationAngle); Vector2 direction = PickDirection(rotation); particle.Initialize(where, velocity * direction, acceleration * direction, lifetime, scaleX, scaleY, rotation, rotationSpeed); }