private SpriteWithDirectionsRenderer CreateSprite(EnemyTypeEnum settingsEnemyType) { var spriteWithDirections = new SpriteWithDirections { Sprites = new Dictionary <SpriteDirectionEnum, SpriteDetails> { { SpriteDirectionEnum.BottomLeft, _spriteSheets.GetSprite(SpriteEnum.VehicleVanBottomLeft) }, { SpriteDirectionEnum.BottomRight, _spriteSheets.GetSprite(SpriteEnum.VehicleVanBottomRight) }, { SpriteDirectionEnum.TopLeft, _spriteSheets.GetSprite(SpriteEnum.VehicleVanTopLeft) }, { SpriteDirectionEnum.TopRight, _spriteSheets.GetSprite(SpriteEnum.VehicleVanTopRight) } } }; return(new SpriteWithDirectionsRenderer(spriteWithDirections)); }
public override void Render(BufferedGraphics graphics) { for (int y = 0; y < _map.Layout.GetLength(0); y++) { for (int x = _map.Layout.GetLength(1) - 1; x >= 0; x--) { SpriteEnum sprinteEnum = _map.Layout[y, x]; SpriteDetails sprite = _spriteSheets.GetSprite(sprinteEnum); if (sprite != null) { // This is the point where the sprite should be painted. Point pointOnScreen = GraphicsHelper.ConvertMapCoordsToWindowCoords(x, y, _graphicsTracker.MapOffset); // Calculate the anchor location of the sprite. var anchor = new Point(sprite.Location.X + sprite.Location.Width / 2, sprite.Location.Y + sprite.Location.Height - 32); int xx = anchor.X - sprite.Location.X; int yy = anchor.Y - sprite.Location.Y; Point realPoint = new Point(pointOnScreen.X - xx, pointOnScreen.Y - yy); graphics.Graphics.DrawImage(sprite.Bitmap, realPoint); graphics.Graphics.DrawString(y + "," + x, _fontsAndColors.MonospaceFontSmaller, _fontsAndColors.BlackBrush, pointOnScreen); } } } }
public TowerBase(TowerSettings settings, GameLevelTime gameLevelTime, GameLevel gameLevel, GraphicsTracker graphicsTracker, SpriteSheets spriteSheets, InputManager inputManager) { _shootLimiter = new GameLevelActionLimiter(gameLevelTime, settings.ShootFrequency); Settings = settings; _gameLevel = gameLevel; _graphicsTracker = graphicsTracker; _inputManager = inputManager; // TODO: Create sprite without direction. var spr = new SpriteWithDirections { Sprites = new Dictionary <SpriteDirectionEnum, SpriteDetails> { { SpriteDirectionEnum.BottomLeft, spriteSheets.GetSprite(SpriteEnum.Tower) }, { SpriteDirectionEnum.BottomRight, spriteSheets.GetSprite(SpriteEnum.Tower) }, { SpriteDirectionEnum.TopLeft, spriteSheets.GetSprite(SpriteEnum.Tower) }, { SpriteDirectionEnum.TopRight, spriteSheets.GetSprite(SpriteEnum.Tower) } } }; _sprite = new SpriteWithDirectionsRenderer(spr); }