public AnimatedLightning(Vector2 start, Vector2 end , float maxOffset, float maxAngleOffset, float lengthScale , int level, int seed, int frameDiff) { _seed = seed; rand = new Random(seed); _bolt1 = new List <LightningSegment>(); _bolt2 = new List <LightningSegment>(); _bolt1.Add(new LightningSegment(start, end)); _maxOffset = maxOffset; _maxAngleOffset = maxAngleOffset; _lengthScale = lengthScale; _level = level; _frameDiff = frameDiff; _start = start; _end = end; LightningGenerator.GenerateForked(_bolt1, _maxOffset, _maxAngleOffset, _lengthScale, _level, rand); }
public void Update(GameTime gameTime) { _actFrame++; if (_actFrame % _frameDiff == 0) { _actFrame = 0; var tmp = _bolt1; _bolt1 = _bolt2; _bolt2 = tmp; for (int i = 0; i < _bolt2.Count; i++) { _bolt2[i].Color = new Color(Color.Multiply(_bolt2[i].Color, 0.5f), 1.0f); } _bolt1.Clear(); _bolt1.Add(new LightningSegment(_start, _end)); LightningGenerator.GenerateForked(_bolt1, _maxOffset, _maxAngleOffset, _lengthScale, _level, rand); } }