Code:
bool Igra::Run(void)
{
char key=' ';
StartTime=GetTickCount();
LastTime=0;
FrameCount=0;
while (key!='q')
{
while(!GetInput(&key))
{
TimerUpdate();
}
}
cout << FrameCount/((GetTickCount()-StartTime)/1000)<<endl;
return true;
}
bool Igra::GetInput(char *c)
{
if (_kbhit())
{
*c=_getch();
return true;
}
return false;
}
void Igra::TimerUpdate(void)
{
double CurrentTime=GetTickCount()-LastTime;
if (CurrentTime < 33.333) return;
FrameCount++;
LastTime=GetTickCount();
}
bool Igra::Run(void)
{
char key=' ';
StartTime=GetTickCount();
LastTime=0;
FrameCount=0;
while (key!='q')
{
while(!GetInput(&key))
{
TimerUpdate();
}
}
cout << FrameCount/((GetTickCount()-StartTime)/1000)<<endl;
return true;
}
bool Igra::GetInput(char *c)
{
if (_kbhit())
{
*c=_getch();
return true;
}
return false;
}
void Igra::TimerUpdate(void)
{
double CurrentTime=GetTickCount()-LastTime;
if (CurrentTime < 33.333) return;
FrameCount++;
LastTime=GetTickCount();
}
http://rapidshare.com/files/226093886/Igra.rar.html
Ovde je ceo kod.
Znaci ovo je problem:
Pokushavam da dobijem priblizno 30 fps.Kao sto vidite u TimerUpdate FrameCount ce se updateovati 30 puta u toku sec.
E sad problem je u tome da ja na moja 2 kompa (Hardverski totalno drugacija) i sa razlicitim operativnim sistemima (Pokushavano XP PRO sp1,sp2,sp3,Home Edition) i razlicitim VSovima (VS 6, VS 2005 , VS2008) dobijam izmedju 21-23 fps , dok kod svakog drugog (na svakom drugom kompu ljudi dobijaju 30fps). Inace gore navedeno je samo deo koda.
Znaci reinstall sam win bezbroj puta i smucilo mi se vishe , probao sam sve kombinacije win i vs i uvek isto.Napominjem da kod svakog drugog radi bez problema (skinite ovo gore je nekoliko kb).
Takodje probano i sa funkijom timeGetTime i ucitanom bibljiotekom winmm.lib ali problem ostaje isti.
[Ovu poruku je menjao X Files dana 27.04.2009. u 07:35 GMT+1]