Men når jeg bruger setTimeout, så definere jeg jo den tid der skal gå inden at funktionen kalder igen i milisekunder, så det burde vel være samme hastighed på alle computere. Og hvordan ville du gøre dette i praktisk? Hvordan skulle jeg kunne se hvor lang tid der er gået siden sidste kald? Desuden så er pointen ved at der ikke er et fast tidsinterval, at funktionen bliver kaldt oftere og oftere, hvordan skulle jeg gøre det hvis jeg kalder funktionen med et fast tidsinterval?
Ja men når du kommer ned på små tidsintervaller går der længere tid end du har specificert. Hvis du fx specificerer 1ms kan der nemt gå længere, specielt hvis computeren er ved at encode en video samtidigt eller lign.
Du kan få tiden i millisekunder siden 1. Januar 1970 med funktionen getTime().
Du gemmer tiden i fx en global variable
Når så du kalder din falde-funktion igen kalder du getTime() igen og trækker værdien i den globale variabel fra, så har du antal millisekunder siden sidst.
Antallet a pixels du skal flytte er så
V*T
Hvor V er hastigheden på din mand og T er tiden.
Hvis du skal gøre det helt rigtigt skal du beskrive din acceleration som en funktion du integrere til din hastighed som du integrer til din distance.
se fx
http://www.ugrad.math.ubc.ca/coursedoc/math101/notes/applications/velocity.htmlTis sidst sætter du den globale varibel til den tid du hev ud i starten.
Og ved du forøvrigt hvad det er der gør at min nuværende kode ikke virker?
Har du prøvet at indsætte den kode jeg skrev?
Har du prøvet DOSbox? Med det program kan man spille gamle dosspil, selvom at man har en ny computer
Nej jeg er gået væk fra dos, men tak for tippet :-)
Indlæg senest redigeret d. 05.06.2009 17:17 af Bruger #15044