public void addMagicDots(bool useRandom) { int seed = (int)DateTime.Now.Ticks; while (_magicDots.Count < DENSITY) { seed += (int)DateTime.Now.Ticks; Random r = new Random(seed); double size = DOT_SIZE_MIN + (DOT_SIZE_MAX - DOT_SIZE_MIN) * r.NextDouble(); byte red = (byte)(COLOR_OFFSET + ((255 - COLOR_OFFSET) * r.NextDouble())); byte green = (byte)(COLOR_OFFSET + ((255 - COLOR_OFFSET) * r.NextDouble())); byte blue = (byte)(COLOR_OFFSET + ((255 - COLOR_OFFSET) * r.NextDouble())); AirBubbleItem magicDot = new AirBubbleItem(red, green, blue, size); magicDot.X = this.Width * r.NextDouble(); magicDot.Y = useRandom ? this.Height * r.NextDouble() : this.Height; magicDot.CenterX = magicDot.X; magicDot.UpSpeed = UP_SPEED_MIN + (UP_SPEED_MAX - UP_SPEED_MIN) * r.NextDouble(); magicDot.SwingRadius = SWING_RADIUS_MIN + (SWING_RADIUS_MAX - SWING_RADIUS_MIN) * r.NextDouble(); magicDot.SwingSpeed = (int)(SWING_SPEED_MIN + (SWING_SPEED_MAX - SWING_SPEED_MIN) * r.NextDouble()); magicDot.Counter = (int)(180 * r.NextDouble());; magicDot.Run(); _magicDots.Add(magicDot); LayoutRoot.Children.Add(magicDot); } }
void moveMagicDots() { for (int i = _magicDots.Count - 1; i >= 0; i--) { AirBubbleItem magicDot = _magicDots[i]; magicDot.Run(); if (magicDot.Y + DOT_SIZE_MAX < 0) { LayoutRoot.Children.Remove(magicDot); _magicDots.Remove(magicDot); } } addMagicDots(false); }