[c++]przesuwanie nic nie daje

0

<font size="4">jak zrobić w opengl, w c++, w borland c++ builder 6, aby scena się powoli przesuwała?
daję gltranslatef(x,y,z);
//a z zmieniam
z=z+0.01;
//tylko jak zrobić żeby ciągle powtarzało? żeby był efekt ciągły
//a nie raz przesunie o kawałeczek, a potem robi dalsze instrukcje
//PROSZĘ O POMOC!!!</span>

0

a o petlach to kolega slyszal???

0

[glowa]

pętle, po co, to nic nie da w render ()dajesz coś takiego;
static float z=0; z+=0.1f;
0

dzięki
ale:

  1. czym się różni float od static float(jak zamieniłem static to nie działało, więc różnica jest, ale tak dokładniej jaka?
    2)jak odczytać klawisz z klawiatury? sciągnąłem sobie szkielet, i gdy kliknę escape, koniec programu. ale jak ja chcę, by to była strzałka w dół, lub litera "a"?wiem że trzeba zrobić mniej więcej coś takiego:
    bool keys[256];
    bool active = true;
    keys[VK_F1] = false;
    czy ktoś mółby mi podać wzór na to, że if ja wcisne a, wtedy zmien zmienną "klakson" na 0?
0

Ad 1.

Zwykła zmienna lokalna(tworzona wewnątrz funkcji np float) jest tworzona na stosie , za każdym razem gdy wywołujesz funkcje,więc nie zachowuje swojej wartości z poprzedniego wywołania funkcji, nie jest też inicjalizowana.
btw. ten typ zmiennej nazywany jest często zmienną automatyczną dlatego właśnie że jest automatycznie usuwana.

Zmienna lokalna statyczna(static float) tworzona jest przy pierwszym wywołaniu funkcji i po wyjściu z funkcji nie ginie. Dzieje się tak dlatego,że jet przechowywana tam gdzie zmienne globalne. Jest inicjowana domyślnie zerem przy pierwszym wywołaniu(podobnie jak zmienne globalne) .Różnica między taką zmienną ,a zmienną globalną jest taka,że zmienna statyczna nie jest znana poza funkcją.
Czyli zmienna statyczna zachowuje wartość z poprzedniego wywołania funkcji.

Pozdrawiam

0

dzięki, ale jak z tymi przyciskami???

1 użytkowników online, w tym zalogowanych: 0, gości: 1