

![]() |
![]() |
|
|||||||
![]() |
![]() |
| programowanie języki, projekty, pomoc, oprócz html, php, js |
|
|
|
LinkBack | Narzędzia wątku | Wygląd |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
||||
|
a to _kbhit() to skad pochodzi? bo mi sie to kojarzy jedynie z conio.h
google mowi: http://www.swiftless.com/tutorials/opengl/keyboard.html pozdrawiam |
![]() |
![]() |
![]() |
![]() |
|
||||
|
tak, _kbhit() to z conio.h.
Widziałem ten tutorial, i mam u siebie tak samo: Kod:
int main (int argc, char **argv)
{
int full;
full = czy_fullscreen();
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE);
if ( full == IDYES )
{
glutGameModeString( get_settings(width, height, colors,60).c_str() );
glutEnterGameMode();
}
if ( full == IDNO )
{
glutInitWindowSize (800, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow ("Zegar binarny");
}
glutDisplayFunc (display); //tu się zapętla
glutReshapeFunc (reshape);
glutKeyboardFunc (keyboard);
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}
![]() |
![]() |
![]() |
![]() |
![]() |
|
||||
|
Ten program ma wyświetlać zegar - musi się cały czas odświeżać. Dlatego użyłem pętli, problemem jest właśnie to jak ustawić ją by przerwała się po naciśnięciu klawisza ( zegar się wyłączył ).
|
![]() |
![]() |
![]() |
![]() |
|
||||
|
http://www.swiftless.com/tutorials/o..._rotation.html
a petli w funkcji display jakos nie ma... Kod:
glutDisplayFunc (display);
glutIdleFunc (display);
http://www.opengl.org/documentation/...c3/node63.html Ostatnio edytowane przez sh3d2 ; 08.02.2010 o 23:46. |
![]() |
![]() |
![]() |
![]() |
|
||||
|
Ale w tej scenie obiekt rysujesz tylko raz - później przechodzisz do klawiatury i obiekt jest tylko obracany, itp. Jednak mój zegar musi być rysowany co sekundę od nowa, żeby godzina była na bieżąco aktualizowana. Gdybym zrobił bez pętli, zegar wyświetlił by godzinę jaka była przy uruchomieniu programu i nie zmieniał by jej.
|
![]() |
![]() |
![]() |
![]() |
|
||||
|
caly trick polega na tym, ze funkcja podpieta pod glutIdleFunc() zostanie wywolana za kazdym razem kiedy mainloop nie wylapal zadnego zdarzenia.
jesli podepniesz pod ta idlefunc funkcje display() wtedy za kazdym razem kiedy nie bylo zdarzenia wywolane zostanie display() - czyli narysuje ci od nowa Cytat:
dobre mocne ![]() |
![]() |
![]() |
![]() |
![]() |
|
||||
|
Dobra, już jest ok - zapomniałem o tym glutIdleFunc (display); :P
Wielkie dzięki z pomoc. Mam jeszcze jedno pytanie - gdy uruchamiam ten program to najpierw uruchamia się wiersz poleceń, dopiero później okienko OpenGl. W fullscreen to aż tak nie przeszkadza, jednak gdy wyświetlam zegar w oknie psuje to nieco efekt. Czy da się jakoś pozbyć tego wiersza poleceń? |
![]() |
![]() |
![]() |
![]() |
|
||||
|
pojecia nie mam.
wklej caly kod to sie moze cos znajdzie. pozdrawiam edit: http://yasir03.online.fr/?p=53 Ostatnio edytowane przez sh3d2 ; 09.02.2010 o 00:03. |
![]() |
![]() |
|
| Narzędzia wątku | |
| Wygląd | |
|
|
Podobne wątki
|
||||
| Temat | Autor wątku | Forum | Odpowiedzi | Ostatni post/autor |
| Quake ]I[ OpenGL problem | Ult1me | dyskusja o grach | 6 | 19.06.2010 02:35 |
| [Pascal] Problem z dzieleniem przy pętli for | rafi_m | programowanie | 6 | 29.10.2009 12:17 |
| Problem z OpenGL | RagoBartek | programy | 2 | 19.04.2009 15:43 |
| Counter Strike 1.6 PROBLEM z OpenGL | Julian10 | problemy techniczne | 0 | 18.02.2009 20:25 |
| problem z opengl | Radix | windows | 8 | 24.11.2008 16:38 |
| Wszystkie czasy w strefie GMT +2. Teraz jest 07:21. |

