07. juni 2004 - 00:36Der er
5 kommentarer og 1 løsning
tid i spil - uafhængigt af cpu
Jeg er igang med at lave et simpelt racerspil. Til det formål har jeg har lavet en tæller som holder øje med hvor mange sekunder brugeren er om at fuldføre en omgang.
Problemet er at spillet køre hurtigtere på hurtige computere (sjovt nok), hvilket gør at brugere med hurtige computere kan gennemføre en omgang langt hurtigere end brugere med langsomme computere har mulighed for.
Jeg ville jo gerne have at spillet er lige fair for alle brugere, men hvordan kan det lade sig gøre? Kan man evt. måle på hvormange enterframes der er blevet brugt på en omgang? Har i andre gode ideer?
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Du kan bruge dette smarte lille script der sikrer at farten bibeholdes uanset framerate - på langsomme computere vil grafikken bare hakke mere... men farten vil altid være den samme:
1. frame i _root:
var prefTime = 50;
var timescale; var timer = getTimer(); this.onEnterFrame = function(){ timescale = (getTimer()-_root.timer)/_root.prefTime; //Denne er vigtig! timer = getTimer(); }
"var prefTime = 50" er en variabel der angiver hvor mange millisekunder der skal gå på EN HEL bevægelse. Jeg viser lige brugen af det her:
var prefTime = 50;
var timescale; var timer = getTimer(); var allTime = getTimer(); //start tid this.onEnterFrame = function(){ timescale = (getTimer()-_root.timer)/_root.prefTime; timer = getTimer(); ting._x += 5*timescale; //Her er den ting der skal bevæges! if(ting._x > 500) trace(getTimer()-_root.allTime); //tjekker - udskriver tid i alt }
Her har jeg et movieclip med navnet "ting", der uden mit script ville bevæge sig med en fart på 5 pixels til højre hvert frame... Denne fart ganger jeg så bare med tidsforholdet "timescale", hvis frameraten er meget lav vil det egentlige "skridt" måske ligge på over 5 pixels, hvis frameraten er høj vil det måske ligge på noget langt under 5, men så tager den også flere "skridt". Alt det andet er en "tjekker" der tjekker hvornår mit movieclip er over x > 500, så udskriver den tiden siden den begyndte at bevæge sig. Så kan du prøve at justere frameraten, eller prøve på en hurtig og langsom computer, så skulle tiden gerne være den samme.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.