PMG
http://forum.pmg.org.ru/

Создание Редактора карт.
http://forum.pmg.org.ru/viewtopic.php?f=1&t=333
Страница 1 из 1

Автор:  Shisholik [ 09 мар 2006 14:11 ]
Заголовок сообщения:  Создание Редактора карт.

Доброго времени суток. Я делаю собственную игру на OGL. Я хочу сделать редактор карт и сам файл карт. Так как игра будет на подобии GTA:SA(Mafia) мне надо будет как-то указывать кординаты для каждого объекта, как это сделать?

Автор:  MagicWolf [ 10 мар 2006 10:06 ]
Заголовок сообщения: 

А в чем проблема? Позиционируешь курсор на карте и запоминаешь координаты. Можно вводить или поправить координаты в ручную.

Автор:  Shisholik [ 10 мар 2006 20:50 ]
Заголовок сообщения: 

Я имею в виду что если я буду поворачивать объект у меня будут большие глюки. Переносить без глюков научился

Автор:  Woland [ 12 мар 2006 23:13 ]
Заголовок сообщения: 

Хм-м, хочется помочь, но я не понимаю в чем проблема - в создании и функционировании редактора или сохранении координат объекта? А координаты для объекта можно задать 6-ю пременными: x, y, z, и три угла поворота относительно осей Ox, Oy, Oz...

Автор:  MagicWolf [ 13 мар 2006 09:58 ]
Заголовок сообщения: 

Я тоже не понял. :?

Автор:  NetLib [ 13 мар 2006 19:20 ]
Заголовок сообщения: 

Непонятно какие глюки возникают при повороте объекта - это ведь элементарная операция умножения матриц. Разве что матрицы неправильные.

Автор:  Shisholik [ 14 мар 2006 13:38 ]
Заголовок сообщения: 

Если я поворачиваю один объект автоматически поворачиваются и другие.

Автор:  MagicWolf [ 14 мар 2006 16:24 ]
Заголовок сообщения: 

Э, понял. Надо пользоваться glPushMatrix/glPopMatrix.

Код:
  glRotatef(angle[1],0.0,1.0,0.0);

  polygons_draw.init(&cfg_polygons,count_points[0],points_polygons[0]);
  glPushMatrix();
    glScalef(5.0,0.1,5.0);
    polygons_draw.draw();
  glPopMatrix();

  polygons_draw.init(&cfg_polygons,count_points[1],points_polygons[1]);
  glPushMatrix();
    glTranslatef(-2.0,3.0,pos[1]);
    glRotatef(angle[1],1.0,0.0,0.0);
    glPushMatrix();
      glScalef(0.1,0.8,0.8);
      polygons_draw.draw();
    glPopMatrix();

    polygons_draw.init(&cfg_polygons,count_points[4],points_polygons[4]);
    glTranslatef(-4.0,0.0,0.0);
    glRotatef(angle[4],0.0,1.0,0.0);
    glPushMatrix();
      glScalef(0.8,0.1,0.8);
      polygons_draw.draw();
    glPopMatrix();
  glPopMatrix();

  polygons_draw.init(&cfg_polygons,count_points[2],points_polygons[2]);
  glPushMatrix();
    glTranslatef(2.0,3.0,pos[2]);
    glRotatef(angle[2],1.0,0.0,0.0);
    glPushMatrix();
      glScalef(0.1,0.8,0.8);
      polygons_draw.draw();
    glPopMatrix();

    polygons_draw.init(&cfg_polygons,count_points[3],points_polygons[3]);
    glTranslatef(4.0,0.0,0.0);
    glRotatef(angle[3],0.0,1.0,0.0);
    glPushMatrix();
      glScalef(0.8,0.1,0.8);
      polygons_draw.draw();
    glPopMatrix();
  glPopMatrix();


Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/