ДействиеСценарий / Говнокод #7360 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
switch (level)
			{
			case 1:
			{
				loadLevel1();
				break;
			}
			case 2:
			{
				loadLevel2();
				break;
			}
			case 3:
			{
				loadLevel3();
				break;
			}
			default:
				loadLevel0();
				break;
			}

Я умею передавать процедурам параметры перед скобкой!

Запостил: Fai Fai, (Updated )

Комментарии (63) RSS

    • Я мелкие игры так и делаю - набор уровней вшит жёстко в код.
      Ответить
      • а у меня для разных игровых поделок сформировалась более-менее стандартная библиотека, и подгружать уровни очень просто
        Ответить
  • игры не пишу, но я так временами делаю в С/С++ что бы в дебагере в стеке быстро видеть по какой ветке я попал в функцию. и по корке тоже быстрее можно сказать где именно прога загнулась.
    Ответить
    • А что, отладчик не запоминает, с какими аргументами была вызвана функция?
      Ответить
      • ну если в объект аргумента влезешь то увидишь. но это же надо лезть. а так сразу видно.
        Ответить
        • Не, в отладчике, когда просишь показать стек вызовов, он тебе сразу и названия функций выводит, и аргументы, с которыми их вызывали.
          По крайней мере, в Дельфи-7 именно так.
          Ответить
          • оно везде так. но. если у тебя аргумент достаточно абстрактный объект (и в ОО коде это норма) то нужно еще долго кликать что бы расковырять что именно это за объект в аргументе. тривиальный свитч-кейс - и хопла все самые важные параметры этого объекта автоматом отражены прямо в стеке (даже если прога для релиза скомпилена). глупый трюк - нужны несколько бесполезных методов-прокладок - но мне нравится.
            Ответить
            • Да, вот чего в Д7 нету - так это функции преобразования объекта в строку (или изображение) специально для отладчика.
              Ответить
                • В Д7 отладчик очень даже нормальный, не надо. Только внутрь with залазить не умеет, а в остальном всё зашибись.
                  Вот в ГНАТ там отладчик это пиздец. Надо отдельно перед стартом программы его включать, да и то, не факт, что включится. И просмотр значений переменных глючит, и просмотр асмокода не работает, и просмотр значения функции не работает.
                  Ответить
                  • >И просмотр значений переменных глючит
                    Прямо как про D7:
                    "Переменную в отладочной версии программы уебал оптимизатор", который ещё и оптимизировать не умеет.
                    Ответить
                    • У меня отлично оптимизирует. Правда я лазарусом пользуюсь.
                      Ответить
                    • > Переменную в отладочной версии программы уебал оптимизатор

                      Нахуя ты отлаживаешь логику в оптимизированной версии, ЛОЛ?
                      Сам виноват, короче.

                      > который ещё и оптимизировать не умеет.

                      Инлайн делать не умеет, вещественные делать не умеет. Зато код, состоящий из целых чисел, оптимизирует очень мощно, всё, что можно, по регистрам распихивает. Руками я выжал только 5% по сравнению с дельфой.
                      Ответить
                      • >Нахуя ты отлаживаешь логику в оптимизированной версии
                        Отключена оптимизация. Дебаг версия же включена.
                        Ответить
                        • > Отключена оптимизация.

                          Если ты отключил оптимизацию, то все переменные показываются.
                          Да, после убирания галочки надо нажимать не ctrl+f9, а alt+p b
                          чтобы перекомпилировать в отладочной версии всю программу, а не только один модуль. Этот прикол я тоже узнал не сразу, долго матерился, когда релизная версия выдавала ошибку отсутствующего файла. Тут косяк, но его просто надо знать.
                          Ответить
                      • >Руками я выжал только 5% по сравнению с дельфой.
                        это только кривыми.
                        Ответить
                        • Я тот код на форуме выкладывал, ускорить не удалось.
                          Ответить
                          • Хрень какая-то. Зачем об оптимизаторе то спорить?
                            Ответить
                    • Да, слава богу. Я в студии обломался на более ранней стадии. Один и тот же код, написанный с нуля вчера (и компилировавшийся), сохранённый на винт, и открытый сегодня, отказался компилироваться из-за непонятных ошибок компилятора типа "linker еггог".
                      Ответить
  • >Я умею передавать процедурам параметры перед скобкой!
    "Я паркуюсь как мудак!"(С)
    Ответить
  • Ну, при нормальном подходе такой ситуации не должно было быть. Было бы что-то типа:
    function levelUp():void {
        this.currentLevel = this.levels[this.current++];
    }
    
    function delevel():void {
        this.currentLevel = this.levels[this.current--];
    }
    . . .
    this.currentLevel.someMethod();

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

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8