diff --git a/get-gaze-client.js b/get-gaze-client.js index 9641f3b..134cfb7 100644 --- a/get-gaze-client.js +++ b/get-gaze-client.js @@ -25,6 +25,14 @@ function downloadFile(source, target) { }); } +// Make sure vendors folder exists + +if (!fs.existsSync("vendors")){ + fs.mkdirSync("vendors"); +} + +// Download all file + for (let i = 0; i < fileList.length; i++) { let file = fileList[i]; downloadFile(file.url, file.localPath); diff --git a/index.html b/index.html index f1298b5..03d1a53 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,23 @@
Star Gazer 2000
+
+

Options

+ + + + + + + + + + + + +
Start Game
+
diff --git a/resources/css/default.css b/resources/css/default.css index 199eaf3..b224d76 100644 --- a/resources/css/default.css +++ b/resources/css/default.css @@ -15,6 +15,10 @@ body { font-family: "ShareTech"; } +canvas { + cursor: none; +} + #startScreen { width: 100vw; height: 100vh; @@ -22,11 +26,10 @@ body { } #startTitle { - position: relative; - width: 60vw; + width: 60vw; height: 10vh; - top: 20vh; - margin: 0 auto; + margin: 0 auto; + padding-top: 10vh; text-align: center; line-height: 10vh; font-size: 10vh; @@ -35,11 +38,9 @@ body { } #startButton { - position: relative; width: 30vw; height: 10vh; - top: 30vh; - margin: 0 auto; + margin: 10vh auto; border-radius: 5px; border-width: 5px; border-style: solid; @@ -52,12 +53,71 @@ body { } #startButton:hover { - cursor: pointer; + cursor: pointer; background-color: #d2ccf3; border-color: #3f0d76; color: #3f0d76; } -canvas { - cursor: none; +#versionInfo { + position: absolute; + bottom: 5vh; + right: 5vh; + text-align: right; + font-size: 3vh; + color: #fff; + text-shadow: 5px 5px 5px #611894; +} + +#startMenu { + width: 30vw; + margin: 5vh auto; + color: #FFF; +} + +#startMenu h1 { + text-align: center; + padding-bottom: 1vh; + border-style: solid; + border-width: 0 0 1px 0; + text-shadow: 3px 3px 3px #611894; +} + +#startMenu .option { + display: block; + margin-top: 2vh; +} + +#startMenu input[type="checkbox"] { + display: none; +} + +#startMenu input[type="checkbox"]+label::before { + width: 3vh; + height: 3vh; + border-radius: 5px; + border: 0.25vh solid #a2bcc5; + background-color: #fff; + display: block; + content: ""; + float: left; + margin-right: 5px; + color: #3f0d76; +} + +#startMenu input[type="checkbox"]+label:hover { + cursor: pointer; +} + +#startMenu label { + margin-left: 0.5vw; + line-height: 3.5vh; + font-size: 2.5vh; +} + +#startMenu input[type="checkbox"]:checked+label::before { + content: "\2A2F"; + text-align: center; + line-height: 3vh; + font-size: 3vh; } \ No newline at end of file diff --git a/resources/js/Config.js b/resources/js/Config.js index e9cc5dc..223fb48 100644 --- a/resources/js/Config.js +++ b/resources/js/Config.js @@ -1,9 +1,6 @@ var Config = { GAZE_SERVER_URL: "ws://localhost:8001/gaze", TARGET_FPS: 60, - SHOW_DEBUG_INFO: true, - USE_MOUSE_INPUT_AS_FAKE_GAZE_DATA: true, - USE_LOGGER: true, SCREEN_WIDTH: screen.width, SCREEN_HEIGHT: screen.height, GAME_VERSION: 0.1, diff --git a/resources/js/index.js b/resources/js/index.js index e31f8bb..0204370 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -5,26 +5,39 @@ import FakeGazeDataProvider from "./gaze/FakeGazeDataProvider.js"; import GazeDataProvider from "./gaze/GazeDataProvider.js"; var canvas = document.querySelector("canvas"), - starScreen = document.querySelector("#startScreen"); + starScreen = document.querySelector("#startScreen"), + options = { + useMouse: false, // Defauls set in HTML document with checked attribute + showDebug: false, // Defauls set in HTML document with checked attribute + logToConsole: false, // Defauls set in HTML document with checked attribute + }; function init() { - if (Config.USE_LOGGER === true) { + loadOptions(); + if (options.logToConsole === true) { Logger.enable(); } + document.querySelector("#versionInfo").innerHTML = `build ${Config.GAME_VERSION}`; document.querySelector("#startButton").addEventListener("click", prepareGame); } +function loadOptions() { + options.useMouse = document.querySelector("#useMouseInput").checked; + options.showDebug = document.querySelector("#showDebugInfo").checked; + options.logToConsole = document.querySelector("#logToConsole").checked; +} + function prepareGame() { - let dataProvider = getDataProvider(); + loadOptions(); StarGazer.init({ canvas: canvas, fps: Config.TARGET_FPS, version: `Star Gazer, build ${Config.GAME_VERSION}`, - showDebug: Config.SHOW_DEBUG_INFO, + showDebug: options.showDebug, width: Config.SCREEN_WIDTH, height: Config.SCREEN_HEIGHT, - gazeDataProvider: dataProvider, + gazeDataProvider: getDataProvider(), }); canvas.requestFullscreen().then(startGame); } @@ -36,7 +49,7 @@ function startGame() { function getDataProvider() { let provider; - if (Config.USE_MOUSE_INPUT_AS_FAKE_GAZE_DATA === true) { + if (options.useMouse === true) { provider = new FakeGazeDataProvider(); } else { provider = new GazeDataProvider();