diff options
[WGL/P] Added a proper level management system, added more options to the menu
1 files changed, 52 insertions, 0 deletions
| -rw-r--r-- | Year 2/Computer Graphics with WebGL/Project/menu.js | 52 |
diff --git a/Year 2/Computer Graphics with WebGL/Project/menu.js b/Year 2/Computer Graphics with WebGL/Project/menu.js new file mode 100644 index 0000000..83a8e3c --- /dev/null +++ b/Year 2/Computer Graphics with WebGL/Project/menu.js @@ -0,0 +1,52 @@ +function initMenu() { + initLevels(); + debugChange.call(debugModeCB); +} + +const debugModeCB = document.getElementById('debug-mode'); +function debugChange() { + if(this.checked) { + gl.uniform4f(uBlack, 1,0,0,1); + gl.uniform4f(uBHBlack, 0,1,0,1); + } + else { + gl.uniform4f(uBlack, 0,0,0,1); + gl.uniform4f(uBHBlack, 0,0,0,1); + } +} +debugModeCB.addEventListener('change', debugChange); + +const onlyHorizontalCB = document.getElementById('only-horizontal'); +function horChange() { + onlyHorizontal = this.checked; +} +horChange.call(horChange); +onlyHorizontalCB.addEventListener('change', horChange); + +const onlyVerticalCB = document.getElementById('only-vertical'); +function verChange() { + onlyVertical = this.checked; +} +verChange.call(onlyVerticalCB); +onlyVerticalCB.addEventListener('change', verChange); + +/* Levels */ + +const levelSelect = document.getElementById('level-select'); +const levelDesc = document.getElementById('level-description'); + +function initLevels() { + for (var i = 0; i < levels.length; i++) { + var elem = document.createElement('option'); + elem.value = i; + elem.innerText = levels[i].name; + levelSelect.appendChild(elem); + } + levelChange.call(levelSelect); +} + +function levelChange() { + levelDesc.innerText = levels[this.value].description; + levels[this.value].load(); +} +levelSelect.addEventListener('change', levelChange); |
