Example #1
0
        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));
        }
Example #2
0
        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);
                    }
                }
            }
        }
Example #3
0
        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);
        }