38 lines
873 B
JavaScript
38 lines
873 B
JavaScript
|
export let last_update = Date.now();
|
||
|
|
||
|
export function calc_delta_time()
|
||
|
{
|
||
|
let now = Date.now();
|
||
|
let dt = (now - last_update) / 1e3;
|
||
|
dt = Math.min(dt, 0.016);
|
||
|
last_update = now;
|
||
|
return dt;
|
||
|
}
|
||
|
|
||
|
export function event_listener_array(whos, event_names, callback, options = null)
|
||
|
{
|
||
|
if (!Array.isArray(whos))
|
||
|
{
|
||
|
whos = [whos];
|
||
|
}
|
||
|
for (const name of event_names)
|
||
|
{
|
||
|
for (const who of whos)
|
||
|
{
|
||
|
who.addEventListener(name, callback, options);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export async function import_js_as_module(url)
|
||
|
{
|
||
|
return new Promise((resole, reject) =>
|
||
|
{
|
||
|
const body = document.getElementsByTagName('body')[0];
|
||
|
const script = document.createElement('script');
|
||
|
script.type = 'module';
|
||
|
script.src = url;
|
||
|
script.onload = resole;
|
||
|
body.appendChild(script);
|
||
|
});
|
||
|
}
|