@colyseus/clock
Version:
A simple clock/ticker implementation to track elapsed/delta time.
8 lines (7 loc) • 1.8 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../src/index.ts"],
"sourcesContent": ["export default class Clock {\n public running: boolean = false;\n\n public deltaTime: number;\n public currentTime: number;\n public elapsedTime: number;\n\n protected now: Function = (typeof(window) !== \"undefined\" && window.performance && window.performance.now && (window.performance.now).bind(window.performance)) || Date.now;\n protected _interval: any; // number or NodeJS.Timer\n\n constructor (useInterval: boolean = false) {\n this.start(useInterval);\n }\n\n start (useInterval: boolean = false) {\n this.deltaTime = 0;\n this.currentTime = this.now();\n this.elapsedTime = 0;\n this.running = true;\n\n if (useInterval) {\n // auto set interval to 60 ticks per second\n this._interval = setInterval(this.tick.bind(this), 1000 / 60);\n }\n }\n\n stop () {\n this.running = false;\n\n if (this._interval) {\n clearInterval(this._interval);\n }\n }\n\n tick (newTime = this.now()) {\n this.deltaTime = newTime - this.currentTime;\n this.currentTime = newTime;\n this.elapsedTime += this.deltaTime;\n }\n\n}\n"],
"mappings": ";AAAA,IAAqB,QAArB,MAA2B;AAAA;AAAA,EAUzB,YAAa,cAAuB,OAAO;AAT3C,SAAO,UAAmB;AAM1B,SAAU,MAAiB,OAAO,WAAY,eAAe,OAAO,eAAe,OAAO,YAAY,OAAQ,OAAO,YAAY,IAAK,KAAK,OAAO,WAAW,KAAM,KAAK;AAItK,SAAK,MAAM,WAAW;AAAA,EACxB;AAAA,EAEA,MAAO,cAAuB,OAAO;AACnC,SAAK,YAAY;AACjB,SAAK,cAAc,KAAK,IAAI;AAC5B,SAAK,cAAc;AACnB,SAAK,UAAU;AAEf,QAAI,aAAa;AAEf,WAAK,YAAY,YAAY,KAAK,KAAK,KAAK,IAAI,GAAG,MAAO,EAAE;AAAA,IAC9D;AAAA,EACF;AAAA,EAEA,OAAQ;AACN,SAAK,UAAU;AAEf,QAAI,KAAK,WAAW;AAClB,oBAAc,KAAK,SAAS;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,KAAM,UAAU,KAAK,IAAI,GAAG;AAC1B,SAAK,YAAY,UAAU,KAAK;AAChC,SAAK,cAAc;AACnB,SAAK,eAAe,KAAK;AAAA,EAC3B;AAEF;",
"names": []
}