Народный учебник по OpenGL


Урок 19. Машина моделирования частиц с использованием полосок из треугольников - часть 15



      // Если клавиша 8 на цифровой клавиатуре нажата и гравитация меньше чем 1.5

      // тогда увеличим притяжение вверх

     

if (keys[VK_NUMPAD8] && (particle[loop].yg<1.5f)) particle[loop].yg+=0.01f;


Эта строка создает точно противоположный эффект. При помощи нажатия 2 на цифровой клавиатуре мы уменьшаем yg, создавая более сильное притяжение вниз.


      // Если клавиша 2 на цифровой клавиатуре нажата и гравитация больше чем -1.5

      // тогда увеличим притяжение вниз

     

if (keys[VK_NUMPAD2] && (particle[loop].yg>-1.5f)) particle[loop].yg-=0.01f;


Теперь мы модифицируем притяжение вправо. Если клавиша 6 на цифровой клавиатуре нажата, то мы увеличиваем притяжение вправо.


      // Если клавиша 6 на цифровой клавиатуре нажата и гравитация меньше чем 1.5

      // тогда увеличим притяжение вправо

     

if (keys[VK_NUMPAD6] && (particle[loop].xg<1.5f)) particle[loop].xg+=0.01f;


Наконец, если клавиша 4  на цифровой клавиатуре нажата, то наша частица будет больше притягиваться влево. Эти клавиши позволяют получить некоторые действительно интересные результаты. Например, Вы сможете сделать поток частиц, стреляющих прямо в воздух. Добавляя немного притяжения вниз, Вы сможете превратить поток частиц в фонтан воды!


      // Если клавиша 4 на цифровой клавиатуре нажата и гравитация больше чем -1.5

      // тогда увеличим притяжение влево

     

if (keys[VK_NUMPAD4] && (particle[loop].xg>-1.5f)) particle[loop].xg-=0.01f;


Я добавил этот небольшой код только для развлечения. Мой брат думает, что взрыв интересный эффект :). При помощи нажатия клавиши табуляции все частицы будут отброшены назад к центру экрана. Скорость перемещения частиц будет еще раз умножена на 10, создавая большой взрыв частиц. После того, как частицы взрыва постепенно исчезнут, появиться предыдущий столб частиц.


      if (keys[VK_TAB]) // Клавиша табуляции вызывает взрыв

     

{

       

particle[loop].x=0.0f; // Центр по оси X




Начало  Назад  Вперед



Книжный магазин