Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
AroriaNetwork
GitHub Repository: AroriaNetwork/3kho-backup
Path: blob/main/projects/missiles/src/main.js
1835 views
1
MG.init = function () {
2
MG.fog.init();
3
MG.banner.init();
4
MG.game.init();
5
MG.hud.init();
6
7
document.addEventListener('mousemove', function(evt){
8
MG.game.onMouseMove(evt.clientX, evt.clientY);
9
}, false);
10
document.addEventListener('touchmove', function(evt){
11
MG.game.onMouseMove(evt.clientX || evt.touches[0].clientX, evt.clientY || evt.touches[0].clientY);
12
}, false);
13
14
window.addEventListener('click', MG.game.onMouseClick, false);
15
16
var update = function (dt) {
17
MG.fog.update(dt);
18
MG.game.update(dt);
19
MG.hud.update(dt);
20
MG.banner.update(dt);
21
MG.fog.updateDOM();
22
MG.game.updateDOM();
23
MG.hud.updateDOM();
24
MG.banner.updateDOM();
25
}
26
27
var lastTick = 0;
28
var zeroCounter = 0;
29
var useFallback = false;
30
31
if (!window.requestAnimationFrame) {
32
useFallback = true;
33
}
34
35
var mainLoop = function(thisTick) {
36
var dt;
37
38
// Some browsers don't pass in a time. If `thisTick` isn't set for
39
// more than a few frames fall back to `setTimeout`
40
if (!thisTick) {
41
zeroCounter += 1;
42
} else {
43
zeroCounter = 0;
44
}
45
if (zeroCounter > 10) {
46
useFallback = true;
47
}
48
49
thisTick = thisTick || 0;
50
if (useFallback) {
51
dt = 1/30;
52
} else {
53
var dt = (thisTick - lastTick)/1000;
54
}
55
// pretend that the frame rate is actually higher if it drops below
56
// 10fps in order to avoid wierdness
57
if (dt > 1/10) {
58
dt = 1/10;
59
}
60
61
lastTick = thisTick;
62
63
update(dt);
64
65
if (useFallback) {
66
window.setTimeout(mainLoop, 1000 / 30);
67
} else {
68
window.requestAnimationFrame(mainLoop);
69
}
70
}
71
72
mainLoop();
73
}
74
75
MG.init();
76
77