Тема: I.D.S. MONSTERS
Показать сообщение отдельно
Старый 26.03.2020, 11:51   #79
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: I.D.S. MONSTERS

Сообщение от ABTOMAT Посмотреть сообщение
https://docs.microsoft.com/ru-ru/dot...eywords/switch

Это оператор для разбора случаев разных значений одной переменной.

switch (переменая)
{
                case 
проверяемоезначение1:

                    
// Делаем дела
                    
break; // Прекращаем проверку, иначе код пойдёт дальше

                
case проверяемоезначение2:

                    
// Делаем дела
                    
break; // Прекращаем проверку

                
default:

                    
// Действия в случае, если не подошёл ни один из вариантов (аналог else)
                    
break; // Прекращаем проверку

Твой код как раз случай из учебника, когда используют switch-case

switch (TotalThreatLevel)
        {
                case 
1:

                    
SetkaScaleZ 11;
                    
SetkaScaleX 11;
                    break;

                case 
2:

                    
SetkaScaleZ 13;
                    
SetkaScaleX 13;
                    break;

                case 
3:

                    
SetkaScaleZ 15;
                    
SetkaScaleX 15;
                    break;

                case 
4:

                    
SetkaScaleZ 19;
                    
SetkaScaleX 19;
                    break;

                case 
5:

                    
SetkaScaleZ 23;
                    
SetkaScaleX 23;
                    break;

                case 
6:

                    
SetkaScaleZ 99;
                    
SetkaScaleX 99;
                    break;

        } 
В Блице, кстати, тоже он был.

Ну в принципе в программировании действует правило "Если работает, то ты уже молодец"
Благодарю. Будем знать. Я правда себя программистом не считаю, им и не являюсь,
по этому многого не знаю. Ну как говорится, был и был в блитце )

Так посмотреть на код, та же жопа, только вид сбоку.
Этакий миницикл. Мне важно понять, в чём преимущество
над моим папуасским говнокодом? Что тут последовательно выполняется
проверка на значение, что в моём случае то же самое.
Или я что-то упускю из виду? А то все эти IF в апдейте всё равно
по очереди исполняются. Особой экономии строк тоже не вижу,
наличие break сводит её на ноль.

Наверно свитчи нужны для каких-то более сложных конструкций?
Просто пока я вижу смысл свитча в том, чтобы остановить последующую проверку,
если мы нашли уже нужное число. Однако в случае поиска среди семи значений,
это сомнительная экономия вычислительной мощности. Я думаю она нужна, для каких-то
расчётов проводящихся в огромном количестве одновременно. В моём случае это разовая
проверка в скрипте.

Но я думаю это знание мне может в будущем пригодится для каких-либо расчётов в скриптах спавнящихся монстров,
так-как монстров будет много на карте, следовательно скрипты будут часто перебирать какие-то переменные.

Добавил: вспомнил где я в блитце использовал свитчи, аш 13 лет назад!
С их помощью я разбивал игру на сцены, нужные функции запускались при определённом
значении переменной, как раз через "case", чтобы делить игру на стартовое меню, и игровой уровень.
В юнити такая нужда отпала, и я собственно благополучно забыл о данной фиче )
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием