Esempio n. 1
0
 /// <summary>
 /// Changing camera view for Agents will always set YonFlag false
 /// and provide a clipped view.
 /// 'x' selects the previous camera
 /// 'c' selects the next camera
 /// </summary>
 public void setCamera(int direction)
 {
     cameraIndex = (cameraIndex + direction);
     if (cameraIndex == camera.Count) cameraIndex = 0;
     if (cameraIndex < 0) cameraIndex = camera.Count - 1;
     currentCamera = camera[cameraIndex];
     // set the appropriate projection matrix
     YonFlag = false;
     setProjection(farYon);
 }
Esempio n. 2
0
        /// <summary>
        /// Set GraphicDevice display and rendering BasicEffect effect.  
        /// Create SpriteBatch, font, and font positions.
        /// Creates the traceViewport to display information and the sceneViewport
        /// to render the environment.
        /// Create and add all DrawableGameComponents and Cameras.
        /// First, add all required contest:  Inspector, Cameras, Terrain, Agents
        /// Second, add all optional (scene specific) content
        /// </summary>
        protected override void LoadContent()
        {
            display = graphics.GraphicsDevice;
            effect = new BasicEffect(display);
            // Set up Inspector display
            spriteBatch = new SpriteBatch(display);      // Create a new SpriteBatch
            inspectorFont = Content.Load<SpriteFont>("Consolas");    // Windows XNA && MonoGames
            // viewports
            defaultViewport = GraphicsDevice.Viewport;
            inspectorViewport = defaultViewport;
            sceneViewport = defaultViewport;
            inspectorViewport.Height = InfoPaneSize * inspectorFont.LineSpacing;
            inspectorProjection = Matrix.CreatePerspectiveFieldOfView((float)Math.PI / 4.0f,
               inspectorViewport.Width / inspectorViewport.Height, 1.0f, 200.0f);
            sceneViewport.Height = defaultViewport.Height - inspectorViewport.Height;
            sceneViewport.Y = inspectorViewport.Height;
            sceneProjection = Matrix.CreatePerspectiveFieldOfView((float)Math.PI / 4.0f,
               sceneViewport.Width / sceneViewport.Height, 1.0f, 1000.0f);
            // create Inspector display
            Texture2D inspectorBackground = Content.Load<Texture2D>("inspectorBackground");
            inspector = new Inspector(display, inspectorViewport, inspectorFont, Color.Black, inspectorBackground);
            // create information display strings
            // help strings
            inspector.setInfo(0, "AGMGSKv6 -- Academic Graphics MonoGames/XNA Starter Kit for CSUN Comp 565 assignments.");
            inspector.setInfo(1, "Press keyboard for input (not case sensitive 'H' || 'h')");
            inspector.setInfo(2, "Inspector toggles:  'H' help or info   'M'  matrix or info   'I'  displays next info pane.");
            inspector.setInfo(3, "Arrow keys move the player in, out, left, or right.  'R' resets player to initial orientation.");
            inspector.setInfo(4, "Stage toggles:  'B' bounding spheres, 'C' || 'X' cameras, 'F' fog, 'T' updates, 'Y' yon");
            // initialize empty info strings
            for (int i = 5; i < 20; i++) inspector.setInfo(i, "  ");
            // set blending for bounding sphere drawing
            blending = new BlendState();
            blending.ColorSourceBlend = Blend.SourceAlpha;
            blending.ColorDestinationBlend = Blend.InverseSourceAlpha;
            blending.ColorBlendFunction = BlendFunction.Add;
            notBlending = new BlendState();
            notBlending = display.BlendState;
            // Create and add stage components
            // You must have a TopDownCamera, BoundingSphere3D, WayPoint3D, Terrain, and Agents (player, npAgent) in your stage!
            // Place objects at a position, provide rotation axis and rotation radians.
            // All location vectors are specified relative to the center of the stage.
            // Create a top-down "Whole stage" camera view, make it first camera in collection.
            topDownCamera = new Camera(this, Camera.CameraEnum.TopDownCamera);
            camera.Add(topDownCamera);
            // Set initial camera and projection matrix
            setCamera(0);  // select the first camera

            boundingSphere3D = Content.Load<Model>("boundingSphereV3");

            wayPoint3D = Content.Load<Model>("100x50x100Marker");				// model for navigation node display

            // Create required entities:
            collidable = new List<Object3D>();  // collection of objects to test for collisions
            terrain = new Terrain(this, "terrain", "heightTexture", "colorTexture");
            Components.Add(terrain);

            //Add treasure locations and meshes to map (this needs to be done before agent loads)
            treasure = new TreasureList(this, "TreasureList", "tea", false);
            Components.Add(treasure);

            // create walls for navigation algorithms
            Wall wall = new Wall(this, "wall", "100x100x100Brick");
            Components.Add(wall);

            //Create Moon Base Alpha
            EyeCandy_MoonBaseAlpha mba = new EyeCandy_MoonBaseAlpha(this, "mba", "MoonBaseAlpha", true);
            Components.Add(mba);

            //Create Rocket
            EyeCandy_Rocket rocket = new EyeCandy_Rocket(this, "rocket", "Rocket_jwf", true);
            Components.Add(rocket);

            // Load Agent mesh objects, meshes do not have textures
            npAgent = new NPAgent(this, "Evader",
            new Vector3(490 * spacing, terrain.surfaceHeight(490, 450), 450 * spacing),
            new Vector3(0, 1, 0), 0.0f, "magentaAvatarV6", treasure, true);
            Components.Add(npAgent);

            player = new Player(this, "Chaser",
               new Vector3(510 * spacing, terrain.surfaceHeight(510, 507), 507 * spacing),
               new Vector3(0, 1, 0), 0.78f, "redAvatarV6", treasure, true);
            Components.Add(player);

            // create a Pack of aliens
            pack = new Pack(this, "alien", "dogV6", 450, 430, player.Instance[0], true);
            Components.Add(pack);

            // create 20 clouds
            Cloud cloud = new Cloud(this, "cloud", "cloudV3", 1);
            Components.Add(cloud);
        }
Esempio n. 3
0
 public void addCamera(Camera aCamera)
 {
     camera.Add(aCamera);
     cameraIndex++;
 }