1. C++ / Говнокод #7262

    +171

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    void PauseSoundSwicher(EventReceiver &ER)
    			{
    				//алгоритм кудрявый, но иначе кормальной работы паузы добится не удалось
    				//klavishUP, klavishUP2 - контролируют момент отпускания клавишы до и после включения паузы
    				if(ER.IsKeyDown(irr::KEY_SPACE)==true&&PauseSwitch==false&&klavishUP2==true)PauseSwitch=true, klavishUP=false,this->AllStop();
    				if(ER.IsKeyDown(irr::KEY_SPACE)==false&&PauseSwitch==true&&klavishUP==false)klavishUP=true;
    				if(ER.IsKeyDown(irr::KEY_SPACE)==true&&PauseSwitch==true&&klavishUP==true)PauseSwitch=false, klavishUP2=false, this->AllStart();
    				if(ER.IsKeyDown(irr::KEY_SPACE)==false&&klavishUP2==false&&PauseSwitch==false)klavishUP2=true;
    				//
    				if(ER.IsKeyDown(irr::KEY_KEY_Z)==true&&SoundSwitch==true&&clavishUP2==true)SoundSwitch=false, clavishUP=false,SoundEngine->setSoundVolume(0);
    				if(ER.IsKeyDown(irr::KEY_KEY_Z)==false&&SoundSwitch==false&&clavishUP==false)clavishUP=true;
    				if(ER.IsKeyDown(irr::KEY_KEY_Z)==true&&SoundSwitch==false&&clavishUP==true)SoundSwitch=true, clavishUP2=false, SoundEngine->setSoundVolume(1);
    	     		if(ER.IsKeyDown(irr::KEY_KEY_Z)==false&&clavishUP2==false&&SoundSwitch==true)clavishUP2=true;
    			}

    ДОБРО ПОЖАЛОВАТЬ В МИР БОЛИ!!!!

    Запостил: Psionic, 16 Июля 2011

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

    • показать все, что скрытоКакой же неудобный этот C++. Даже логического типа нет. Приходится значения сравнивать с true и false.
      Ответить
      • > логического типа нет
        > true и false

        не находите противоречия?
        Ответить
      • Да, С++ - это мир боли. Как армия или тюрьма. И так же, как и с армией и тюрьмой, все, кто прошли это, говорят, что все остальные тоже должны пройти, иначе не мужик/не программист итд.
        Ответить
        • показать все, что скрытоCPPGovno?
          Ответить
        • Тарас, ты не мужик. С++ то не знаешь.
          Ответить
        • скорее есть два типа с++. один с++ -- нормальный, который используется в продакшне (грубо говоря, просто Си с классами).
          второй с++ -- студенческо-говнокодерский, где на каждый чих делается пять шаблонов и три хака основанных на примечании маленькими буквами где-то в стандарта в последней главе.
          Армия и тюоьма -- это второй вид с++. Я его особо не проходил, так что я не совсем мужик :)
          Я и паскаля/дельфи-то не касался никогда (и счастлив).
          Ответить
          • очень хотелось бы увидеть студента который может написать шаблон на С++. покажите плз. обычно 95% С++ программистов под шаблонами понимают СТЛ и не знают как он работает.
            Ответить
    • Батхёрт и пейн.
      Ответить
    • Для борьбы с "кудрявыми" алгоритмами существует несколько видов эпиляции...
      Ответить
    • геймдев такой геймдев. судя по всему
      Ответить
    • показать все, что скрытопиписюнчик
      Ответить
    • (удалено)
      Ответить
    • бля, каникулы начались, сезон трололо открыт
      Ответить
    • показать все, что скрытожопа
      Ответить
    • откуда это если не секрет?
      Ответить
      • не скажу. секрет
        Ответить
      • Из моего конкурсного задания - как ни странно с эти чудом я прошел финальнуюю часть (эта реализация игры вошла в ТОП 25)
        Ответить
        • > klavish
          от глагола клавить?
          Ответить
          • klavishUP, klavishUP2 - это переменные фиксирующие моменты отпускания клавиш (стандартные средства движка с которым я работал фиксируюют лиш моменты удержания клавиш)
            Ответить
          • от сущ. клаван
            Ответить
    • C++Govno. Уже зарыгался. Ждите меня.
      Ответить
    • Аргумент про сравнение с true и false заминусовали, поэтому больше про true и false ни слова.

      Два вопроса:
      1. Зачем в обработчике ER.IsKeyDown(irr::KEY_SPACE) вызывается четыре раза подряд (и аналогичная функция тоже)?

      2. Может так случиться, что this->AllStop() и this->AllStart() выполнятся подряд в одном вызове обработчика. Есть ли смысл их вызывать подряд?
      Ответить
      • 2) this->AllStop() и this->AllStart() это поствить игру на паузу/снять игру с паузы - если вызвать их подряд игрок ничего не заметит.
        1)ER.IsKeyDown(irr::KEY_SPACE) - это метод движка, он возвращает тру пока irr::KEY_кнопка нажата, если отпущенна то фалс. Но уровень нажата/не нажата меня тогда не устраивал, нужно было фиксировать сам момент нажатия и отпускания, клавишАПы я создавал именно для этого, если посмотреть в тело Ифа то там они зменяются в моменты ключевые моменты.
        Ответить
        • !По факту

          первый иф(нажали клавишупаузы и переменная что нажали один раз и неотпустили) ставить игру на паузу;
          втарой иф(опустили клавишу и игра на паузе) ставим что клавиша отпущена; //игра на паузе
          Третий иф(снова нажата пауза и игра на паузе и нажатие ставившие на паузы прекаращено)снимаем игру с паузы;
          четвертый иф(пауза не нажата и гра не на паузе)ставим что клавишу отпустили

          //вот ка породил ээто мой моск!
          Ответить
    • показать все, что скрытоvanished
      Ответить

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