From 8608f2c0e0d02e58df9280eab03a6b7a96acd5f1 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 27 Aug 2023 14:58:32 +0300 Subject: [WGL/P] Added a proper level management system, added more options to the menu --- .../Computer Graphics with WebGL/Project/menu.js | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Year 2/Computer Graphics with WebGL/Project/menu.js (limited to 'Year 2/Computer Graphics with WebGL/Project/menu.js') 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); -- cgit v1.3.1-26-gb76a