Example #1
0
        public override void Update(GameTime gameTime)
        {
            if (!Alive)
            {
                return;
            }

            // movement

            previousPlayerPosition = playerPosition;

            yVelocity        += accelerator;
            playerPosition.Y += yVelocity;

            totalDistance++;
            if (totalDistance >= 100)
            {
                Distance++;
                totalDistance = 0;
            }

            // intersections

            IntersectionLine.PointA = playerPosition;
            IntersectionLine.PointB = new Vector2(playerPosition.X - 7, previousPlayerPosition.Y);

            NotifyAllObservers();

            // trail

            trail.AddVertex(playerPosition.ToPoint());

            // remove non drawable points
            if (trail.VerticesCount > 1)
            {
                if (trail[0].X < 0 && trail[1].X < 0)
                {
                    trail.RemoveVertexAt(0);
                }
            }

            // move trail
            for (int i = 0; i < trail.VerticesCount; i++)
            {
                trail[i] += new Point(-7, 0);
            }

            base.Update(gameTime);
        }