-
Notifications
You must be signed in to change notification settings - Fork 1
/
AppFrame_Debug.ts
52 lines (41 loc) · 1.37 KB
/
AppFrame_Debug.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// APPFRAME.TS DEBUG EXTENSION BY SUNMOCK YANG
/// <reference path="AppFrame.ts" />
/*
ADDS DEBUGGING INFORMATION TO APPFRAME
getDebugFps() - returns the number of frames per second (fps) of last loop
getDebugSleep() - returns the number of milliseconds between each iteration
*/
class DebugFrame extends AppFrame {
private sleep: number;
//USER DEFINED RUN METHODS
private initialize() { console.log("INITIALIZE METHOD"); }
private update() { console.log("UPDATE METHOD"); }
private draw() { console.log("DRAW METHOD"); }
private exit() { console.log("EXIT METHOD"); }
// FOR DEBUGGING
public debugFps: number;
public startFrame: number = 0;
public endFrame: number = 0;
public start() {
console.log("DEBUG MODE STARTED");
super.start();
}
// Debug Functions
public getDebugFps() { return this.debugFps; }
public getDebugSleep() { return this.sleep; }
private run(that:DebugFrame) {
if (that.running) {
if (that.initialized) {
that.endFrame = Date.now();
that.update();
that.draw();
that.debugFps = Math.floor(10000/(that.endFrame - that.startFrame))/10;
that.startFrame = Date.now();
}
setTimeout(that.delegate, that.sleep);
}
else
this.exit();
}
}
// SUNMOCK YANG