diff --git a/src/game/global/global_variables.js b/src/game/global/global_variables.js index f4237af..54be905 100644 --- a/src/game/global/global_variables.js +++ b/src/game/global/global_variables.js @@ -51,4 +51,44 @@ function isTypingGame() { return true; } +function isTypingPracticeStage() { + let appName = sessionStorageManager.playingAppName; + + console.log(appName); + console.log(appName.indexOf("practice_")); + if(appName.indexOf("practice_") > -1) + return true; + + return false; +} + +function isTypingTestStage() { + let appName = sessionStorageManager.playingAppName; + + console.log(appName.indexOf("test_")); + if(appName.indexOf("test_") > -1) + return true; + + return false; +} + +function isTypingWordStage() { + let appName = sessionStorageManager.playingAppName; + + if((isTypingPracticeStage() || isTypingTestStage()) && appName.indexOf("_word") > -1) + return true; + + return false; +} + +function isTypingSentenceStage() { + let appName = sessionStorageManager.playingAppName; + + if((isTypingPracticeStage() || isTypingTestStage()) && appName.indexOf("_sentence") > -1) + return true; + + return false; +} + + let textStyleBasic = { font: "bold 32px Arial", fill: "#fff", align: "center", boundsAlignH: "center", boundsAlignV: "middle" }; diff --git a/src/game/lib/db_connect_manager.js b/src/game/lib/db_connect_manager.js index 17a5517..f2940e4 100644 --- a/src/game/lib/db_connect_manager.js +++ b/src/game/lib/db_connect_manager.js @@ -134,6 +134,23 @@ class DBConnectManager { xhr.send("maestro_id=" + maestroID); } + requestTypingTestAppList(maestroID, onSucceededListener, onFailedListener) { + let xhr = new XMLHttpRequest(); + xhr.open("POST", this.phpPath + "server/app/menu_active_typing_test_app_list.php", true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.onreadystatechange = function() { + if(xhr.readyState == 4 && xhr.status == 200) { + let replyJSON = JSON.parse(xhr.responseText); + + if(replyJSON != null) + onSucceededListener(replyJSON); + else + onFailedListener(replyJSON); + } + }; + xhr.send("maestro_id=" + maestroID); + } + requestPlayerHistory(maestroID, date, listener) { let historyRecordManager = new HistoryRecordManager(); diff --git a/src/game/menu/main_menu_typing_test.js b/src/game/menu/main_menu_typing_test.js new file mode 100644 index 0000000..db074e2 --- /dev/null +++ b/src/game/menu/main_menu_typing_test.js @@ -0,0 +1,12 @@ +///////////////////////////// +// Main game + +const CONTENT_ID = "Menu"; + +let game = new Phaser.Game( + GAME_SCREEN_SIZE.x, GAME_SCREEN_SIZE.y, + Phaser.CANVAS, CONTENT_ID +); + +game.state.add('MenuTypingTest', MenuTypingTest); +game.state.start('MenuTypingTest'); diff --git a/src/game/menu/menu_app.js b/src/game/menu/menu_app.js index 8997794..f0f6733 100644 --- a/src/game/menu/menu_app.js +++ b/src/game/menu/menu_app.js @@ -47,7 +47,11 @@ class MenuApp { // console.log(replyJSON); self.makeMouseAppButtons(replyJSON.MouseAppList); - self.makeTypingButtons(replyJSON.TypingPracticeAppCount, replyJSON.TypingAppList); + self.makeTypingButtons( + replyJSON.TypingPracticeAppCount, + replyJSON.TypingTestAppCount, + replyJSON.TypingAppList + ); } makeMouseAppButtons(mouseAppJSON) { @@ -73,12 +77,17 @@ class MenuApp { } } - makeTypingButtons(typingPracticeAppCount, typingAppJSON) { - // console.log(typingPracticeAppCount); - // console.log(typingAppJSON); + makeTypingButtons(typingPracticeAppCount, typingTestAppCount, typingAppJSON) { + console.log(typingPracticeAppCount); + console.log(typingTestAppCount); + console.log(typingAppJSON); let isTypingPracticeAppExist = typingPracticeAppCount > 0 ? true : false; - let typingAppTotalCount = Object.keys(typingAppJSON).length + (isTypingPracticeAppExist ? 1 : 0); + let isTypingTestAppExist = typingTestAppCount > 0 ? true : false; + + let typingAppTotalCount = Object.keys(typingAppJSON).length + + (isTypingPracticeAppExist ? 1 : 0) + + (isTypingTestAppExist ? 1 : 0); let typingAppIndex = 0; for(let typingButtonIndex = 0; typingButtonIndex < typingAppTotalCount; typingButtonIndex++) { @@ -90,32 +99,50 @@ class MenuApp { typingButtonIndex, typingAppTotalCount, GameAppButton.BUTTON_LOWER_POS_Y ); - if(typingButtonIndex == 0 && isTypingPracticeAppExist) { + if(isTypingPracticeAppExist) { + isTypingPracticeAppExist = false; + new GameAppButton( posX, posY, AppButton.TYPE_TYPING_PRACTICE, - "", "타자 연습\n(임시)", + "", "타자 연습", () => { location.href = '../../web/client/menu_typing_practice.html'; } ); - } else { - let app = typingAppJSON[typingAppIndex]; - let isKoreanTypingApp = app.AppID < 32 ? true : false; + + continue; + } + + if(isTypingTestAppExist) { + isTypingTestAppExist = false; new GameAppButton( - posX, posY, AppButton.TYPE_TYPING_APP, - "icon_fullscreen", - // (isKoreanTypingApp ? "(한글)" : "(영문)") + "\n" + app.KoreanName, - app.KoreanName, + posX, posY, AppButton.TYPE_TYPING_PRACTICE, + "", "타자 시험", () => { - sessionStorageManager.playingAppID = app.AppID; - sessionStorageManager.playingAppName = app.AppName; - sessionStorageManager.playingAppKoreanName = app.KoreanName; - location.href = '../../web/client/start.html'; + location.href = '../../web/client/menu_typing_test.html'; } ); - typingAppIndex++; + + continue; } + + let app = typingAppJSON[typingAppIndex]; + let isKoreanTypingApp = app.AppID < 32 ? true : false; + + new GameAppButton( + posX, posY, AppButton.TYPE_TYPING_APP, + "icon_fullscreen", + // (isKoreanTypingApp ? "(한글)" : "(영문)") + "\n" + app.KoreanName, + app.KoreanName, + () => { + sessionStorageManager.playingAppID = app.AppID; + sessionStorageManager.playingAppName = app.AppName; + sessionStorageManager.playingAppKoreanName = app.KoreanName; + location.href = '../../web/client/start.html'; + } + ); + typingAppIndex++; } } diff --git a/src/game/menu/menu_typing_practice.js b/src/game/menu/menu_typing_practice.js index 4bb020c..edbeb34 100644 --- a/src/game/menu/menu_typing_practice.js +++ b/src/game/menu/menu_typing_practice.js @@ -1,5 +1,5 @@ ///////////////////////////// -// MenuApp +// MenuTypingPractice class MenuTypingPractice { @@ -23,7 +23,7 @@ class MenuTypingPractice { let screenBottom = new ScreenBottom(); screenBottom.makeBottomLine(); // screenBottom.printBottomLeftText("게임 진행 정보"); - screenBottom.printBottomCenterText("타자 연습"); + screenBottom.printBottomCenterText("메뉴 > 타자 연습"); screenBottom.printBottomRightText(sessionStorageManager.playerName); @@ -49,8 +49,6 @@ class MenuTypingPractice { let koreanTypingPracticeAppCount = Object.keys(replyJSON.Korean).length; let englishTypingPracticeAppCount = Object.keys(replyJSON.English).length; - // let startX = game.world.width / 2 - (buttonWidthGap * koreanTypingPracticeAppCount / 2) - (buttonWidthGap / 2); - // let koreanTypingPracticeAppIndex = 0; for(let i = 0; i < koreanTypingPracticeAppCount; i++) { let activeApp = replyJSON.Korean[i]; @@ -66,12 +64,12 @@ class MenuTypingPractice { () => { sessionStorageManager.playingAppID = activeApp.AppID; sessionStorageManager.playingAppName = activeApp.AppName; + sessionStorageManager.playingAppKoreanName = activeApp.KoreanName; location.href = '../../web/client/start.html'; } ); } - // startX = game.world.width / 2 - (buttonWidthGap * englishTypingPracticeAppCount / 2) - (buttonWidthGap / 2); for(let i = 0; i < englishTypingPracticeAppCount; i++) { let activeApp = replyJSON.English[i]; @@ -87,6 +85,7 @@ class MenuTypingPractice { () => { sessionStorageManager.playingAppID = activeApp.AppID; sessionStorageManager.playingAppName = activeApp.AppName; + sessionStorageManager.playingAppKoreanName = activeApp.KoreanName; location.href = '../../web/client/start.html'; } ); diff --git a/src/game/menu/menu_typing_test.js b/src/game/menu/menu_typing_test.js new file mode 100644 index 0000000..44fb32f --- /dev/null +++ b/src/game/menu/menu_typing_test.js @@ -0,0 +1,140 @@ +///////////////////////////// +// MenuTypingTest + +class MenuTypingTest { + + preload() { + game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); + game.load.image('space_invaders', '../../../resources/image/icon/space_invaders.png'); + } + + create() { + self = this; + this.game.stage.backgroundColor = '#4d4d4d'; + + // top + let backButton = new BackButton( () => { + location.href = '../../web/client/menu_app.html'; + }); + let fullscreenButton = new FullscreenButton(this.game); + + + // bottom + let screenBottom = new ScreenBottom(); + screenBottom.makeBottomLine(); + // screenBottom.printBottomLeftText("게임 진행 정보"); + screenBottom.printBottomCenterText("메뉴 > 타자 시험"); + screenBottom.printBottomRightText(sessionStorageManager.playerName); + + + this.makeActiveTypingTestAppButtons(); + } + + + makeActiveTypingTestAppButtons() { + let dbConnectManager = new DBConnectManager(); + dbConnectManager.requestTypingTestAppList( + sessionStorageManager.maestroID, + self.loginSucceeded, + self.loginFailed + ); + + } + + loginSucceeded(replyJSON) { + // console.log(replyJSON); + + let buttonWidthGap = TypingPracticeButton.BUTTON_WIDTH + MenuTypingTest.BUTTON_GAP; + + let koreanTypingTestAppCount = Object.keys(replyJSON.Korean).length; + let englishTypingTestAppCount = Object.keys(replyJSON.English).length; + + // let startX = game.world.width / 2 - (buttonWidthGap * koreanTypingTestAppCount / 2) - (buttonWidthGap / 2); + // let koreanTypingTestAppIndex = 0; + for(let i = 0; i < koreanTypingTestAppCount; i++) { + let activeApp = replyJSON.Korean[i]; + + let posX = self.getButtonPosX(i, koreanTypingTestAppCount); + let posY = self.getButtonPosY(i, koreanTypingTestAppCount, + TypingPracticeButton.BUTTON_UPPER_POS_Y + ); + + new TypingPracticeButton( + posX, posY, LANGUAGE_KOREAN, + TypingPracticeButton.NONE_ICON, + activeApp.KoreanName, + () => { + sessionStorageManager.playingAppID = activeApp.AppID; + sessionStorageManager.playingAppName = activeApp.AppName; + sessionStorageManager.playingAppKoreanName = activeApp.KoreanName; + location.href = '../../web/client/start.html'; + } + ); + } + + // startX = game.world.width / 2 - (buttonWidthGap * englishTypingTestAppCount / 2) - (buttonWidthGap / 2); + for(let i = 0; i < englishTypingTestAppCount; i++) { + let activeApp = replyJSON.English[i]; + + let posX = self.getButtonPosX(i, englishTypingTestAppCount); + let posY = self.getButtonPosY(i, englishTypingTestAppCount, + TypingPracticeButton.BUTTON_LOWER_POS_Y + ); + + new TypingPracticeButton( + posX, posY, LANGUAGE_ENGLISH, + TypingPracticeButton.NONE_ICON, + activeApp.KoreanName, + () => { + sessionStorageManager.playingAppID = activeApp.AppID; + sessionStorageManager.playingAppName = activeApp.AppName; + sessionStorageManager.playingAppKoreanName = activeApp.KoreanName; + location.href = '../../web/client/start.html'; + } + ); + } + } + + getButtonPosX(index, buttonCount) { + let gap = TypingPracticeButton.BUTTON_WIDTH + TypingPracticeButton.BUTTON_GAP; + let maxColumnNum = Math.floor( (game.world.width - TypingPracticeButton.MARGIN_VERTICAL) / gap ); + // console.log("maxColumnNum : " + maxColumnNum); + let rowCount = Math.ceil(buttonCount / maxColumnNum); + // console.log("rowCount : " + rowCount); + + let columnIndex = index % maxColumnNum; + // console.log("columnIndex : " + columnIndex); + let rowIndex = Math.floor(index / maxColumnNum); + // console.log("rowIndex : " + rowIndex); + + let columnCountForThisRow = 0; + if(rowIndex < rowCount - 1) + columnCountForThisRow = maxColumnNum; + else + columnCountForThisRow = buttonCount - (maxColumnNum * rowIndex); + // console.log("columnCountForThisRow : " + columnCountForThisRow); + + let startX = game.world.width / 2 - ( (gap / 2) * (columnCountForThisRow - 1) ); + return startX + gap * columnIndex; + } + + getButtonPosY(index, buttonCount, startPosY) { + let gap = TypingPracticeButton.BUTTON_HEIGHT + TypingPracticeButton.BUTTON_GAP; + let maxColumnNum = Math.floor( (game.world.width - TypingPracticeButton.MARGIN_VERTICAL) / gap ); + // console.log("maxColumnNum : " + maxColumnNum); + let rowCount = Math.ceil(buttonCount / maxColumnNum); + // console.log("rowCount : " + rowCount); + + let rowIndex = Math.floor(index / maxColumnNum); + // console.log("rowIndex : " + rowIndex); + + let startY = startPosY - ( (gap / 2) * (rowCount - 1) ); + return startY + gap * rowIndex; + } + + + loginFailed(replyJSON) { + console.log('login failed, jsonData : ' + JSON.stringify(replyJSON)); + } + +} \ No newline at end of file diff --git a/src/game/result/result.js b/src/game/result/result.js index 4541ee2..7a6cb6c 100644 --- a/src/game/result/result.js +++ b/src/game/result/result.js @@ -16,8 +16,14 @@ class Result { // top let backButton = new BackButton( () => { + if(isTypingPracticeStage()) + location.href = '../../web/client/menu_typing_practice.html'; + else if(isTypingTestStage()) + location.href = '../../web/client/menu_typing_test.html'; + else + location.href = '../../web/client/menu_app.html'; + sessionStorageManager.resetPlayingAppData(); - location.href = '../../web/client/menu_app.html'; }); let fullscreenButton = new FullscreenButton(this.game); diff --git a/src/game/start/start.js b/src/game/start/start.js index d218950..d8e87a5 100644 --- a/src/game/start/start.js +++ b/src/game/start/start.js @@ -16,12 +16,14 @@ class Start { // top let backButton = new BackButton( () => { - sessionStorageManager.playingAppName = null; - sessionStorageManager.playingAppKoreanName = null; - sessionStorageManager.record = null; - sessionStorageManager.bestRecord = null; + if(isTypingPracticeStage()) + location.href = '../../web/client/menu_typing_practice.html'; + else if(isTypingTestStage()) + location.href = '../../web/client/menu_typing_test.html'; + else + location.href = '../../web/client/menu_app.html'; - location.href = '../../web/client/menu_app.html'; + sessionStorageManager.resetPlayingAppData(); }); let fullscreenButton = new FullscreenButton(this.game); diff --git a/src/game/typing/test/game.js b/src/game/typing/test/game.js index 6f15a2f..dadfeba 100644 --- a/src/game/typing/test/game.js +++ b/src/game/typing/test/game.js @@ -1,7 +1,7 @@ ///////////////////////////// -// Typing Test +// TypingTest -class Test { +class TypingTest { create() { self = this; @@ -14,7 +14,8 @@ class Test { // top let backButton = new BackButton( () => { sessionStorageManager.resetPlayingAppData(); - location.href = '../../web/client/menu_app.html'; + + location.href = '../../web/client/menu_typing_test.html'; }); this.averageTypingSpeedText = new AverageTypingSpeed(); @@ -29,7 +30,7 @@ class Test { bar.beginFill(0x000000, 0.2); bar.drawRect(0, typingAreaPositionY, GAME_SCREEN_SIZE.x, 120); - if(this.isWordStage()) + if(isTypingWordStage()) textStyleBasic.font = "bold 84px Arial"; else // Sentence stage textStyleBasic.font = "bold 48px Arial"; @@ -37,21 +38,21 @@ class Test { this.textTypingContent = game.add.text(0, 2, "test", textStyleBasic) .setTextBounds(0, typingAreaPositionY, GAME_SCREEN_SIZE.x, 120) .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) - .addColor(Test.COLOR_CONTENT_WRONG, 0); + .addColor(TypingTest.COLOR_CONTENT_WRONG, 0); textStyleBasic.font = "32px Arial"; var textDoneColor = [ '#99994d', '#77774d', '#66664d' ]; this.textTypingContentsDone = []; this.textTypingRecordsDone = []; - for(var i = 0; i < Test.TYPING_CONTENT_DONE_COUNT; i++) { + for(var i = 0; i < TypingTest.TYPING_CONTENT_DONE_COUNT; i++) { this.textTypingContentsDone[i] = game.add.text(0, 2, "test", textStyleBasic) .setTextBounds(0, typingAreaPositionY - 50 - i * 50, GAME_SCREEN_SIZE.x, 40) .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) .addColor(textDoneColor[i], 0); var scorePositionX = 780; - if(this.isWordStage()) + if(isTypingWordStage()) scorePositionX = 600; this.textTypingRecordsDone[i] = game.add.text(0, 2, "", textStyleBasic) @@ -63,7 +64,7 @@ class Test { var textPreviewColor = [ '#999999', '#888888', '#777777' ]; this.textTypingContentPreview = []; - for(var i = 0; i < Test.TYPING_CONTENT_PREVIEW_COUNT; i++) { + for(var i = 0; i < TypingTest.TYPING_CONTENT_PREVIEW_COUNT; i++) { this.textTypingContentPreview[i] = game.add.text(0, 2, "test", textStyleBasic) .setTextBounds(0, typingAreaPositionY + 130 + i * 50, GAME_SCREEN_SIZE.x, 40) .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) @@ -148,13 +149,13 @@ class Test { } initTypingData() { - this.typingTestContents = this.getTypingTestContents(); - var randomContents = Phaser.ArrayUtils.shuffle(this.typingTestContents); - this.wordCountForStage = Test.WORD_COUNT_FOR_STAGE; + this.typingContents = this.getTypingTestContents(); + var randomContents = Phaser.ArrayUtils.shuffle(this.typingContents); + this.wordCountForStage = TypingTest.WORD_COUNT_FOR_STAGE; if(isDebugMode()) this.wordCountForStage = 3; this.typingRandomContents = randomContents.slice(1, this.wordCountForStage + 1); // start Num, end Num (not index) - this.typingContentLength = this.typingTestContents.length; + this.typingContentLength = this.typingContents.length; this.typingIndex = 0; this.isTyping = false; @@ -185,16 +186,20 @@ class Test { loadTestContent() { var testContent = []; switch(sessionStorageManager.playingAppName) { - case "korean_word": + case "test_korean_word": + case "practice_korean_word": testContent = koreanWordList; break; - case "korean_sentence": + case "test_korean_sentence": + case "practice_korean_sentence": testContent = koreanSentenceList; break; - case "english_word": + case "test_english_word": + case "practice_english_word": testContent = englishWordList; break; - case "english_sentence": + case "test_english_sentence": + case "practice_english_sentence": testContent = englishSentenceList; break; } @@ -202,12 +207,8 @@ class Test { return testContent; } - isWordStage() { - return ( (sessionStorageManager.playingAppID % 10) === 0 ); - } - showTypingTestContents() { - for(var i = 0; i < Test.TYPING_CONTENT_DONE_COUNT; i++) { + for(var i = 0; i < TypingTest.TYPING_CONTENT_DONE_COUNT; i++) { var doneIndex = this.typingIndex - i - 1; if(doneIndex < 0) { this.textTypingContentsDone[i].text = ""; @@ -225,7 +226,7 @@ class Test { this.textTypingContent.text = this.typingRandomContents[this.typingIndex]; - for(var i = 0; i < Test.TYPING_CONTENT_PREVIEW_COUNT; i++) { + for(var i = 0; i < TypingTest.TYPING_CONTENT_PREVIEW_COUNT; i++) { var previewIndex = this.typingIndex + i + 1; if(previewIndex < this.typingRandomContents.length) this.textTypingContentPreview[i].text = this.typingRandomContents[previewIndex]; @@ -236,7 +237,7 @@ class Test { resetTypingContent() { this.textTypingContent.clearColors(); - this.textTypingContent.addColor(Test.COLOR_CONTENT_WRONG, 0); + this.textTypingContent.addColor(TypingTest.COLOR_CONTENT_WRONG, 0); this.inputTextContent.canvasInput.value(''); } @@ -271,7 +272,7 @@ class Test { var inputContent = this.inputTextContent.canvasInput.value(); this.textTypingContent.clearColors(); - this.textTypingContent.addColor(Test.COLOR_CONTENT_RIGHT, 0); + this.textTypingContent.addColor(TypingTest.COLOR_CONTENT_RIGHT, 0); if(typingContent == null) return; @@ -282,7 +283,7 @@ class Test { // console.log("inputContent.charAt(i) : " + inputContent.charAt(i)); if(typingContent.charAt(i) != inputContent.charAt(i)) { - this.textTypingContent.addColor(Test.COLOR_CONTENT_WRONG, i); + this.textTypingContent.addColor(TypingTest.COLOR_CONTENT_WRONG, i); return; } } @@ -300,9 +301,9 @@ class Test { var typingContentLength = StringUtil.getUnicodeAlphabetCount(typingContent); // console.log('typingContentLength : ' + typingContentLength); - var typingContentPlusEnterCount = typingContentLength + Test.TYPING_COUNT_PLUS_ENTER; + var typingContentPlusEnterCount = typingContentLength + TypingTest.TYPING_COUNT_PLUS_ENTER; - var typingRecord = (typingContentPlusEnterCount + Test.TYPING_COUNT_PLUS_ENTER) * 60000 / elapsedTimeMS; + var typingRecord = (typingContentPlusEnterCount + TypingTest.TYPING_COUNT_PLUS_ENTER) * 60000 / elapsedTimeMS; this.typingElapsedTime[this.typingIndex] = elapsedTimeMS; this.typingLetterCountTotal += typingContentPlusEnterCount; @@ -356,17 +357,17 @@ class Test { } -Test.TYPING_CONTENT_PREVIEW_COUNT = 3; -Test.TYPING_CONTENT_DONE_COUNT = 3; -Test.TYPING_COUNT_PLUS_ENTER = 1; +TypingTest.TYPING_CONTENT_PREVIEW_COUNT = 3; +TypingTest.TYPING_CONTENT_DONE_COUNT = 3; +TypingTest.TYPING_COUNT_PLUS_ENTER = 1; -Test.OFFSET_RIGHT_ALIGN = 10; +TypingTest.OFFSET_RIGHT_ALIGN = 10; -Test.WORD_COUNT_FOR_STAGE = 10; +TypingTest.WORD_COUNT_FOR_STAGE = 10; // if(isDebugMode()) // WORD_COUNT_FOR_STAGE = 3; -Test.COLOR_CONTENT_WRONG = "#aaaaaa"; -Test.COLOR_CONTENT_RIGHT = "#ffff4d"; +TypingTest.COLOR_CONTENT_WRONG = "#aaaaaa"; +TypingTest.COLOR_CONTENT_RIGHT = "#ffff4d"; diff --git a/src/game/typing/test/loading.js b/src/game/typing/test/loading.js index 5a35485..568fa33 100644 --- a/src/game/typing/test/loading.js +++ b/src/game/typing/test/loading.js @@ -81,11 +81,11 @@ class Loading { // this.preloadBar.alpha = 1; if(isDebugMode()) { - this.state.start('Test'); + this.state.start('TypingTest'); return; } - this.state.start('Test'); + this.state.start('TypingTest'); // this.startMenu(); // this.startTypingTestStage(); // this.startTypingTestResult(); diff --git a/src/game/typing/test/main.js b/src/game/typing/test/main.js index ab3dbf4..58f5e19 100644 --- a/src/game/typing/test/main.js +++ b/src/game/typing/test/main.js @@ -12,5 +12,5 @@ let game = new Phaser.Game( game.state.add('Loading', Loading); game.state.start('Loading'); -game.state.add('Test', Test); +game.state.add('TypingTest', TypingTest); // game.state.add('Menu', Menu); diff --git a/src/web/client/menu_typing_test.html b/src/web/client/menu_typing_test.html new file mode 100644 index 0000000..ee990fc --- /dev/null +++ b/src/web/client/menu_typing_test.html @@ -0,0 +1,46 @@ + + +
+ +