wonder.js
Version:
88 lines (75 loc) • 2.88 kB
JavaScript
;
var Log$WonderLog = require("wonder-log/lib/js/src/Log.js");
var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js");
var NumberService$Wonderjs = require("../../../primitive/NumberService.js");
var StateDataMain$Wonderjs = require("../../../state/main/data/StateDataMain.js");
var IsDebugMainService$Wonderjs = require("../../../state/main/state/IsDebugMainService.js");
function getGameTime(param) {
return param[/* gameTime */4];
}
function getFps(param) {
return param[/* fps */5];
}
function getElapsed(param) {
return param[/* elapsed */0];
}
function _computeFps(deltaTime, lastTime) {
if (lastTime !== undefined) {
return 1000 / deltaTime;
} else {
return 60;
}
}
function tick(elapsed, record) {
var lastTime = record[/* lastTime */3];
var deltaTime = lastTime !== undefined ? elapsed - lastTime : elapsed;
return /* record */[
/* elapsed */record[/* elapsed */0],
/* startTime */record[/* startTime */1],
/* deltaTime */deltaTime,
/* lastTime */elapsed,
/* gameTime */elapsed / 1000,
/* fps */_computeFps(deltaTime, lastTime)
];
}
function _getNow(param) {
return window.performance.now();
}
function start(record) {
return /* record */[
/* elapsed */0,
/* startTime */window.performance.now(),
/* deltaTime */record[/* deltaTime */2],
/* lastTime */record[/* lastTime */3],
/* gameTime */record[/* gameTime */4],
/* fps */record[/* fps */5]
];
}
function computeElapseTime(time, record) {
return Contract$WonderLog.ensureCheck((function (param) {
var elapsed = param[/* elapsed */0];
return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("elapsed >= 0", "is " + (String(elapsed) + "")), (function (param) {
return Contract$WonderLog.Operators[/* >=. */8](elapsed, 0);
}));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData), /* record */[
/* elapsed */NumberService$Wonderjs.leastFloat(0, time - record[/* startTime */1]),
/* startTime */record[/* startTime */1],
/* deltaTime */record[/* deltaTime */2],
/* lastTime */record[/* lastTime */3],
/* gameTime */record[/* gameTime */4],
/* fps */record[/* fps */5]
]);
}
var starting_fps = 60;
var gametime_scale = 1000;
exports.starting_fps = starting_fps;
exports.gametime_scale = gametime_scale;
exports.getGameTime = getGameTime;
exports.getFps = getFps;
exports.getElapsed = getElapsed;
exports._computeFps = _computeFps;
exports.tick = tick;
exports._getNow = _getNow;
exports.start = start;
exports.computeElapseTime = computeElapseTime;
/* Log-WonderLog Not a pure module */