/// <summary> /// /// Create an Agent. /// All Agents are collidable and have a single instance Object3D named agentObject. /// Set StepSize, create first, follow and above cameras. /// Set first as agentCamera /// /// </summary> public Agent(Stage stage, string label, Vector3 position, Vector3 orientAxis, float radians, string meshFile) : base(stage, label, meshFile) { AddObject(position, orientAxis, radians); agentObject = instance.First<Object3D>(); // create 3 cameras first = new Camera(stage, agentObject, Camera.CameraEnum.FirstCamera); follow = new Camera(stage, agentObject, Camera.CameraEnum.FollowCamera); above = new Camera(stage, agentObject, Camera.CameraEnum.AboveCamera); // add 3 cameras to Stage stage.AddCamera(first); stage.AddCamera(follow); stage.AddCamera(above); // initialize the first camera agentCamera = first; taggedTreasures = 0; }
/// <summary> /// Changing camera view for Agents will always set YonFlag false /// and provide a clipped view. /// </summary> public void NextCamera() { cameraIndex = (cameraIndex + 1) % camera.Count; currentCamera = camera[cameraIndex]; // set the appropriate projection matrix YonFlag = false; SetProjection(farYon); if (cameraIndex == 1 || cameraIndex == 2 || cameraIndex == 3) { if (flockIndex == 0) gameMode = GameMode.AGENT_FLOCKING_0; else if (flockIndex == 1) gameMode = GameMode.AGENT_FLOCKING_33; else if (flockIndex == 2) gameMode = GameMode.AGENT_FLOCKING_67; } else if (cameraIndex == 4 || cameraIndex == 5 || cameraIndex == 6) { gameMode = npAgent.NPAgentGameMode; } else { gameMode = GameMode.MAP_TOP_DOWN; } }
/// <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. /// </summary> protected override void LoadContent() { // initialize graphic components display = graphics.GraphicsDevice; effect = new BasicEffect(display); SetUpInspector(); SetUpBlending(); // create and add stage components // You must have a TopDownCamera, BoundingSphere3D, Terrain, and Agent 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); // load bounding sphere and way point models boundingSphere3D = Content.Load<Model>("boundingSphereV3"); wayPoint3D = Content.Load<Model>("100x50x100Marker"); // create required entities collidable = new List<Object3D>(); terrain = new Terrain(this, "terrain", "heightTexture", "colorTexture"); Components.Add(terrain); // add players and treasures CreatePlayerAndNpAgent(); CreateTreasures(); CreatePackOfDogs(); fontPos = new Vector2(graphics.GraphicsDevice.Viewport.Width / 2, graphics.GraphicsDevice.Viewport.Height / 2 + 100); winnerFontPos = new Vector2(graphics.GraphicsDevice.Viewport.Width / 2, graphics.GraphicsDevice.Viewport.Height / 2 - 200); }
public void AddCamera(Camera aCamera) { camera.Add(aCamera); cameraIndex++; }