anpassa saker efter tid?(spel)

Java

1 svar · 252 visningar · startad av etromic

Medlem sedan juni 200420 inlägg
Trådstart#1

Har ett litet problem.. jag behöver räkna fram ett värde som skall vara en faktor som jag kan multiplicera med olika hastigheter som jag har i spelet.
Alltså, om man inte vet vilken framerate som spelet kommer köras i (beroende på processor/grafikkort osv) så måste man ju få fram ett värde som kan kompensera åt rätt håll..

Jag har väl kommit så långt att jag förstått att alla mina värden måste baseras på en genrerell enhet, t.ex units/tidsenhet. Men sen? jag har en main-loop på pseudo-formen:

while(true){
  time = -getTime();
  checkKeys();
  bltScreen();
  flipScreens();
  time += getTime();
  adjustValues(time);
}

och då innehåller ju time den tid denna frame tog.. Min tanke är ju att nyttja de värdet(time) för att justera resten i adjustValues(). men vad ska de vara?!

speed = DEFAULT_SPEED * (time / unitsPerTimeValue)?

eller tvärtom kanske:

speed = DEFAULT_SPEED * (unitsPerTimeValue / time)?

är för trött för o tänka för tillfället :/

Medlem sedan juni 200420 inlägg
#2

Löste det. De räckte med att få fram i procent av den hastighet jag ville ha och sen multiplicera de med den hastighet som skulle användas för att förflytta något. smidigt!

261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)