new file: Files/flashplayer_32_sa.exe new file: favicon.ico new file: globe.gif new file: imgs/download.png new file: imgs/zuck.jpg new file: index.html new file: other.ico new file: script.js new file: site.webmanifest new file: sitemap.html new file: styles/backround.css new file: styles/border.css new file: styles/fonts/Titillium_Web/OFL.txt new file: styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf new file: styles/fonts/webfontkit-20221027-163353/generator_config.txt new file: styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2 new file: styles/fonts/webfontkit-20221027-165950/generator_config.txt new file: styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2 new file: styles/style.css new file: tools/2048/.gitignore new file: tools/2048/.jshintrc new file: tools/2048/CONTRIBUTING.md new file: tools/2048/LICENSE.txt new file: tools/2048/README.md new file: tools/2048/Rakefile new file: tools/2048/favicon.ico new file: tools/2048/index.html new file: tools/2048/js/animframe_polyfill.js new file: tools/2048/js/application.js new file: tools/2048/js/bind_polyfill.js new file: tools/2048/js/classlist_polyfill.js new file: tools/2048/js/game_manager.js new file: tools/2048/js/grid.js new file: tools/2048/js/html_actuator.js new file: tools/2048/js/keyboard_input_manager.js new file: tools/2048/js/local_storage_manager.js new file: tools/2048/js/tile.js new file: tools/2048/meta/apple-touch-icon.png new file: tools/webretro/cores/neocd_libretro.js new file: tools/webretro/cores/neocd_libretro.wasm new file: tools/webretro/cores/nestopia_libretro.js new file: tools/webretro/cores/nestopia_libretro.wasm new file: tools/webretro/cores/o2em_libretro.js new file: tools/webretro/cores/o2em_libretro.wasm new file: tools/webretro/cores/opera_libretro.js new file: tools/webretro/cores/opera_libretro.wasm
166 lines
2.9 KiB
JavaScript
166 lines
2.9 KiB
JavaScript
/*!
|
|
* @class bkcore.Timer
|
|
*
|
|
* new Date().getTime() wrapper to use as timers.
|
|
*
|
|
* @author Thibaut 'BKcore' Despoulain <http://bkcore.com>
|
|
*/
|
|
|
|
/**
|
|
* RAF shim
|
|
*/
|
|
window.requestAnimFrame = (function(){
|
|
return window.requestAnimationFrame ||
|
|
window.webkitRequestAnimationFrame ||
|
|
window.mozRequestAnimationFrame ||
|
|
window.oRequestAnimationFrame ||
|
|
window.msRequestAnimationFrame ||
|
|
function( callback ){
|
|
window.setTimeout(callback, 1000 / 60);
|
|
};
|
|
})();
|
|
|
|
/*!
|
|
* @package bkcore
|
|
*/
|
|
var bkcore = bkcore || {};
|
|
|
|
/*!
|
|
* Creates a new timer, inactive by default.
|
|
* Call Timer.start() to activate.
|
|
*/
|
|
bkcore.Timer = function()
|
|
{
|
|
this.time = {
|
|
start: 0,
|
|
current: 0,
|
|
previous: 0,
|
|
elapsed: 0,
|
|
delta: 0
|
|
}
|
|
|
|
this.active = false;
|
|
}
|
|
|
|
/*!
|
|
* Starts/restarts the timer.
|
|
*/
|
|
bkcore.Timer.prototype.start = function()
|
|
{
|
|
var now = new Date().getTime();
|
|
|
|
this.time.start = now;
|
|
this.time.current = now;
|
|
this.time.previous = now;
|
|
this.time.elapsed = 0;
|
|
this.time.delta = 0;
|
|
|
|
this.active = true;
|
|
}
|
|
|
|
/*!
|
|
* Restarts timer, returning last ms tick
|
|
*/
|
|
bkcore.Timer.prototype.restart = function()
|
|
{
|
|
var now = new Date().getTime();
|
|
var e = now - this.time.start;
|
|
|
|
this.time.start = now;
|
|
this.time.current = now;
|
|
this.time.previous = now;
|
|
this.time.elapsed = 0;
|
|
this.time.delta = 0;
|
|
|
|
this.active = true;
|
|
|
|
return e;
|
|
}
|
|
|
|
/*!
|
|
* Pauses(true)/Unpauses(false) the timer.
|
|
*
|
|
* @param bool Do pause
|
|
*/
|
|
bkcore.Timer.prototype.pause = function(bool)
|
|
{
|
|
this.active = !bool;
|
|
}
|
|
|
|
/*!
|
|
* Update method to be called inside a RAF loop
|
|
*/
|
|
bkcore.Timer.prototype.update = function()
|
|
{
|
|
if(!this.active) return;
|
|
|
|
var now = new Date().getTime();
|
|
|
|
this.time.current = now;
|
|
this.time.elapsed = this.time.current - this.time.start;
|
|
this.time.delta = now - this.time.previous;
|
|
this.time.previous = now;
|
|
|
|
return this.time.elapsed;
|
|
}
|
|
|
|
/*!
|
|
* Returns elapsed milliseconds
|
|
*/
|
|
bkcore.Timer.prototype.getElapsed = function()
|
|
{
|
|
return this.time.elapsed;
|
|
}
|
|
|
|
/*!
|
|
* Returns a formatted version of the current elapsed time using msToTime().
|
|
*
|
|
*
|
|
*/
|
|
bkcore.Timer.prototype.getElapsedTime = function()
|
|
{
|
|
return bkcore.Timer.msToTime(this.time.elapsed);
|
|
}
|
|
|
|
/*!
|
|
* Formats a millisecond integer into a h/m/s/ms object
|
|
*
|
|
* @param x int In milliseconds
|
|
* @return Object{h,m,s,ms}
|
|
*/
|
|
bkcore.Timer.msToTime = function(t)
|
|
{
|
|
var ms, s, m, h;
|
|
|
|
ms = t%1000;
|
|
|
|
s = Math.floor((t/1000)%60);
|
|
|
|
m = Math.floor((t/60000)%60);
|
|
h = Math.floor((t/3600000));
|
|
|
|
return {h:h, m:m, s:s, ms:ms};
|
|
}
|
|
|
|
/*!
|
|
* Formats a millisecond integer into a h/m/s/ms object with prefix zeros
|
|
*
|
|
* @param x int In milliseconds
|
|
* @return Object<string>{h,m,s,ms}
|
|
*/
|
|
bkcore.Timer.msToTimeString = function(t)
|
|
{
|
|
var ms, s, m, h;
|
|
|
|
ms = t%1000;
|
|
if(ms < 10) ms = "00"+ms;
|
|
else if(ms < 100) ms = "0"+ms;
|
|
|
|
s = Math.floor((t/1000)%60);
|
|
if(s < 10) s = "0"+s;
|
|
|
|
m = Math.floor((t/60000)%60);
|
|
h = Math.floor((t/3600000));
|
|
|
|
return {h:h, m:m, s:s, ms:ms};
|
|
} |