private void Walk(BaseEnemy enemy, BaseVerticalShooter.GameModel.IBaseMap gameMap, TimeSpan t)
        {
            var candidateWindowPosition =
                enemy.OnWindowPosition
                + enemy.Direction * (float)t.TotalSeconds * enemy.PixelsPerSec;
            var mapCollisionType = enemy.CheckMapCollision(gameMap, candidateWindowPosition);

            if (mapCollisionType != CollisionType.Blocked)
            {
                enemy.OnWindowPosition = candidateWindowPosition;
            }
            else
            {
                Vector2 newDirection = enemy.Direction;
                newDirection    = GetDirectionAfterCollision(enemy);
                enemy.Direction = newDirection;
            }
        }