public override void Make(ParticleParameter param) { if (!CheckMake()) { return; } Set(count % Vertex.Length, param); count++; }
/// <summary> /// 粒を生成 /// </summary> /// <param name="name"></param> /// <param name="param"></param> internal void MakeParticle(int name, ParticleParameter param) { if (particles[name] != null) { particles[name].Make(param); } }
/// <summary> /// /// </summary> /// <param name="i">パーティクルを入れる場所</param> /// <param name="param"></param> protected void Set(int i, ParticleParameter param) { Vertex[i] = new ParticleVertex() { Position = param.Pos, Velocity = param.Vel, Accel = param.Ac, Radius = param.Radius, Alpha = param.Alpha, Time = this.Time, Angle = param.Angle, Color = param.Color }; }
public abstract void Make(ParticleParameter param);
/// <summary> /// パーティクルをひとつ発生させる /// </summary> /// <param name="param">パーティクルの初期位相</param> public override void Make(ParticleParameter param) { if (!CheckMake()) { return; } Set(Count % ParticleNum, param); Count++; }
/// <summary> /// パーティクル群を発生させる /// </summary> /// <param name="param">パーティクルの初期位相の配列。この配列の要素数だけパーティクルが作られる</param> public void Make(ParticleParameter[] param) { if (!CheckMake()) { return; } for (int i = 0; i < param.Length; i++) { Set(Count % ParticleNum, param[i]); Count++; } }