/// <summary> /// Initializes the renderer for a new game. /// </summary> /// <param name="Graphics"></param> public void Initialize(GraphicsDevice Graphics) { MapRenderTarget = new SpriteBatch(Graphics); this.Graphics = Graphics; GoldFadeAnimators = new Dictionary <int, StateAnimator>(); BatFadeAnimators = new Dictionary <int, StateAnimator>(); CamZoomAnimator = new StateAnimator( pct => (float)pct.Scale(0, 1, DefaultCamZoom, TrappedInPitCamZoom), pct => (float)pct.Scale(0, 1, TrappedInPitCamZoom, DefaultCamZoom), 1.2); OverriddenCameraZoom = null; Viewport RenderViewport = Graphics.Viewport; VirtualViewSize = new Vector2(RenderViewport.AspectRatio * VirtualViewHeight, VirtualViewHeight); this.MapCam = new Camera2D(this.VirtualViewSize, RenderViewport) { Zoom = DefaultCamZoom }; BackgroundTiles = new TiledTexture(BackgroundTexture, MapCam); Player = new Sprite2D(PlayerTexture) { RenderWidth = (PlayerHeight / (double)PlayerTexture.Height * PlayerTexture.Width).ToInt(), RenderHeight = PlayerHeight }; // Must set this after initial player creation so that // the player's width/height can be accessed Player.Position = GetPlayerTargetPosition(); Player.Initialize(); Player.AddAnimation(AnimationType.MoveToNewRoom, new SpriteMoveAnimation(dist => dist / 300f)); Player.StartAnimation(AnimationType.MoveToNewRoom); Wumpus = new Sprite2D(WumpusTexture) { RenderWidth = (WumpusHeight / (double)WumpusTexture.Height * WumpusTexture.Width).ToInt(), RenderHeight = WumpusHeight }; Wumpus.Initialize(); UpdateCamera(); BackFogSystem = new ParticleSystem.FogOfWar(CloudTextures, MapCam); FrontFogSystem = new ParticleSystem.FogOfWar(CloudTextures, MapCam); FrontFogSystem.Opacity = 0f; BackFogSystem.Initialize(); FrontFogSystem.Initialize(); }
public void Initialize() { // Create the sprites for the Wumpus and character PlayerCharacter = new Sprite2D(PlayerTexture, Scale: 0.1f); Wumpus = new Sprite2D(WumpusTexture, Scale: 0.1f); PlayerCharacter.CenterOrigin(); Wumpus.CenterOrigin(); // Add the movement animations to make it less abrupt PlayerCharacter.AddAnimation(AnimationType.MoveToNewMenuTile, new SpriteMoveAnimation(dist => dist / 75f)); Wumpus.AddAnimation(AnimationType.MoveToNewMenuTile, new SpriteMoveAnimation(dist => dist / 75f)); // Initialize the animations PlayerCharacter.Initialize(); Wumpus.Initialize(); // Start the animations PlayerCharacter.StartAnimation(AnimationType.MoveToNewMenuTile); Wumpus.StartAnimation(AnimationType.MoveToNewMenuTile); }