diff --git a/src/game/global/global_variables.js b/src/game/global/global_variables.js index 1b49149..c850375 100644 --- a/src/game/global/global_variables.js +++ b/src/game/global/global_variables.js @@ -19,19 +19,13 @@ function isReleaseMode() { const GAME_SCREEN_SIZE = { x: 1024, y: 768 } -let sessingPlayerName; -let sessionPlayerUserID; -let sessionPlayingAppName; +let sessionStorageManager = new SessionStorageManager(); { - sessionPlayerName = sessionStorage.getItem("playerName"); - console.log("playerName : " + sessionPlayerName); - sessionPlayerUserID = sessionStorage.getItem("playerUserID"); - console.log("playerUserID : " + sessionPlayerUserID); - sessionPlayingAppName = sessionStorage.getItem("playingAppName"); - console.log("sessionPlayingAppName : " + sessionPlayingAppName); + console.log("playerName : " + sessionStorageManager.playerName); + console.log("playerUserID : " + sessionStorageManager.playerUserID); + console.log("playingAppName : " + sessionStorageManager.playingAppName); } - let appInfoManager = new AppInfoManager(); let textStyleBasic = { font: "bold 32px Arial", fill: "#fff", align: "center", boundsAlignH: "center", boundsAlignV: "middle" }; diff --git a/src/game/lib/session_storage_manager.js b/src/game/lib/session_storage_manager.js new file mode 100644 index 0000000..b06612b --- /dev/null +++ b/src/game/lib/session_storage_manager.js @@ -0,0 +1,38 @@ +class SessionStorageManager { + + constructor() { + } + + clear() { + sessionStorage.clear(); + } + + removeItem(key) { + return sessionStorage.removeItem(key); + } + + // player name + set playerName(value) { + sessionStorage.setItem("playerName", value); + } + get playerName() { + return sessionStorage.getItem("playerName"); + } + + // player user ID + set playerUserID(value) { + sessionStorage.setItem("playerUserID", value); + } + get playerUserID() { + return sessionStorage.getItem("playerUserID"); + } + + // playing app name + set playingAppName(value) { + sessionStorage.setItem("playingAppName", value); + } + get playingAppName() { + return sessionStorage.getItem("playingAppName"); + } + +} \ No newline at end of file diff --git a/src/game/login/login.js b/src/game/login/login.js index 0335368..9240799 100644 --- a/src/game/login/login.js +++ b/src/game/login/login.js @@ -12,9 +12,7 @@ let Login = { create: function() { self = this; - sessionStorage.removeItem("playerName"); - sessionStorage.removeItem("playerUserID"); - sessionStorage.removeItem("playingAppName"); + sessionStorageManager.clear(); this.game.stage.backgroundColor = '#4d4d4d'; @@ -83,7 +81,7 @@ let Login = { }, startMenu: function() { - sessionPlayerName = self.inputTextName.canvasInput._value; + sessionStorageManager.playerName = self.inputTextName.canvasInput._value; let birthday = self.inputTextBirthday.canvasInput._value; xhr = new XMLHttpRequest(); @@ -109,7 +107,7 @@ let Login = { } xhr.open('POST', '../../web/client/php/check_user.php', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - let param = 'name=' + sessionPlayerName + '&birthday=' + birthday; + let param = 'name=' + sessionStorageManager.playerName + '&birthday=' + birthday; // console.log(param); xhr.send(param); @@ -131,23 +129,15 @@ let Login = { }, loginSucceeded: function(jsonData) { - sessionPlayerUserID = jsonData['UserID']; - // console.log('playerUserID : ' + playerUserID); - // this.state.start('Menu'); - - sessionStorage.setItem("playerName", sessionPlayerName); - sessionStorage.setItem("playerUserID", sessionPlayerUserID); - sessionStorage.setItem("playingAppName", "menu"); - console.log("playerName : " + sessionStorage.getItem("playerName")); - console.log("playerUserID : " + sessionStorage.getItem("playerUserID")); - console.log("playingAppName : " + sessionStorage.getItem("playingAppName")); + sessionStorageManager.playerUserID = jsonData['UserID']; + sessionStorageManager.playingAppName = "menu"; location.href = '../../web/client/menu_app.html'; }, loginFailed: function(jsonData) { - sessionStorage.removeItem("playerName"); - sessionStorage.removeItem("playerUserID"); + sessionStorageManager.clear(); + // show retry message console.log('login failed, jsonData : ' + JSON.stringify(jsonData)); } diff --git a/src/game/menu/menu_app.js b/src/game/menu/menu_app.js index 5e3129d..c651985 100644 --- a/src/game/menu/menu_app.js +++ b/src/game/menu/menu_app.js @@ -12,9 +12,7 @@ let MenuApp = { // top let backButton = new BackButton( () => { - sessionStorage.removeItem("playerName"); - sessionStorage.removeItem("playerUserID"); - sessionStorage.removeItem("playingAppName"); + sessionStorageManager.clear(); location.href = '../../web/client/login.html'; }); @@ -25,9 +23,7 @@ let MenuApp = { // app icons let space_invaders = new AppButton(AppButton.TYPE_MOUSE, "icon_fullscreen", () => { - sessionPlayingAppName = "space_invaders"; - sessionStorage.setItem("playingAppName", sessionPlayingAppName); - + sessionStorageManager.playingAppName = "space_invaders"; location.href = '../../web/client/start.html'; } ); @@ -45,8 +41,9 @@ let MenuApp = { let screenBottom = new ScreenBottom(game); screenBottom.makeBottomLine(); // screenBottom.printBottomLeftText("게임 진행 정보"); - screenBottom.printBottomCenterText(appInfoManager.getAppNameKorean(sessionPlayingAppName)); - screenBottom.printBottomRightText(sessionPlayerName); + let playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.playingAppName); + screenBottom.printBottomCenterText(playingAppName); + screenBottom.printBottomRightText(sessionStorageManager.playerName); // this.loadTypingStageData(); }, diff --git a/src/game/start/start.js b/src/game/start/start.js index 74abc9b..9de1ea3 100644 --- a/src/game/start/start.js +++ b/src/game/start/start.js @@ -25,9 +25,10 @@ let Start = { // bottom let screenBottom = new ScreenBottom(game); screenBottom.makeBottomLine(); - // screenBottom.printBottomLeftText("게임 진행 정보"); - screenBottom.printBottomCenterText(appInfoManager.getAppNameKorean(sessionPlayingAppName)); - screenBottom.printBottomRightText(sessionPlayerName); + screenBottom.printBottomLeftText("게임 진행 정보"); + let playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.playingAppName); + screenBottom.printBottomCenterText(playingAppName); + screenBottom.printBottomRightText(sessionStorageManager.playerName); // this.loadTypingStageData(); }, diff --git a/src/web/client/login.html b/src/web/client/login.html index d7610d7..46eb2cd 100644 --- a/src/web/client/login.html +++ b/src/web/client/login.html @@ -11,6 +11,7 @@ + diff --git a/src/web/client/menu_app.html b/src/web/client/menu_app.html index 68904f5..b663ca0 100644 --- a/src/web/client/menu_app.html +++ b/src/web/client/menu_app.html @@ -11,6 +11,7 @@ + diff --git a/src/web/client/space_invaders.html b/src/web/client/space_invaders.html index 3bf9be7..f43efaa 100644 --- a/src/web/client/space_invaders.html +++ b/src/web/client/space_invaders.html @@ -11,6 +11,7 @@ + diff --git a/src/web/client/start.html b/src/web/client/start.html index b336415..16f2981 100644 --- a/src/web/client/start.html +++ b/src/web/client/start.html @@ -11,6 +11,7 @@ + diff --git a/test/app_info_manager.html b/test/app_info_manager.html index 2d74891..da499a9 100644 --- a/test/app_info_manager.html +++ b/test/app_info_manager.html @@ -10,7 +10,7 @@
- + \ No newline at end of file diff --git a/test/session_storage_manager.html b/test/session_storage_manager.html new file mode 100644 index 0000000..65fd5f9 --- /dev/null +++ b/test/session_storage_manager.html @@ -0,0 +1,16 @@ + + + + + + QUnit Example + + + +
+
+ + + + + \ No newline at end of file diff --git a/test/test_session_storage_manager.js b/test/test_session_storage_manager.js new file mode 100644 index 0000000..1bd3ee5 --- /dev/null +++ b/test/test_session_storage_manager.js @@ -0,0 +1,34 @@ +let sessionStorageManager = new SessionStorageManager(); + +QUnit.test( "PlayerName", function( assert ) { + sessionStorageManager.clear(); + assert.equal(sessionStorageManager.playerName, null, "playerName"); + + sessionStorageManager.playerName = "박지상"; + assert.equal(sessionStorageManager.playerName, "박지상", "playerName"); + + sessionStorageManager.removeItem("playerName"); + assert.equal(sessionStorageManager.playerName, null, "playerName"); +}); + +QUnit.test( "playerUserID", function( assert ) { + sessionStorageManager.clear(); + assert.equal(sessionStorageManager.playerUserID, null, "playerUserID"); + + sessionStorageManager.playerUserID = 1; + assert.equal(sessionStorageManager.playerUserID, 1, "playerUserID"); + + sessionStorageManager.removeItem("playerUserID"); + assert.equal(sessionStorageManager.playerUserID, null, "playerUserID"); +}); + +QUnit.test( "playingAppName", function( assert ) { + sessionStorageManager.clear(); + assert.equal(sessionStorageManager.playingAppName, null, "playingAppName"); + + sessionStorageManager.playingAppName = "space_invaders"; + assert.equal(sessionStorageManager.playingAppName, "space_invaders", "playingAppName"); + + sessionStorageManager.removeItem("playingAppName"); + assert.equal(sessionStorageManager.playingAppName, null, "playingAppName"); +}); \ No newline at end of file