Pāris jautājumi(Elapsed time& Direction)

Vēlies radīt spēli, bet nezini ar ko sākt? Sperot pirmos soļus, vari meklēt padomu šeit
Post Reply
Message
Author
CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Pāris jautājumi(Elapsed time& Direction)

#1 Post by CodeWolf » 16 Aug 2011, 21:28

Sveiki,gribeju noskaidrot pāris lietas kuras mani jau kadu laicinju nomoka OpenGL vidē
Kas īsti skaitas elapsed time itka pēc tulkojuma saprotu ko tas nozime...
bet nesaprotu kā lai to isti aprēķina(iegūst)..
cik atceros xna bija viena neliela rindiņa..
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

un otra lieta ir Virziens..Ko nozīmē virziens spēļu industrijā?
tā gadijuma nav ta pati Pozicija.Z?

butu ļoti jauki ja kads varetu nedaudz paskaidrot.. (:
//OpenGL

bubu
Guru
Guru
Posts: 398
Joined: 07 Dec 2010, 11:54

Re: Pāris jautājumi(Elapsed time& Direction)

#2 Post by bubu » 17 Aug 2011, 00:31

Jokaini tavi jautājumi. Tiem absolūti un pilnīgi nav nekāda sakara ar OpenGL.

Visticamāk tavā gadījumā elapsed time ir laiks kopš pēdējā updeita vai uzzīmētā kadra, vai funkcijas izsaukuma - atkarīgs par kādu API/freimworku tu runā. Ja nekādu/paša rakstītu, tad vienkārši ņem un rēķini to laiku. Tad elapsed time = t2 - t1, kur t1 un t2 ir patreizējais laiks attiecīgi iepriekšējā un tekošajā laika momentā.

Virziens ir virziens. Vektors. Kad tu ej pa ielu uz priekšu - tu virzies tādā pašā virzienā kādā ir ielas virziens. Pozicija.Z, ja Pozicija ir pozīcija telpā, ir trešā koordināte. Ja lidmašīna ir 10 km virs zemes, un Z virziens ir uz augšu, tad Pozicija.Z = 10km.

CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Re: Pāris jautājumi(Elapsed time& Direction)

#3 Post by CodeWolf » 18 Aug 2011, 01:19

jamm ir nedaudz :D
Ja pareizi sapratu...
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
tad elapsed vienkārši tiek papildināts... sanak ka ElapsedGameTime = kopš palaišanas brīža uzsakts tads ka taimeris..

Code: Select all

float elapsed;
//iekš update funkcijas
elapsed++;
?? :roll:
//OpenGL

bubu
Guru
Guru
Posts: 398
Joined: 07 Dec 2010, 11:54

Re: Pāris jautājumi(Elapsed time& Direction)

#4 Post by bubu » 18 Aug 2011, 23:03

Nekā nesapratu.

Ja runājam par Windows, tad tam ir GetTickCount() funkcija, kas atgriež laiku milisekundēs. To savā kodā var izmantot šādi:

Code: Select all

int main()
{
    // ...
    unsigned int time = GetTickCount();
    // ...
    while (running)
    {
        unsigned int now = GetTickCount();
        unsigned int delta = now - time;
        float elapsed = delta / 1000.0f;
        time = now;

        // ... te var lietot elapsed
        input.process();
        physics.simulate(elapsed);
        graphics.render(elapsed);
        window.swapBuffers();
    }
}
Te daudz vairāk un detalizētāk izskaidrots:
http://gafferongames.com/game-physics/f ... -timestep/
http://www.koonsolo.com/news/dewitters-gameloop/

Post Reply

Return to “Iesācējiem / For beginners”