protected override void Update(TimeSpan gameTime)
        {
            var deltaTime = (float)gameTime.TotalSeconds;

            foreach (var elementTransform in this.onSceenEntities.ToList())
            {
                elementTransform.Position += this.LinearVelocity * deltaTime;

                if (this.IsOutOfScreen(elementTransform.Position))
                {
                    this.RemoveElementFromScreen(elementTransform);
                }
            }

            this.lastAparitionCounter += gameTime;
            if (this.lastAparitionCounter >= this.apparitionInterval)
            {
                this.lastAparitionCounter = TimeSpan.Zero;

                var distanceAmount = 1f / (this.numElements - 1);
                var rndPosition    = (float)randomService.NextDouble() * distanceAmount;
                for (int i = 0; i < this.numElements; i++)
                {
                    var position = Vector2.Lerp(this.startPoint, this.endPoint, rndPosition);
                    rndPosition += distanceAmount;
                    this.AddElementFromPool(position);
                }
            }
        }
Example #2
0
        private void AddNewLine()
        {
            l.StartPoint = new Vector3((float)random.NextDouble() * size * (float)Math.Pow(-1, random.Next()),
                                       (float)random.NextDouble() * size * (float)Math.Pow(-1, random.Next()),
                                       (float)random.NextDouble() * size * (float)Math.Pow(-1, random.Next()));

            l.EndPoint = new Vector3((float)random.NextDouble() * size * (float)Math.Pow(-1, random.Next()),
                                     (float)random.NextDouble() * size * (float)Math.Pow(-1, random.Next()),
                                     (float)random.NextDouble() * size * (float)Math.Pow(-1, random.Next()));

            l.Color = new Color((float)random.NextDouble(), (float)random.NextDouble(), (float)random.NextDouble());

            lines.Add(l);
        }