Esempio n. 1
0
        public override void Redraw(float currentTime, float elapsedTime)
        {
            // selected vehicle (user can mouse click to select another)
            IVehicle selected = Demo.SelectedVehicle;

            // vehicle nearest mouse (to be highlighted)
            IVehicle nearMouse = Demo.VehicleNearestToMouse();

            // update camera
            Demo.UpdateCamera(elapsedTime, selected);

            // draw "ground plane" centered between base and selected vehicle
            Vector3 goalOffset    = Globals.HomeBaseCenter - Demo.Camera.Position;
            Vector3 goalDirection = Vector3.Normalize(goalOffset);
            Vector3 cameraForward = Demo.Camera.xxxls().Forward;
            float   goalDot       = Vector3.Dot(cameraForward, goalDirection);
            float   blend         = Utilities.RemapIntervalClip(goalDot, 1, 0, 0.5f, 0);
            Vector3 gridCenter    = Vector3.Lerp(selected.Position, Globals.HomeBaseCenter, blend);

            Demo.GridUtility(gridCenter);

            // draw the seeker, obstacles and home base
            CtfSeeker.Draw();
            DrawObstacles();
            DrawHomeBase();

            // draw each enemy
            foreach (CtfEnemy enemy in CtfEnemies)
            {
                enemy.Draw();
            }

            // highlight vehicle nearest mouse
            Demo.HighlightVehicleUtility(nearMouse);
        }