Snellere computers

Status
Niet open voor verdere reacties.

erikiej1

Gebruiker
Lid geworden
29 apr 2008
Berichten
138
ik ben al een flink eind op weg met m'n klein online spelletje, maar ik loop tegen het volgende probleem aan.

een snelle pc communiceert sneller met de server dan slomere pc's. Hierdoor loopt het poppetje in m'n spel op een snellere pc veel sneller.

ik wil dus dat hoe sneller de pc is, hoe langzamer het programma loopt.

Weet iemand hier een oplossing voor?
 
Waarom zou dit nodig zijn? Elke computer kan toch op zijn eigen tempo updaten?

Wat voor een spelletje is het dan, als dat echt nodig is.
 
Het is tot nu toe alleen een poppetje dat rondloopt, 't is allemaal heel droog, afgezaagd en lelijk, maar daar gaat het niet om.
Ik heb het programma gerund op 2 verschillende computers en de 1 loopt dan veel sneller dan de ander omdat die sneller kan communiceren met de server.
 
oow maar dan moet je de variabele timepassed gebruiken, zodat hij op elke computer even snel loopt etc.
 
In veel libraries vind je een functie als GetTick() die een hoeveelheid tijd sinds een bepaald tijdstip geeft. Om dan het verschil in tijd tussen 2 updates te meten hou je een variabele bij: lastTick. Wanneer je dan de toestand van je spel update kun je iets doen als het volgende:
Code:
currentTick = GetTick();
tickDifference = currentTick - lastTick;
ticksPerSecond = GetTicksPerSecond(); // mbv je library is dit vast te berekenen
timeDifference = tickDifference / ticksPerSecond;
Update(timeDifference);
lastTick = currentTick;

Code:
void Update(float timeDifference) {
    player->position += player->velocity * timeDifference;
}

Op deze manier is de snelheid van je poppetje afhankelijk van de tijd, en niet van hoe snel een computer updates uitvoert.
 
Laatst bewerkt:
Ik gebruik allegro. Ik las ergens iets over allegro timers, maar ik kan nergens een tutorial vinden die ik goed begrijp. Weet iemand wel één die goed te begrijpen is?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan