@melonjs/debug-plugin 14.8.3 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -18
- package/build/counters.d.ts +6 -0
- package/build/counters.d.ts.map +1 -0
- package/build/debugPanel.d.ts +51 -0
- package/build/debugPanel.d.ts.map +1 -0
- package/build/graphs.d.ts +18 -0
- package/build/graphs.d.ts.map +1 -0
- package/{src/index.js → build/index.d.ts} +15 -46
- package/build/index.d.ts.map +1 -0
- package/build/index.js +724 -0
- package/build/index.js.map +7 -0
- package/build/patches.d.ts +8 -0
- package/build/patches.d.ts.map +1 -0
- package/build/styles.d.ts +8 -0
- package/build/styles.d.ts.map +1 -0
- package/debug-panel.png +0 -0
- package/package.json +64 -75
- package/dist/@melonjs/debug-plugin.d.ts +0 -96
- package/dist/@melonjs/debug-plugin.js +0 -741
- package/src/counters.js +0 -17
- package/src/debugPanel.js +0 -554
- package/src/font/PressStart2P.fnt +0 -100
- package/src/font/PressStart2P.ltr +0 -1
- package/src/font/PressStart2P.png +0 -0
|
@@ -1,741 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* melonJS debug plugin - v14.8.3
|
|
3
|
-
* http://www.melonjs.org
|
|
4
|
-
* @melonjs/debug-plugin is licensed under the MIT License.
|
|
5
|
-
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 - 2024 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
-
*/
|
|
8
|
-
import { Renderable, video, utils, BitmapText, Rect, event, plugin, Container, Entity, Text, Camera2d, ImageLayer, game, input, timer, collision, Math, pool } from 'melonjs';
|
|
9
|
-
|
|
10
|
-
var name = "@melonjs/debug-plugin";
|
|
11
|
-
var version = "14.8.3";
|
|
12
|
-
var description = "melonJS debug plugin";
|
|
13
|
-
var homepage = "https://github.com/melonjs/debug-plugin#readme";
|
|
14
|
-
var type = "module";
|
|
15
|
-
var keywords = [
|
|
16
|
-
"2D",
|
|
17
|
-
"HTML5",
|
|
18
|
-
"javascript",
|
|
19
|
-
"TypeScript",
|
|
20
|
-
"es6",
|
|
21
|
-
"Canvas",
|
|
22
|
-
"WebGL",
|
|
23
|
-
"WebGL2",
|
|
24
|
-
"WebAudio",
|
|
25
|
-
"game",
|
|
26
|
-
"engine",
|
|
27
|
-
"tiled",
|
|
28
|
-
"tileset",
|
|
29
|
-
"mapeditor",
|
|
30
|
-
"browser",
|
|
31
|
-
"electron",
|
|
32
|
-
"mobile",
|
|
33
|
-
"cordova"
|
|
34
|
-
];
|
|
35
|
-
var repository = {
|
|
36
|
-
type: "git",
|
|
37
|
-
url: "git+https://github.com/melonjs/debug-plugin.git"
|
|
38
|
-
};
|
|
39
|
-
var bugs = {
|
|
40
|
-
url: "https://github.com/melonjs/debug-plugin/issues"
|
|
41
|
-
};
|
|
42
|
-
var license = "MIT";
|
|
43
|
-
var author = "Olivier Biot (AltByte Pte Ltd)";
|
|
44
|
-
var funding = "https://github.com/sponsors/melonjs";
|
|
45
|
-
var engines = {
|
|
46
|
-
node: ">= 19"
|
|
47
|
-
};
|
|
48
|
-
var main = "dist/@melonjs/debug-plugin.js";
|
|
49
|
-
var module = "dist/@melonjs/debug-plugin.js";
|
|
50
|
-
var types = "dist/@melonjs/debug-plugin.d.ts";
|
|
51
|
-
var sideEffects = false;
|
|
52
|
-
var files = [
|
|
53
|
-
"dist/",
|
|
54
|
-
"src/",
|
|
55
|
-
"package.json",
|
|
56
|
-
"README.md",
|
|
57
|
-
"LICENSE"
|
|
58
|
-
];
|
|
59
|
-
var peerDependencies = {
|
|
60
|
-
melonjs: ">=15.12.0"
|
|
61
|
-
};
|
|
62
|
-
var devDependencies = {
|
|
63
|
-
"@babel/eslint-parser": "^7.23.10",
|
|
64
|
-
"@babel/plugin-syntax-import-assertions": "^7.23.3",
|
|
65
|
-
"@rollup/plugin-commonjs": "^25.0.7",
|
|
66
|
-
"@rollup/plugin-image": "^3.0.3",
|
|
67
|
-
"@rollup/plugin-json": "^6.0.7",
|
|
68
|
-
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
69
|
-
"@rollup/plugin-replace": "^5.0.5",
|
|
70
|
-
"del-cli": "^5.1.0",
|
|
71
|
-
eslint: "^8.56.0",
|
|
72
|
-
"eslint-plugin-jsdoc": "^48.0.6",
|
|
73
|
-
rollup: "^4.10.0",
|
|
74
|
-
"rollup-plugin-bundle-size": "^1.0.3",
|
|
75
|
-
"rollup-plugin-string": "^3.0.0",
|
|
76
|
-
typescript: "^5.3.3"
|
|
77
|
-
};
|
|
78
|
-
var scripts = {
|
|
79
|
-
build: "npm run lint && rollup -c --silent && npm run types",
|
|
80
|
-
lint: "eslint src/**.js rollup.config.mjs",
|
|
81
|
-
prepublishOnly: "npm run build",
|
|
82
|
-
clean: "del-cli --force dist/*",
|
|
83
|
-
types: "tsc"
|
|
84
|
-
};
|
|
85
|
-
var _package = {
|
|
86
|
-
name: name,
|
|
87
|
-
version: version,
|
|
88
|
-
description: description,
|
|
89
|
-
homepage: homepage,
|
|
90
|
-
type: type,
|
|
91
|
-
keywords: keywords,
|
|
92
|
-
repository: repository,
|
|
93
|
-
bugs: bugs,
|
|
94
|
-
license: license,
|
|
95
|
-
author: author,
|
|
96
|
-
funding: funding,
|
|
97
|
-
engines: engines,
|
|
98
|
-
main: main,
|
|
99
|
-
module: module,
|
|
100
|
-
types: types,
|
|
101
|
-
sideEffects: sideEffects,
|
|
102
|
-
files: files,
|
|
103
|
-
peerDependencies: peerDependencies,
|
|
104
|
-
devDependencies: devDependencies,
|
|
105
|
-
scripts: scripts
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
class Counters {
|
|
109
|
-
constructor() {
|
|
110
|
-
this.stats = [];
|
|
111
|
-
}
|
|
112
|
-
reset() {
|
|
113
|
-
Object.keys(this.stats).forEach((stat) => {
|
|
114
|
-
this.stats[stat] = 0;
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
inc(stat, value) {
|
|
118
|
-
this.stats[stat] += (value || 1);
|
|
119
|
-
}
|
|
120
|
-
get(stat) {
|
|
121
|
-
return this.stats[stat] || 0;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
var img = "data:image/png;base64,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";
|
|
126
|
-
|
|
127
|
-
var fontDataSource = "info face=PressStart2P size=10 bold=0 italic=0 charset= unicode= stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=0,0 outline=0\ncommon lineHeight=10 base=10 scaleW=128 scaleH=128 pages=1 packed=0\npage id=0 file=\"PressStart2P.png\"\nchars count=95\nchar id=32 x=1 y=1 width=0 height=0 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=15\nchar id=33 x=1 y=2 width=5 height=10 xoffset=3 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=34 x=1 y=13 width=8 height=5 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=35 x=7 y=1 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=36 x=1 y=19 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=37 x=1 y=30 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=38 x=1 y=41 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=39 x=10 y=12 width=4 height=5 xoffset=3 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=40 x=1 y=52 width=6 height=10 xoffset=3 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=41 x=1 y=63 width=6 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=42 x=1 y=74 width=10 height=8 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15\nchar id=43 x=8 y=52 width=9 height=8 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=15\nchar id=44 x=8 y=61 width=5 height=5 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=15\nchar id=45 x=8 y=67 width=9 height=2 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15\nchar id=46 x=14 y=61 width=4 height=4 xoffset=3 yoffset=6 xadvance=10 page=0 chnl=15\nchar id=47 x=12 y=18 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=48 x=18 y=1 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=49 x=12 y=29 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=50 x=12 y=40 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=51 x=22 y=29 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=52 x=23 y=12 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=53 x=29 y=1 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=54 x=1 y=83 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=55 x=1 y=94 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=56 x=1 y=105 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=57 x=1 y=116 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=58 x=18 y=51 width=4 height=8 xoffset=3 yoffset=1 xadvance=10 page=0 chnl=15\nchar id=59 x=12 y=70 width=5 height=9 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=15\nchar id=60 x=12 y=80 width=8 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=61 x=23 y=23 width=10 height=5 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=62 x=18 y=66 width=8 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=63 x=23 y=40 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=64 x=33 y=29 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=65 x=23 y=51 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=66 x=34 y=12 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=67 x=40 y=1 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=68 x=12 y=91 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=69 x=21 y=77 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=70 x=27 y=62 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=71 x=34 y=40 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=72 x=34 y=51 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=73 x=44 y=23 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=74 x=45 y=12 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=75 x=51 y=1 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=76 x=12 y=102 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=77 x=12 y=113 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=78 x=22 y=102 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=79 x=23 y=88 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=80 x=32 y=73 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=81 x=38 y=62 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=82 x=23 y=113 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=83 x=33 y=99 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=84 x=34 y=84 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=85 x=43 y=73 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=86 x=34 y=110 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=87 x=44 y=84 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=88 x=44 y=95 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=89 x=45 y=106 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=90 x=45 y=117 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=91 x=45 y=34 width=6 height=10 xoffset=3 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=92 x=45 y=45 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=93 x=52 y=34 width=6 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=94 x=34 y=23 width=8 height=4 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=95 x=34 y=121 width=10 height=2 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=15\nchar id=96 x=15 y=12 width=4 height=4 xoffset=4 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=97 x=54 y=23 width=10 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=98 x=56 y=12 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=99 x=62 y=1 width=10 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=100 x=49 y=56 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=101 x=56 y=45 width=10 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=102 x=59 y=31 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=103 x=54 y=67 width=10 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=104 x=60 y=54 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=105 x=67 y=42 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=106 x=67 y=9 width=8 height=11 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=107 x=69 y=21 width=10 height=10 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=108 x=76 y=1 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=109 x=76 y=12 width=10 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=110 x=69 y=32 width=10 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=111 x=86 y=1 width=10 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=112 x=97 y=1 width=10 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=113 x=108 y=1 width=10 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=114 x=87 y=10 width=9 height=8 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=115 x=97 y=11 width=10 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=116 x=108 y=11 width=9 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=117 x=87 y=19 width=10 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=118 x=98 y=19 width=9 height=8 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=119 x=80 y=27 width=10 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=120 x=108 y=22 width=10 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=121 x=91 y=28 width=10 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=122 x=80 y=35 width=10 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=123 x=118 y=11 width=6 height=10 xoffset=3 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=124 x=102 y=28 width=4 height=10 xoffset=4 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=125 x=119 y=22 width=6 height=10 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15\nchar id=126 x=91 y=38 width=10 height=5 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\nchar id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15\n";
|
|
128
|
-
|
|
129
|
-
const DEBUG_HEIGHT = 50;
|
|
130
|
-
|
|
131
|
-
class DebugPanel extends Renderable {
|
|
132
|
-
constructor(debugToggle) {
|
|
133
|
-
// call the super constructor
|
|
134
|
-
super(0, 0, video.renderer.width, DEBUG_HEIGHT );
|
|
135
|
-
|
|
136
|
-
// enable collision and event detection
|
|
137
|
-
this.isKinematic = false;
|
|
138
|
-
|
|
139
|
-
// to hold the debug CheckBox
|
|
140
|
-
// zone and status
|
|
141
|
-
this.checkbox = {};
|
|
142
|
-
|
|
143
|
-
// Useful counters
|
|
144
|
-
this.counters = new Counters([
|
|
145
|
-
"shapes",
|
|
146
|
-
"sprites",
|
|
147
|
-
"velocity",
|
|
148
|
-
"bounds",
|
|
149
|
-
"children"
|
|
150
|
-
]);
|
|
151
|
-
|
|
152
|
-
// for z ordering
|
|
153
|
-
// make it ridiculously high
|
|
154
|
-
this.pos.z = Infinity;
|
|
155
|
-
|
|
156
|
-
// visibility flag
|
|
157
|
-
this.visible = false;
|
|
158
|
-
|
|
159
|
-
// frame update time in ms
|
|
160
|
-
this.frameUpdateTime = 0;
|
|
161
|
-
|
|
162
|
-
// frame draw time in ms
|
|
163
|
-
this.frameDrawTime = 0;
|
|
164
|
-
|
|
165
|
-
// set the object GUID value
|
|
166
|
-
this.GUID = "debug-" + utils.createGUID();
|
|
167
|
-
|
|
168
|
-
// set the object entity name
|
|
169
|
-
this.name = "debugPanel";
|
|
170
|
-
|
|
171
|
-
// the debug panel version
|
|
172
|
-
this.version = "14.8.3";
|
|
173
|
-
|
|
174
|
-
// persistent
|
|
175
|
-
this.isPersistent = true;
|
|
176
|
-
|
|
177
|
-
// a floating object
|
|
178
|
-
this.floating = true;
|
|
179
|
-
|
|
180
|
-
// renderable
|
|
181
|
-
this.isRenderable = true;
|
|
182
|
-
|
|
183
|
-
// always update, even when not visible
|
|
184
|
-
this.alwaysUpdate = true;
|
|
185
|
-
|
|
186
|
-
// WebGL/Canvas compatibility
|
|
187
|
-
this.canvas = video.createCanvas(this.width, this.height, true);
|
|
188
|
-
|
|
189
|
-
// create a default font, with fixed char width
|
|
190
|
-
this.font_size = 10;
|
|
191
|
-
this.mod = 2;
|
|
192
|
-
if (this.width < 500) {
|
|
193
|
-
this.font_size = 7;
|
|
194
|
-
this.mod = this.mod * (this.font_size / 10);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// create the bitmapfont
|
|
198
|
-
var fontImage = new Image();
|
|
199
|
-
fontImage.src = img;
|
|
200
|
-
|
|
201
|
-
this.font = new BitmapText(0, 0, {
|
|
202
|
-
fontData: fontDataSource,
|
|
203
|
-
font: fontImage
|
|
204
|
-
});
|
|
205
|
-
this.font.name = "debugPanelFont";
|
|
206
|
-
|
|
207
|
-
// clickable areas
|
|
208
|
-
var hash = utils.getUriFragment();
|
|
209
|
-
var size = 10 * this.mod;
|
|
210
|
-
this.checkbox.renderHitBox = new Rect(250, 2, size, size);
|
|
211
|
-
this.checkbox.renderHitBox.selected = hash.hitbox || false;
|
|
212
|
-
this.checkbox.renderVelocity = new Rect(250, 17, size, size);
|
|
213
|
-
this.checkbox.renderVelocity.selected = hash.velocity || false;
|
|
214
|
-
this.checkbox.renderQuadTree = new Rect(410, 2, size, size);
|
|
215
|
-
this.checkbox.renderVelocity.selected = hash.quadtree || false;
|
|
216
|
-
|
|
217
|
-
// add some keyboard shortcuts
|
|
218
|
-
this.debugToggle = debugToggle;
|
|
219
|
-
|
|
220
|
-
// some internal string/length
|
|
221
|
-
this.help_str = "["+String.fromCharCode(32 + this.debugToggle)+"]show/hide";
|
|
222
|
-
this.help_str_len = this.font.measureText(this.help_str).width;
|
|
223
|
-
this.fps_str_len = this.font.measureText("00/00 fps").width;
|
|
224
|
-
this.memoryPositionX = 325 * this.mod;
|
|
225
|
-
|
|
226
|
-
// resize the panel if the browser is resized
|
|
227
|
-
event.on(event.CANVAS_ONRESIZE, (w) => {
|
|
228
|
-
this.resize(w, DEBUG_HEIGHT);
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
// few variables to keep track of time
|
|
232
|
-
this.frameUpdateStartTime = 0;
|
|
233
|
-
this.frameDrawStartTime = 0;
|
|
234
|
-
this.frameUpdateTime = 0;
|
|
235
|
-
this.frameDrawTime = 0;
|
|
236
|
-
|
|
237
|
-
event.on(event.GAME_BEFORE_UPDATE, (time) => {
|
|
238
|
-
this.frameUpdateStartTime = time;
|
|
239
|
-
});
|
|
240
|
-
event.on(event.GAME_AFTER_UPDATE, (time) => {
|
|
241
|
-
this.frameUpdateTime = time - this.frameUpdateStartTime;
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
event.on(event.GAME_BEFORE_DRAW, (time) => {
|
|
245
|
-
this.frameDrawStartTime = time;
|
|
246
|
-
this.counters.reset();
|
|
247
|
-
});
|
|
248
|
-
event.on(event.GAME_AFTER_DRAW, (time) => {
|
|
249
|
-
this.frameDrawTime = time - this.frameDrawStartTime;
|
|
250
|
-
});
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
this.anchorPoint.set(0, 0);
|
|
254
|
-
|
|
255
|
-
//patch patch patch !
|
|
256
|
-
this.patchSystemFn();
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* patch system fn to draw debug information
|
|
261
|
-
*/
|
|
262
|
-
patchSystemFn() {
|
|
263
|
-
var _this = this;
|
|
264
|
-
|
|
265
|
-
// patch renderable.js
|
|
266
|
-
plugin.patch(Renderable, "postDraw", function (renderer) {
|
|
267
|
-
|
|
268
|
-
// call the original Renderable.postDraw function
|
|
269
|
-
this._patched.apply(this, arguments);
|
|
270
|
-
|
|
271
|
-
// increment the sprites counter
|
|
272
|
-
if (typeof this.image !== "undefined") {
|
|
273
|
-
_this.counters.inc("sprites");
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// increment the bound counter
|
|
277
|
-
_this.counters.inc("bounds");
|
|
278
|
-
|
|
279
|
-
// increment the children counter
|
|
280
|
-
if (this instanceof Container) {
|
|
281
|
-
_this.counters.inc("children");
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// don't do anything else if the panel is hidden
|
|
285
|
-
if (_this.visible) {
|
|
286
|
-
|
|
287
|
-
// omit following object as they are patched later through different methods
|
|
288
|
-
// XXX TODO: make this patched method more generic at Renderable level
|
|
289
|
-
if (!(this instanceof Entity) && !(this.ancestor instanceof Entity) && !(this instanceof Text) &&
|
|
290
|
-
!(this instanceof BitmapText) && !(this instanceof Camera2d)
|
|
291
|
-
&& !(this instanceof ImageLayer)) {
|
|
292
|
-
|
|
293
|
-
// draw the renderable bounding box
|
|
294
|
-
if (_this.checkbox.renderHitBox.selected && this.getBounds().isFinite()) {
|
|
295
|
-
|
|
296
|
-
if (typeof this.ancestor !== "undefined") {
|
|
297
|
-
renderer.save();
|
|
298
|
-
if (!this.floating) {
|
|
299
|
-
var absolutePosition = this.ancestor.getAbsolutePosition();
|
|
300
|
-
renderer.translate(
|
|
301
|
-
-absolutePosition.x,
|
|
302
|
-
-absolutePosition.y
|
|
303
|
-
);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
var bounds = this.getBounds();
|
|
308
|
-
|
|
309
|
-
renderer.setColor("green");
|
|
310
|
-
renderer.stroke(bounds);
|
|
311
|
-
|
|
312
|
-
// the sprite mask if defined
|
|
313
|
-
if (typeof this.mask !== "undefined") {
|
|
314
|
-
renderer.setColor("orange");
|
|
315
|
-
renderer.stroke(this.mask);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
if (typeof this.body !== "undefined") {
|
|
319
|
-
renderer.translate(bounds.x, bounds.y);
|
|
320
|
-
|
|
321
|
-
renderer.setColor("orange");
|
|
322
|
-
renderer.stroke(this.body.getBounds());
|
|
323
|
-
|
|
324
|
-
// draw all defined shapes
|
|
325
|
-
renderer.setColor("red");
|
|
326
|
-
for (var i = this.body.shapes.length, shape; i--, (shape = this.body.shapes[i]);) {
|
|
327
|
-
renderer.stroke(shape);
|
|
328
|
-
_this.counters.inc("shapes");
|
|
329
|
-
}
|
|
330
|
-
renderer.translate(-bounds.x, -bounds.y);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
if (typeof this.ancestor !== "undefined") {
|
|
334
|
-
renderer.restore();
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
plugin.patch(BitmapText, "draw", function (renderer) {
|
|
342
|
-
// call the original Sprite.draw function
|
|
343
|
-
this._patched.apply(this, arguments);
|
|
344
|
-
|
|
345
|
-
// draw the font rectangle
|
|
346
|
-
if (_this.visible && _this.checkbox.renderHitBox.selected && this.name !== "debugPanelFont") {
|
|
347
|
-
var bounds = this.getBounds();
|
|
348
|
-
|
|
349
|
-
if (typeof this.ancestor !== "undefined") {
|
|
350
|
-
var ax = this.anchorPoint.x * bounds.width,
|
|
351
|
-
ay = this.anchorPoint.y * bounds.height;
|
|
352
|
-
// translate back as the bounds position
|
|
353
|
-
// is already adjusted to the anchor Point
|
|
354
|
-
renderer.save();
|
|
355
|
-
renderer.translate(ax, ay);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
renderer.setColor("green");
|
|
359
|
-
renderer.stroke(bounds);
|
|
360
|
-
|
|
361
|
-
if (typeof this.ancestor !== "undefined") {
|
|
362
|
-
renderer.restore();
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
// patch text.js
|
|
368
|
-
plugin.patch(Text, "draw", function (renderer) {
|
|
369
|
-
// call the original Text.draw function
|
|
370
|
-
this._patched.apply(this, arguments);
|
|
371
|
-
|
|
372
|
-
if (_this.visible && _this.checkbox.renderHitBox.selected) {
|
|
373
|
-
var bounds = this.getBounds();
|
|
374
|
-
|
|
375
|
-
if (typeof this.ancestor !== "undefined") {
|
|
376
|
-
renderer.save();
|
|
377
|
-
|
|
378
|
-
// if this object of this renderable parent is not the root container
|
|
379
|
-
if (!this.root && !this.ancestor.root && this.ancestor.isFloating) {
|
|
380
|
-
var absolutePosition = this.ancestor.getAbsolutePosition();
|
|
381
|
-
renderer.translate(
|
|
382
|
-
-absolutePosition.x,
|
|
383
|
-
-absolutePosition.y
|
|
384
|
-
);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
renderer.setColor("green");
|
|
389
|
-
renderer.stroke(bounds);
|
|
390
|
-
|
|
391
|
-
if (typeof this.ancestor !== "undefined") {
|
|
392
|
-
renderer.restore();
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
// patch entities.js
|
|
398
|
-
plugin.patch(Entity, "postDraw", function (renderer) {
|
|
399
|
-
// don't do anything else if the panel is hidden
|
|
400
|
-
if (_this.visible) {
|
|
401
|
-
|
|
402
|
-
// check if debug mode is enabled
|
|
403
|
-
if (_this.checkbox.renderHitBox.selected) {
|
|
404
|
-
|
|
405
|
-
renderer.save();
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
if (typeof this.ancestor !== "undefined") {
|
|
409
|
-
// if this object of this renderable parent is not the root container
|
|
410
|
-
if (!this.floating) {
|
|
411
|
-
var absolutePosition = this.ancestor.getAbsolutePosition();
|
|
412
|
-
renderer.translate(
|
|
413
|
-
-absolutePosition.x,
|
|
414
|
-
-absolutePosition.y
|
|
415
|
-
);
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
if (this.renderable instanceof Renderable) {
|
|
420
|
-
var rbounds = this.renderable.getBounds();
|
|
421
|
-
var rx = -rbounds.x - this.anchorPoint.x * rbounds.width,
|
|
422
|
-
ry = -rbounds.y - this.anchorPoint.y * rbounds.height;
|
|
423
|
-
|
|
424
|
-
renderer.setColor("green");
|
|
425
|
-
renderer.translate(rx, ry);
|
|
426
|
-
renderer.stroke(rbounds);
|
|
427
|
-
renderer.translate(-rx, -ry);
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
renderer.translate(
|
|
431
|
-
this.body.getBounds().x,
|
|
432
|
-
this.body.getBounds().y
|
|
433
|
-
);
|
|
434
|
-
|
|
435
|
-
renderer.translate(
|
|
436
|
-
-this.anchorPoint.x * this.body.getBounds().width,
|
|
437
|
-
-this.anchorPoint.y * this.body.getBounds().height
|
|
438
|
-
);
|
|
439
|
-
|
|
440
|
-
// draw the bounding rect shape
|
|
441
|
-
renderer.setColor("orange");
|
|
442
|
-
renderer.stroke(this.body.getBounds());
|
|
443
|
-
|
|
444
|
-
// draw all defined shapes
|
|
445
|
-
renderer.setColor("red");
|
|
446
|
-
for (var i = this.body.shapes.length, shape; i--, (shape = this.body.shapes[i]);) {
|
|
447
|
-
renderer.stroke(shape);
|
|
448
|
-
_this.counters.inc("shapes");
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
renderer.restore();
|
|
452
|
-
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
if (_this.checkbox.renderVelocity.selected && (this.body.vel.x || this.body.vel.y)) {
|
|
456
|
-
var bounds = this.body.getBounds();
|
|
457
|
-
var hWidth = bounds.width / 2;
|
|
458
|
-
var hHeight = bounds.height / 2;
|
|
459
|
-
|
|
460
|
-
renderer.save();
|
|
461
|
-
renderer.setLineWidth(1);
|
|
462
|
-
|
|
463
|
-
renderer.setColor("blue");
|
|
464
|
-
renderer.translate(0, -hHeight);
|
|
465
|
-
renderer.strokeLine(0, 0, ~~(this.body.vel.x * hWidth), ~~(this.body.vel.y * hHeight));
|
|
466
|
-
_this.counters.inc("velocity");
|
|
467
|
-
|
|
468
|
-
renderer.restore();
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
// call the original Entity.postDraw function
|
|
472
|
-
this._patched.apply(this, arguments);
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* show the debug panel
|
|
478
|
-
*/
|
|
479
|
-
show() {
|
|
480
|
-
if (!this.visible) {
|
|
481
|
-
// add the debug panel to the game world
|
|
482
|
-
game.world.addChild(this, Infinity);
|
|
483
|
-
// register a mouse event for the checkboxes
|
|
484
|
-
input.registerPointerEvent("pointerdown", this, this.onClick.bind(this));
|
|
485
|
-
// mark it as visible
|
|
486
|
-
this.visible = true;
|
|
487
|
-
// force repaint
|
|
488
|
-
game.repaint();
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
/**
|
|
493
|
-
* hide the debug panel
|
|
494
|
-
*/
|
|
495
|
-
hide() {
|
|
496
|
-
if (this.visible) {
|
|
497
|
-
// release the mouse event for the checkboxes
|
|
498
|
-
input.releasePointerEvent("pointerdown", this);
|
|
499
|
-
// remove the debug panel from the game world
|
|
500
|
-
game.world.removeChild(this, true);
|
|
501
|
-
// mark it as invisible
|
|
502
|
-
this.visible = false;
|
|
503
|
-
// force repaint
|
|
504
|
-
game.repaint();
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
update() {
|
|
509
|
-
// update the FPS counter
|
|
510
|
-
timer.countFPS();
|
|
511
|
-
|
|
512
|
-
return this.visible;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
onClick(e) {
|
|
516
|
-
// check the clickable areas
|
|
517
|
-
if (this.checkbox.renderHitBox.contains(e.gameX, e.gameY)) {
|
|
518
|
-
this.checkbox.renderHitBox.selected = !this.checkbox.renderHitBox.selected;
|
|
519
|
-
} else if (this.checkbox.renderVelocity.contains(e.gameX, e.gameY)) {
|
|
520
|
-
// does nothing for now, since velocity is
|
|
521
|
-
// rendered together with hitboxes (is a global debug flag required?)
|
|
522
|
-
this.checkbox.renderVelocity.selected = !this.checkbox.renderVelocity.selected;
|
|
523
|
-
} else if (this.checkbox.renderQuadTree.contains(e.gameX, e.gameY)) {
|
|
524
|
-
this.checkbox.renderQuadTree.selected = !this.checkbox.renderQuadTree.selected;
|
|
525
|
-
}
|
|
526
|
-
// force repaint
|
|
527
|
-
game.repaint();
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
drawQuadTreeNode(renderer, node) {
|
|
531
|
-
var bounds = node.bounds;
|
|
532
|
-
|
|
533
|
-
// draw the current bounds
|
|
534
|
-
if (node.nodes.length === 0) {
|
|
535
|
-
// cap the alpha value to 0.4 maximum
|
|
536
|
-
var _alpha = (node.objects.length * 0.4) / collision.maxChildren;
|
|
537
|
-
if (_alpha > 0.0) {
|
|
538
|
-
renderer.save();
|
|
539
|
-
renderer.setColor("rgba(255,0,0," + _alpha + ")");
|
|
540
|
-
renderer.fillRect(bounds.left, bounds.top, bounds.width, bounds.height);
|
|
541
|
-
renderer.restore();
|
|
542
|
-
}
|
|
543
|
-
} else {
|
|
544
|
-
//has subnodes? drawQuadtree them!
|
|
545
|
-
for (var i = 0; i < node.nodes.length; i++) {
|
|
546
|
-
this.drawQuadTreeNode(renderer, node.nodes[i]);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
drawQuadTree(renderer) {
|
|
552
|
-
var x = game.viewport.pos.x;
|
|
553
|
-
var y = game.viewport.pos.y;
|
|
554
|
-
|
|
555
|
-
renderer.translate(-x, -y);
|
|
556
|
-
|
|
557
|
-
this.drawQuadTreeNode(renderer, game.world.broadphase);
|
|
558
|
-
|
|
559
|
-
renderer.translate(x, y);
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
/** @private */
|
|
563
|
-
drawMemoryGraph(renderer, endX) {
|
|
564
|
-
if (window && window.performance && window.performance.memory) {
|
|
565
|
-
var usedHeap = Math.round(window.performance.memory.usedJSHeapSize / 1048576, 2);
|
|
566
|
-
var totalHeap = Math.round(window.performance.memory.totalJSHeapSize / 1048576, 2);
|
|
567
|
-
var maxLen = ~~(endX - this.memoryPositionX - 5);
|
|
568
|
-
var len = maxLen * (usedHeap / totalHeap);
|
|
569
|
-
|
|
570
|
-
renderer.setColor("#0065AD");
|
|
571
|
-
renderer.fillRect(this.memoryPositionX, 0, maxLen, 20);
|
|
572
|
-
renderer.setColor("#3AA4F0");
|
|
573
|
-
renderer.fillRect(this.memoryPositionX + 1, 1, len - 1, 17);
|
|
574
|
-
|
|
575
|
-
this.font.draw(renderer, "Heap : " + usedHeap + "/" + totalHeap + " MB", this.memoryPositionX + 5, 2 * this.mod);
|
|
576
|
-
} else {
|
|
577
|
-
// Heap Memory information not available
|
|
578
|
-
this.font.draw(renderer, "Heap : ??/?? MB", this.memoryPositionX, 2 * this.mod);
|
|
579
|
-
}
|
|
580
|
-
this.font.draw(renderer, "Pool : " + pool.getInstanceCount(), this.memoryPositionX, 10 * this.mod);
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
draw(renderer) {
|
|
584
|
-
renderer.save();
|
|
585
|
-
|
|
586
|
-
// draw the QuadTree (before the panel)
|
|
587
|
-
if (this.checkbox.renderQuadTree.selected === true) {
|
|
588
|
-
this.drawQuadTree(renderer);
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
// draw the panel
|
|
592
|
-
renderer.setGlobalAlpha(0.5);
|
|
593
|
-
renderer.setColor("black");
|
|
594
|
-
renderer.fillRect(
|
|
595
|
-
this.left, this.top,
|
|
596
|
-
this.width, this.height
|
|
597
|
-
);
|
|
598
|
-
renderer.setGlobalAlpha(1.0);
|
|
599
|
-
renderer.setColor("white");
|
|
600
|
-
|
|
601
|
-
this.font.textAlign = "left";
|
|
602
|
-
|
|
603
|
-
this.font.draw(renderer, "#objects : " + game.world.children.length, 5 * this.mod, 2 * this.mod);
|
|
604
|
-
this.font.draw(renderer, "#draws : " + game.world.drawCount, 5 * this.mod, 10 * this.mod);
|
|
605
|
-
|
|
606
|
-
// debug checkboxes
|
|
607
|
-
this.font.draw(renderer, "?hitbox [" + (this.checkbox.renderHitBox.selected ? "x" : " ") + "]", 75 * this.mod, 2 * this.mod);
|
|
608
|
-
this.font.draw(renderer, "?velocity [" + (this.checkbox.renderVelocity.selected ? "x" : " ") + "]", 75 * this.mod, 10 * this.mod);
|
|
609
|
-
|
|
610
|
-
this.font.draw(renderer, "?QuadTree [" + (this.checkbox.renderQuadTree.selected ? "x" : " ") + "]", 150 * this.mod, 2 * this.mod);
|
|
611
|
-
|
|
612
|
-
// draw the update duration
|
|
613
|
-
this.font.draw(renderer, "Update : " + this.frameUpdateTime.toFixed(2) + " ms", 225 * this.mod, 2 * this.mod);
|
|
614
|
-
// draw the draw duration
|
|
615
|
-
this.font.draw(renderer, "Draw : " + this.frameDrawTime.toFixed(2) + " ms", 225 * this.mod, 10 * this.mod);
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
// Draw color code hints (not supported with bitmapfont)
|
|
619
|
-
//this.font.fillStyle.copy("red");
|
|
620
|
-
this.font.draw(renderer, "Shapes : " + this.counters.get("shapes"), 5 * this.mod, 17 * this.mod);
|
|
621
|
-
|
|
622
|
-
//this.font.fillStyle.copy("green");
|
|
623
|
-
this.font.draw(renderer, "Sprites : " + this.counters.get("sprites"), 75 * this.mod, 17 * this.mod);
|
|
624
|
-
|
|
625
|
-
//this.font.fillStyle.copy("blue");
|
|
626
|
-
this.font.draw(renderer, "Velocity : " + this.counters.get("velocity"), 150 * this.mod, 17 * this.mod);
|
|
627
|
-
|
|
628
|
-
//this.font.fillStyle.copy("orange");
|
|
629
|
-
this.font.draw(renderer, "Bounds : " + this.counters.get("bounds"), 225 * this.mod, 17 * this.mod);
|
|
630
|
-
|
|
631
|
-
//this.font.fillStyle.copy("purple");
|
|
632
|
-
this.font.draw(renderer, "Children : " + this.counters.get("children"), 325 * this.mod, 17 * this.mod);
|
|
633
|
-
|
|
634
|
-
// Reset font style
|
|
635
|
-
//this.font.setFont("courier", this.font_size, "white");
|
|
636
|
-
|
|
637
|
-
// draw the memory heap usage
|
|
638
|
-
var endX = this.width - 5;
|
|
639
|
-
this.drawMemoryGraph(renderer, endX - this.help_str_len);
|
|
640
|
-
|
|
641
|
-
this.font.textAlign = "right";
|
|
642
|
-
|
|
643
|
-
// some help string
|
|
644
|
-
this.font.draw(renderer, this.help_str, endX, 17 * this.mod);
|
|
645
|
-
|
|
646
|
-
//fps counter
|
|
647
|
-
var fps_str = timer.fps + "/" + timer.maxfps + " fps";
|
|
648
|
-
this.font.draw(renderer, fps_str, endX, 2 * this.mod);
|
|
649
|
-
|
|
650
|
-
renderer.restore();
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
onDestroyEvent() {
|
|
654
|
-
// hide the panel
|
|
655
|
-
this.hide();
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
/**
|
|
660
|
-
* @classdesc
|
|
661
|
-
* a simple debug panel plugin <br>
|
|
662
|
-
* <img src="images/debugPanel.png"/> <br>
|
|
663
|
-
* <b>usage : </b><br>
|
|
664
|
-
* • upon loading the debug panel, it will be automatically registered under me.plugins.debugPanel <br>
|
|
665
|
-
* • you can then press the default "s" key to show or hide the panel, or use me.plugins.debugPanel.show() and me.plugins.debugPanel.show(), or add #debug as a parameter to your URL e.g. http://myURL/index.html#debug <br>
|
|
666
|
-
* • default key can be configured using the following parameters in the url : e.g. http://myURL/index.html#debugToggleKey=d <br>
|
|
667
|
-
* <b>the debug panel provides the following information : </b><br>
|
|
668
|
-
* • amount of total objects currently active in the current stage <br>
|
|
669
|
-
* • amount of draws operation <br>
|
|
670
|
-
* • amount of body shape (for collision) <br>
|
|
671
|
-
* • amount of bounding box <br>
|
|
672
|
-
* • amount of sprites objects <br>
|
|
673
|
-
* • amount of objects currently inactive in the the object pool <br>
|
|
674
|
-
* • memory usage (Heap Memory information is only available under Chrome) <br>
|
|
675
|
-
* • frame update time (in ms) <br>
|
|
676
|
-
* • frame draw time (in ms) <br>
|
|
677
|
-
* • current fps rate vs target fps <br>
|
|
678
|
-
* additionally, using the checkbox in the panel it is also possible to display : <br>
|
|
679
|
-
* • the hitbox or bounding box for all objects <br>
|
|
680
|
-
* • current velocity vector <br>
|
|
681
|
-
* • quadtree spatial visualization <br>
|
|
682
|
-
* @augments plugin.BasePlugin
|
|
683
|
-
*/
|
|
684
|
-
class DebugPanelPlugin extends plugin.BasePlugin {
|
|
685
|
-
/**
|
|
686
|
-
* @param {number} [debugToggle=input.KEY.S] - a default key to toggle the debug panel visibility state
|
|
687
|
-
* @see input.KEY for default key options
|
|
688
|
-
*/
|
|
689
|
-
constructor(debugToggle = input.KEY.S) {
|
|
690
|
-
// call the super constructor
|
|
691
|
-
super();
|
|
692
|
-
|
|
693
|
-
// minimum melonJS version expected
|
|
694
|
-
this.version = "15.12.0";
|
|
695
|
-
|
|
696
|
-
// hello world
|
|
697
|
-
console.log(`${name} ${version} | ${homepage}`);
|
|
698
|
-
|
|
699
|
-
this.debugToggle = debugToggle;
|
|
700
|
-
|
|
701
|
-
this.panel = new DebugPanel(debugToggle);
|
|
702
|
-
|
|
703
|
-
this.keyHandler = event.on(event.KEYDOWN, (action, keyCode) => {
|
|
704
|
-
if (keyCode === this.debugToggle) {
|
|
705
|
-
this.toggle();
|
|
706
|
-
}
|
|
707
|
-
});
|
|
708
|
-
|
|
709
|
-
// if "#debug" is present in the URL
|
|
710
|
-
if (utils.getUriFragment().debug === true) {
|
|
711
|
-
this.show();
|
|
712
|
-
} // else keep it hidden
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
/**
|
|
716
|
-
* show the debug panel
|
|
717
|
-
*/
|
|
718
|
-
show() {
|
|
719
|
-
this.panel.show();
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
/**
|
|
723
|
-
* hide the debug panel
|
|
724
|
-
*/
|
|
725
|
-
hide() {
|
|
726
|
-
this.panel.hide();
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
/**
|
|
730
|
-
* toggle the debug panel visibility state
|
|
731
|
-
*/
|
|
732
|
-
toggle() {
|
|
733
|
-
if (this.panel.visible) {
|
|
734
|
-
this.panel.hide();
|
|
735
|
-
} else {
|
|
736
|
-
this.panel.show();
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
export { DebugPanelPlugin };
|