Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с мышкой(OpenGL), Изменение сцены при нажатии левой кнопки 
V
    Опции темы
Sergio
  Дата 10.7.2007, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Здраствуйте. Пишу простенький пример. Идея такая:
при нажатии кнопки мыши(левой) Сцена меняет свой "облик". Тоесть чайник который был в сцене, - поварачивается. Вот что я написал. По идее должно работать:
Код

bool mouseLeftButton = false; 

void reshape(int width, int height) { 

  // Set the new viewport size 
  glViewport(0, 0, (GLint)width, (GLint)height); 

  // Clear the window 
  glClear(GL_COLOR_BUFFER_BIT); 


void display(void) { 

  if (mouseLeftButton) 
  { 
    glRotated(45.0, 0.0, 0.0, 1.0); 
    glColor3f(1.0, 10.0, 10.0); 
    glutWireTeapot(0.5); 
  } 
  else 
  { 
    
    // Set the drawing color 
    glColor3f(1.0, 1.0, 1.0); 
    glutWireTeapot(0.5); 
  } 

  glutSwapBuffers(); 


void keyboard(unsigned char key, int x, int y) { 

  switch(key) 
  { 
    case 27:      exit(0); break; 
  }; 


void mousecl(int button, int x, int y, int scale) { 

  if (button == GLUT_LEFT_BUTTON) 
   { 
    mouseLeftButton = true; 
   } 
  else 
   { 
    mouseLeftButton = false; 
   } 


int main(int argc, char** argv) 

  glutInit(&argc, argv); 
  glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
  glutInitWindowSize (500, 500); 
  glutInitWindowPosition (100, 100); 
  glutCreateWindow (argv[0]); 

  glutKeyboardFunc(keyboard); 
  glutMouseFunc(mousecl); 
  glutDisplayFunc(display); 
  glutReshapeFunc(reshape); 
    
  glutMainLoop(); 
  return 0; 
}

Почему-то чайник не паварачивается smile 
PM MAIL ICQ   Вверх
Rickert
Дата 12.7.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Скорее всего поворачивается, но очень быстро. Ведь ты не можшь нажать кнопку мыши на столько быстро, чтобы произоёшл действительно один клик - ты её как бы зажимаешь на короткий для тебя период, но длинный для компа. Мысль понял?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Sergio
Дата 12.7.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Спасибо. Проблему решил.
PM MAIL ICQ   Вверх
Rickert
Дата 13.7.2007, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Так в чём маза-то было?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Sergio
Дата 13.7.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: нет
Всего: 1



Rickert, забыл "запустить" функцию display() smile Тоесть надо было после нажатия кнопки запустить glutPostRedisplay()
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.