Среда, 24 Апреля 2024, 21:30

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Записи участника » ProFiLeR [32]
Результаты поиска
ProFiLeRДата: Воскресенье, 06 Февраля 2011, 18:02 | Сообщение # 21 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
Quote (thitem)
Исправил? Работает?

ДААААААААААААААААААААААААААААААААААА ЗАРАБОТАЛО ТАКИ БЫЛА ОПЕЧАТКА В СРАВНЕНИИ

да но теперь он все по координате Z не ставит на нужное место жп полная =)





Сообщение отредактировал ProFiLeR - Воскресенье, 06 Февраля 2011, 18:03
ProFiLeRДата: Воскресенье, 06 Февраля 2011, 17:59 | Сообщение # 22 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
Quote (ezhickovich)
сравение.

да я имелл ввиду сравнение

VBO???="что такое VBO ???";

Добавлено (06.02.2011, 17:59)
---------------------------------------------
ДААААААААААААААААААААААААААААААААААА ЗАРАБОТАЛО ТАКИ БЫЛА ОПЕЧАТКА В СРАВНЕНИИ



ProFiLeRДата: Воскресенье, 06 Февраля 2011, 17:43 | Сообщение # 23 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
эм... int random=1; тоже не помогло

VBO???

Добавлено (06.02.2011, 17:43)
---------------------------------------------
pushmatrix и pop тоже не помогли



ProFiLeRДата: Воскресенье, 06 Февраля 2011, 17:26 | Сообщение # 24 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
нет, самих кубиков не наблюдается хотя если просто поставить куб в позицию
Code
       draw_cube(  10, 15, 1,
                     50,
                     xtrans, ytrans, ztrans,
                     lookupdown, sceneroty);

то этот куб рендерится

получается в моей функции спасибо xtrans, ytrans, ztrans, исспользуются глобальные координаты а не локальные

Добавлено (06.02.2011, 17:26)
---------------------------------------------
если же вместо

Code
       draw_cube(  10, 15, 1,  
                      50,  
                      xtrans, ytrans, ztrans,  
                      lookupdown, sceneroty);

написать

Code
       draw_cube(  10, 15, 1,  
                      50,  
                      0, 0, 0,  
                      lookupdown, sceneroty);

то это будут локальные координаты





Сообщение отредактировал ProFiLeR - Воскресенье, 06 Февраля 2011, 17:23
ProFiLeRДата: Воскресенье, 06 Февраля 2011, 17:04 | Сообщение # 25 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
неа, не работает


ProFiLeRДата: Воскресенье, 06 Февраля 2011, 16:23 | Сообщение # 26 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
Code
void draw_cube(GLfloat x,GLfloat y,GLfloat z,GLfloat h,GLfloat xtrans,GLfloat ytrans,GLfloat ztrans,GLfloat lookupdown,GLfloat sceneroty)
{
  glRotatef(lookupdown,1.0f,0,0);
  glRotatef(sceneroty,0,1.0f,0);
  glTranslatef(xtrans, ytrans, ztrans);
  glBindTexture(GL_TEXTURE_2D, texture[1]);
     glColor4f(255,255,255,1.0);

  glBegin(GL_QUADS);                      // Рисуем куб

         glTexCoord2f(0.0f, 0.0f); glVertex3f(x+h,      y+h,      z+(-h));          // Право верх квадрата (Верх)
         glTexCoord2f(h, 0.0f);    glVertex3f(x+(-h),   y+h,      z+(-h));          // Лево верх
         glTexCoord2f(h, h);       glVertex3f(x+(-h),   y+h,      z+h);          // Лево низ
         glTexCoord2f(0.0f, h);    glVertex3f(x+h,      y+h,      z+h);          // Право низ

         glTexCoord2f(h, 0.0f);    glVertex3f(x+h,      y+(-h),   z+h);          // Верх право квадрата (Низ)
         glTexCoord2f(h, h);       glVertex3f(x+(-h),   y+(-h),   z+h);          // Верх лево
         glTexCoord2f(0.0f, h);    glVertex3f(x+(-h),   y+(-h),   z+(-h));          // Низ лево
         glTexCoord2f(0.0f, 0.0f); glVertex3f(x+h,      y+(-h),   z+(-h));          // Низ право

         glTexCoord2f(0.0f, h);    glVertex3f(x+h,      y+h,      z+h);          // Верх право квадрата (Перед)
         glTexCoord2f(0.0f, 0.0f); glVertex3f(x+(-h),   y+h,      z+h);          // Верх лево
         glTexCoord2f(h, 0.0f);    glVertex3f(x+(-h),   y+(-h),   z+h);          // Низ лево
         glTexCoord2f(h, h);       glVertex3f(x+h,      y+(-h),   z+h);          // Низ право

         glTexCoord2f(h, h);       glVertex3f(x+h,      y+(-h),   z+(-h));          // Верх право квадрата (Зад)
         glTexCoord2f(0.0f, h);    glVertex3f(x+(-h),   y+(-h),   z+(-h));          // Верх лево
         glTexCoord2f(0.0f, 0.0f); glVertex3f(x+(-h),   y+h,      z+(-h));          // Низ лево
         glTexCoord2f(h, 0.0f);    glVertex3f(x+h,      y+h,      z+(-h));          // Низ право

         glTexCoord2f(h, 0.0f);    glVertex3f(x+(-h),   y+h,      z+h);          // Верх право квадрата (Лево)
         glTexCoord2f(h, h);       glVertex3f(x+(-h),   y+h,      z+(-h));          // Верх лево
         glTexCoord2f(0.0f, h);    glVertex3f(x+(-h),   y+(-h),   z+(-h));          // Низ лево
         glTexCoord2f(0.0f, 0.0f); glVertex3f(x+(-h),   y+(-h),   z+h);          // Низ право

         glTexCoord2f(0.0f, 0.0f); glVertex3f(x+h,      y+h,      z+(-h));          // Верх право квадрата (Право)
         glTexCoord2f(h, 0.0f);    glVertex3f(x+h,      y+h,      z+h);          // Верх лево
         glTexCoord2f(h, h);       glVertex3f(x+h,      y+(-h),   z+h);          // Низ лево
         glTexCoord2f(0.0f, h);    glVertex3f(x+h,      y+(-h),   z+(-h));          // Низ право
  glEnd();                    // Закончили квадраты

}





Сообщение отредактировал ProFiLeR - Воскресенье, 06 Февраля 2011, 16:23
ProFiLeRДата: Воскресенье, 06 Февраля 2011, 15:27 | Сообщение # 27 | Тема: C++ Проблема с генератором уровней
частый гость
Сейчас нет на сайте
я написал генератор уровней (кубиками)

вот код

Code
    int bZL = 0;
   if(first==true)
   {
    for (int bXL = 0; bXL < 32; ++bXL)
    {
     for (int bYL = 0; bYL < 512; ++bYL)
     {
      if(bYL<<230){block_pos[bXL][bYL][bZL]=1;}
      if(bYL>>240&&bYL<<242)
      {
       int random=rand()%1+0;
       if(random==1)
       {block_pos[bXL][bYL][bZL]=1;}

       if(random==0)
       {block_pos[bXL][bYL][bZL]=0;}
      }
     }

     if(bXL==32)
     {
      bXL=0;
      ++bZL;
     }
    }
    first=false;
   }

рендер уровня происходит по такому же принцыпу

вот код

Code
  bZL = 0;

    for (int bXL = 0; bXL < 32; ++bXL)
    {
     for (int bYL = 0; bYL < 512; ++bYL)
     {
      if(block_pos[bXL][bYL][bZL]==1)
      {
        draw_cube(  bXL, bYL, bZL,
           1,   
           xtrans, ytrans, ztrans,
           lookupdown, sceneroty);
      }
        
     }

     if(bXL==32)
     {
      bXL=0;
      ++bZL;
     }
    }

draw_cube - функция рисования куба

управление клавой (мышь сам писал) взято из 10-того урока NeHe

по дебаг скрину видно что моя позиция меняется(когда я хожу)
но кубы не рендерятся
хотя если заменить код рендера или написать после рендеркода это

Code
  draw_cube(  0, 0, 0,
       1,   
       xtrans, ytrans, ztrans,
       lookupdown, sceneroty);

то в позиции [0,0,0] создается куб
если кто-то разберется в моём коде то он гений или я очень 'просто' пишу код

заранее спасибо





Сообщение отредактировал ProFiLeR - Воскресенье, 06 Февраля 2011, 15:27
ProFiLeRДата: Воскресенье, 06 Февраля 2011, 10:57 | Сообщение # 28 | Тема: Подскажите физические движки
частый гость
Сейчас нет на сайте
нет, я сделаю трехмерный array с проверкой стоить ли игрок на блоке или на обьекте


ProFiLeRДата: Суббота, 05 Февраля 2011, 09:41 | Сообщение # 29 | Тема: Подскажите физические движки
частый гость
Сейчас нет на сайте
я так подумал, что самому это не сделать, так как, требуется создавать, туннели на карте, тоесть игрок будит ходить не просто по поверхности карты а в нее входить, блин это просто ужас


ProFiLeRДата: Пятница, 04 Февраля 2011, 22:20 | Сообщение # 30 | Тема: Подскажите физические движки
частый гость
Сейчас нет на сайте
Quote (lorenze)
конечно можно заморочится

тоесть смысла нету надо просто написать алгоритмы чтобы игрок ходил по заданым координатам(по наклонным плоскостям) и не падал скводь обьект?
очень интересно, спасибо, я наверное действительно не стану брать целый физический движок а просто напишу функции



ProFiLeRДата: Пятница, 04 Февраля 2011, 21:49 | Сообщение # 31 | Тема: Подскажите физические движки
частый гость
Сейчас нет на сайте
2GECK
новая коллизия (чтобы игрок мог ходить а не висел в воздухе)
2noTformaT
ну я имелл ввиду что создание граней было как в обычном OGL



ProFiLeRДата: Пятница, 04 Февраля 2011, 21:15 | Сообщение # 32 | Тема: Подскажите физические движки
частый гость
Сейчас нет на сайте
Я раньше писал программы, теперь я хочу занятся геймдевом
работаю в OGL
написал управление (клава и мышь), убирание невидимых граней,
очень интересует можно ли найти физический движок без изменения в программе

к примеру я делаю игру с прямым изменением в карте
можно ли исспользовать box colide или что-то в роде mesh colide c plane'aми в opengl

на скрине ты типа берешь лопату и выбиваешь угол, можно его вверх или вниз опускать
и физика сразу находит что я опустил или поднял и просчитывает коллизию игрока с полом

желательно дать физ движок легкий, с примерами



Форум игроделов » Записи участника » ProFiLeR [32]
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг