Gluttimerfunc
Автор Ѐагим Рагимов задал вопрос в разделе Другие языки и технологии
Вопрос по С++ OpenGL и получил лучший ответ
Ответ от Ra[гуру]
> Да что за бред не копируется текст! Чтобы код не протухал, его надо публиковать на сайте pastebin.com, а сюда вместе с вопросом ссылку на pastebin. > когда я прописываю (500, Timer, 0) не работает, любое значение меньше 1000 не работает. А вы попробуйте нужное время срабатывания таймера прописывать не только в функции main, но и в функции Timer(): void Timer(int) { switch(Npr) { case 1: krd2+=20.0; break; case 2: krd2-=20.0; break; case 3: krd1-=20.0; break; case 4: krd1+=20.0; break; } if (krd1>199||krd1<-199||krd2>199||krd2<-199) { dl=1; krd1=-20.0, krd2=-20.0; score-=100; } glutTimerFunc(500, Timer, 0); Draw(); } и все должно работать. А лучше определите константу для значения таймера и используйте ее в обеих функциях > Александр > ничего не понял > Timer будет себя передавать в вызов функции glutTimerFunc, которая будет опять же дёргать таймер, который вызовет функцию glutTimerFunc, которая будет опять же дёргать таймер.. . Да, так и есть. Там таймеры однократные (срабатывают только один раз) , и чтобы его опять запустить, надо снова вызвать glutTimerFunc(). Это можно сделать либо в самой функции-обработчике таймера, а можно где-нибудь в другом месте. Получается вот такая псевдорекурсия, которая на самом деле рекурсией не является.
ничего не понял Timer будет себя передавать в вызов функции glutTimerFunc, которая будет опять же дёргать таймер, который вызовет функцию glutTimerFunc, которая будет опять же дёргать таймер, который вызовет функцию glutTimerFunc, которая будет о