Ten eerste mijn excuses voor het posten van een JS topic hier, maar dit heeft toch echt meer te maken met Programming en Webscripting dan Wedesign en Graphics. Gaat hier niet over DHTML of CSS combo.
Na mijn korte excuus om hier JS te mogen posten, de echte vraag maar eens:
Ik heb een spelletje geschreven in JS dat via de Messenger API multiplayer heeft.
Alles werkte prima, tot ik highscores ging implementeren. Ineens leek de timer op elke PC anders te lopen
Ik heb een timer lopen met window.setInterval("update();",24); (24ms om cheaters te slim af te zijn, als ze een score verzinnen en niet deelbaar is door 24ms vallen ze door de mand
)
Anyway, alles leuk en aardig, ik dus een debuggertje bouwen die aan de hand van begintijd van de update functie en eindtijd in ms wat dingen berekend:
interval -> de tijd tussen elke update
ticktime -> de tijd die elke update nodig had
Op mijn PC is de interval rond de 33, en de tick komt als er wat geupdate moet worden op 2ms. Op iemand anders zn PC respectievelijk 45/15.
Alletwee zijn de intervals verre van wat ze horen te zijn: 24ms. Dit licht echter niet aan de update functie, die heeft maar 15ms hooguit nodig.
Ik *denk* dat de windows-methode op deze timers van toepassing is: timers komen nadat andere threads klaar zijn.
Nu is mijn vraag, zou iemand kunnen bedenken hoe ik op een andere manier een timer kan bouwen, of een andere functie in JS kan gebruiken die toch, tenminste op de lange termijn, grofweg 24ms aanhoud ?
De games worden namelijk gesynched, en als een klok anders loopt dan de andere gaan de poppetjes stotteren, en de highscores worden zo niet netjes
Alvast bedankt,
TB
Na mijn korte excuus om hier JS te mogen posten, de echte vraag maar eens:
Ik heb een spelletje geschreven in JS dat via de Messenger API multiplayer heeft.
Alles werkte prima, tot ik highscores ging implementeren. Ineens leek de timer op elke PC anders te lopen
Ik heb een timer lopen met window.setInterval("update();",24); (24ms om cheaters te slim af te zijn, als ze een score verzinnen en niet deelbaar is door 24ms vallen ze door de mand
Anyway, alles leuk en aardig, ik dus een debuggertje bouwen die aan de hand van begintijd van de update functie en eindtijd in ms wat dingen berekend:
interval -> de tijd tussen elke update
ticktime -> de tijd die elke update nodig had
Op mijn PC is de interval rond de 33, en de tick komt als er wat geupdate moet worden op 2ms. Op iemand anders zn PC respectievelijk 45/15.
Alletwee zijn de intervals verre van wat ze horen te zijn: 24ms. Dit licht echter niet aan de update functie, die heeft maar 15ms hooguit nodig.
Ik *denk* dat de windows-methode op deze timers van toepassing is: timers komen nadat andere threads klaar zijn.
Nu is mijn vraag, zou iemand kunnen bedenken hoe ik op een andere manier een timer kan bouwen, of een andere functie in JS kan gebruiken die toch, tenminste op de lange termijn, grofweg 24ms aanhoud ?
De games worden namelijk gesynched, en als een klok anders loopt dan de andere gaan de poppetjes stotteren, en de highscores worden zo niet netjes
Alvast bedankt,
TB
[img=http://www.web2messenger.com/smallstatus/w2m/theblasp.png]