var Login = { create: function() { // sessionStorageManager.resetAllAppData(); this.game.stage.backgroundColor = '#4d4d4d'; this.textStyle = { font: "bold 32px Arial", fill: "#fff", align: "right", boundsAlignH: "right", boundsAlignV: "middle" }; // keyboard shortcut this.keyboardShortcut = new KeyboardShortcut(); this.keyboardShortcut.addCallback( Phaser.KeyCode.ESC, // keyCode null, // keyDownHandler (function() { this.back(); }).bind(this), // keyUpHandler "login" // callerClassName ); this.keyboardShortcut.addCallback( Phaser.KeyCode.ENTER, // keyCode null, // keyDownHandler (function() { this.startMenu(); }).bind(this), // keyUpHandler "start" // callerClassName ); // top ui var screenTopUI = new ScreenTopUI(); screenTopUI.makeHomeButton( (function() { this.back(); }).bind(this) ); screenTopUI.makeFullScreenButton(); var textX = this.game.world.centerX - 320; this.makeMaestroNameText(textX, 200); this.makeNameText(textX, 300); this.makeEnterCodeText(textX, 360); if(sessionStorageManager.getMaestroName() != null) { this.inputTextMaestroName.canvasInput.value(sessionStorageManager.getMaestroName()); } else { if(isDebugMode()) { this.inputTextMaestroName.canvasInput.value("삼화초"); this.inputTextName.canvasInput.value("박지상"); this.inputTextEnterCode.canvasInput.value("760621"); } } if(sessionStorageManager.getMaestroID() === null) this.inputTextMaestroName.canvasInput.focus(); else this.inputTextName.canvasInput.focus(); this.makeStartButton(game.world.centerX, game.world.centerY + 100); this.makeExperienceButton(game.world.centerX + 225, game.world.centerY + 100); this.makeInfoText(); }, back: function() { sessionStorageManager.clear(); location.href = '../../web/main/index.html'; }, makeMaestroNameText: function(x, y) { this.makeTextField(x, y, "마에스트로 계정 :"); this.inputTextMaestroName = this.makeInputTypeText(x, y, ""); this.inputTextMaestroName.canvasInput.placeHolder("입력 후 [ Tab ]키를 누르세요"); }, makeNameText: function(x, y) { this.makeTextField(x, y, "이름 :"); this.inputTextName = this.makeInputTypeText(x, y, ""); this.inputTextName.canvasInput.placeHolder("입력 후 [ Tab ]키를 누르세요"); }, makeEnterCodeText: function(x, y) { this.makeTextField(x, y, "입장번호 :"); this.inputTextEnterCode = this.makeInputTypeText(x, y, ""); this.inputTextEnterCode.canvasInput.placeHolder("입력 후 [ Tab ]키를 누르세요"); }, makeTextField: function(x, y, text) { return game.add.text(x, y, text, this.textStyle) .setTextBounds(0, 0, 200, 0) .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) .boundsAlignH = 'right'; }, makeInputTypeText: function(x, y, text) { var inputText = new InputTypeText(x + 420, y); inputText.anchor.set(0.5); inputText.canvasInput.value(''); if(isDebugMode()) { inputText.canvasInput.value(text); } inputText.canvasInput._onkeyup = (function() { if(event.keyCode == Phaser.Keyboard.ENTER) { this.startMenu(); } }).bind(this); return inputText; }, makeStartButton: function(x, y) { var setting = new RoundRectButtonSetting(x, y, 200, 100); setting.fontStyle.fontWeight = "bold"; var startButton = new RoundRectButton( setting, RoundRectButton.NONE_ICON, "시작", (function() { this.startMenu(); }).bind(this) ); startButton.addShortcutText("Enter"); }, makeExperienceButton: function(x, y) { var BUTTON_SIZE = 90; // var setting = new RoundRectButtonSetting(x, y, BUTTON_SIZE, BUTTON_SIZE); var setting = new RoundRectButtonSetting(x, y, 150, 100); // setting.roundAmount = 60; // setting.strokeWidthPx = 5; // setting.fontStyle.fontSize = 40; setting.fontStyle.fontWeight = "bold"; // cyan setting.setStrokeColor( 0x309090, 0x208080, 0x205050, 0x666666 ); setting.setButtonColor( 0x40c0c0, 0x30a0a0, 0x208080, 0x666666 ); setting.setTextColor( "#cee", "#acc", "#8aa", "#333" ); var experienceButton = new RoundRectButton( setting, RoundRectButton.NONE_ICON, "체험", (function() { this.setExperiencePlayerSessionStorage(); // this.startMenu(); game.state.start('LicenseTimer'); }).bind(this) ); }, setExperiencePlayerSessionStorage: function() { sessionStorageManager.setMaestroName(""); sessionStorageManager.setMaestroID(1); sessionStorageManager.setMaestroAccountType(100); sessionStorageManager.setPlayerName("체험 학생"); sessionStorageManager.setPlayerID(1); sessionStorageManager.setPlayerAccountType(0); sessionStorageManager.setPlayingAppID(null); sessionStorageManager.setPlayingAppName(null); sessionStorageManager.setPlayingAppKoreanName(null); sessionStorageManager.setRecord(0); sessionStorageManager.setAppHighestRecord(0); }, makeInfoText: function(x, y) { var textStyle = { font: "30px Arial", fill: "#faa" }; this.infoText = game.add.text(game.world.centerX, 640, "", textStyle); this.infoText.anchor.set(0.5); this.infoText.stroke = "#333"; this.infoText.strokeThickness = 3; }, startMenu: function() { var maestroName = this.inputTextMaestroName.canvasInput._value; sessionStorageManager.setPlayerName(this.inputTextName.canvasInput._value); var enterCode = this.inputTextEnterCode.canvasInput._value; // console.log(maestroName); // console.log(enterCode); if(maestroName == "") { this.infoText.text = "마에스트로 계정 이름을 입력해주세요"; this.inputTextMaestroName.canvasInput.focus(); return; } else if(sessionStorageManager.getPlayerName() == "") { this.infoText.text = "학생의 이름을 입력해주세요"; this.inputTextName.canvasInput.focus(); return; } else if(enterCode == "") { this.infoText.text = "학생의 입장번호를 입력해주세요"; this.inputTextEnterCode.canvasInput.focus(); return; } var dbConnectManager = new DBConnectManager(); dbConnectManager.requestCheckPlayerLogin( maestroName, sessionStorageManager.getPlayerName(), enterCode, (function(jsonData) { this.loginSucceeded(jsonData); }).bind(this), (function(jsonData) { this.loginFailed(jsonData); }).bind(this) ); }, loginSucceeded: function(jsonData) { // console.log(jsonData); sessionStorageManager.setMaestroID(jsonData['MaestroID']); sessionStorageManager.setMaestroAccountType(jsonData['MaestroAccountType']); sessionStorageManager.setPlayerID(jsonData['PlayerID']); sessionStorageManager.setPlayerName(jsonData['PlayerName']); sessionStorageManager.setPlayerAccountType(jsonData['PlayerAccountType']); // sessionStorageManager.setPlayingAppName("menu"); // location.href = '../../web/client/menu_app.html'; game.state.start('LicenseTimer'); }, loginFailed: function(jsonData) { sessionStorageManager.clear(); // show retry message // console.log('login failed, jsonData : ' + JSON.stringify(jsonData)); if(jsonData["error"] !== null) { this.infoText.text = jsonData["error"]; } }, }