From 3dd42ffe02578f0aca997b1c228b141f80d74e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=A2=E1=84=91=E1=85=B3=E1=86=AF=20=E1=84=82?= =?UTF-8?q?=E1=85=A9=E1=84=90=E1=85=B3=E1=84=87=E1=85=AE=E1=86=A8?= Date: Sat, 15 Dec 2018 10:59:04 +0900 Subject: [PATCH] Add: SpriteIconTimer --- .../image/icon/timer_spritesheet.afdesign | Bin 0 -> 12323 bytes resources/image/icon/timer_spritesheet.png | Bin 0 -> 3332 bytes .../{hand.afdesign => handafdesign.afdesign} | Bin src/game/lib/session_storage_manager.js | 15 ++++ src/game/lib/sprite/sprite_icon_timer.js | 17 +++++ src/game/license_timer/input_score.js | 7 +- src/game/license_timer/license_timer.js | 6 +- src/game/license_timer/loading.js | 2 + src/game/license_timer/login.js | 72 ++++++++++++++---- src/game/license_timer/timer.js | 35 ++++++--- src/web/client/license_timer.html | 1 + 11 files changed, 126 insertions(+), 29 deletions(-) create mode 100644 resources/image/icon/timer_spritesheet.afdesign create mode 100644 resources/image/icon/timer_spritesheet.png rename resources/image/ui/{hand.afdesign => handafdesign.afdesign} (100%) create mode 100644 src/game/lib/sprite/sprite_icon_timer.js diff --git a/resources/image/icon/timer_spritesheet.afdesign b/resources/image/icon/timer_spritesheet.afdesign new file mode 100644 index 0000000000000000000000000000000000000000..82713c5d7d5f71479f568ff3ddd916dda686ea5e GIT binary patch literal 12323 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 I@|IEmADJi`wEzGB literal 0 HcmV?d00001 diff --git a/resources/image/icon/timer_spritesheet.png b/resources/image/icon/timer_spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca7c37a743ef95b2d4a2d2004c6867bb21d4760 GIT binary patch literal 3332 zcmZ`+c{CJU8=s}2jMQ5s@uCr5LuRr~$lwiGvZcXb$kNO-%+}1y3$kvdh>?uo0zUlqm^L>AP&pG#==icXcfA@KwbIfGo#TmdFN*(gSmT*N z3=*A1qEXd6xHVy7~w`0N`LsXiAq(Q-Dg#>A|ys*<)gH)kSblrZ+B4w;)60sDv2o zi!0t(TiKwJ_}YC6nuxgH*P!*<#GSr%jSNWtuWlrZrJ$mM%^+5YaK+T?Q(!v4Qti#6G8q%Z3 z+XL(8?1?&siJK34@;s%rqqB7Y&IRWl-o18C?}afiMphp-azz@sQFHJ3Pht2^!^oHJ z&pBz`SS_1u5cOn|8+w0;+t-UXWHq^)=hsXBb>&g|w4B9Ti@nV!j`SZ9bIE%b)-QjK z1n{Db+uXl=i9Y;8JBnW#I+w`Y?%c`oj)6M&6>K;sld5SiwccbqKKt^Up>4tPu6>Hy z=yj8+#XT_2lDlHnV=#Kx0`3QhNFz=PTr8eSp5`{Xofi`T*rWMt0PWolECK*B0DJ2{ zFcEj>hGUEI?n*76-!s}%ek+Q3+3awE?YEQo+~NAk7R9O*KdD4JWp1&xb@`??oNd|d zc6-ZHzqf`rik}yEFNQkA?8gW9Tvy_jv4XSj8yW^Re_Lr8xz}=ZbtrlzQZ%qW%ZyX2 z7psMr6VZdrJg?}y+CFys|BPG%lm@>CBLE|y!ittN1eE+D-fu}!Y$|pXcUQC!2rK%+ zIN|B6_mv4c@vDHg231a0R{SklIQGI%>7nhoEsu6%dzR}v$Wp*<^|XtB8J#`42o~eS z$!p*4WYt0TL zY(l8>rWOV|v`QYRD2->=P-xk=?%?g6f7&4DaJfR+Kss9$*}X7lVhX$|-6_4&`8qFa zS*406q>P?aYEF+|4n41&u$wU+LO??vNv)A418XnIwyDOaPJUX~64#nAj&M~Az8_zp zWhE&Hla-oL#)9mb_rho<4s4J^7w!@VmQHNdj4^E5JC)>bsTTIoV)NK<$sWO0YfQUNUe`soCV!Y;d=hcu}RVwLKfoNV2MpZTDr5 zc>J{qESQkR?3h7P`)BR!!$EBt)g5GzYwYf|!AHAG3Xbh)BAE;JeLYCGtC%4WbnitG zmIa53&Yn9OzX1-SEX@XIZWnSGepUt{z}~uqI%%lo?#8V*kLU}c-We~xir{*T$6Q{9 z*gqi5()5BX8Ur5@J)6p2^?MTIqvLyhZv|!8{Op}&&WeB!+^D&|hZkgS9O;`4uJaYX zG^r#FN-@rjPTP%x`=|PyE)ubrnS3hy?PNuMm)&=K{>D4Ll-mjRlO~qgMT?U?!w4Me z8e?depGL`?#aqEChoj)Ru5=c^@b0GRp*t+yH{4t<^p2Ba=_;7{9ZVnH+87>p|8pL| z>`#*`MkdW7-fv5cQSC!Z1vAW957$_o`u*&W@rv=4ZfdKLnDCVM=b6oBE7BD&)1)yz zZ@$jI&6E1Zrz`CG*1c>JrW4QAu$SwHl;yrz9ThUI;x@bF>*qitwxL5XVor@oAgoSeIPI4=Y`S&KO3?9$C`(gX1u==fdVgc8nk!pM{@ z(zqvB&yX}*)#`9Q@o^{O)jehre zNNMa?C{Cp753ka7OHTOGe09B}VUDD^lYnqwwT}Xl#{qCe( zl=ib?8nwjt|8f6Z-HGoWRXKi*^1ksj1q#^-DiVOJc@7Qup=Nl|I;dKsBJH70_s@D9 zI7=Ua6ZN-3p#8QzgWzha3Nfs=Hm&Can<~dTM~v0tB}DyH`=z!$y@mcZROvc98MT+a>1jP+_Mft>(ZOf0`Sf?LPBJ1N@VWWQKFspF z3kf`1qVkJb`e+T>5RR3Gj18%sJqlOd`Y;(M@S1vtM+S5JYnL3H0+d0N9qp*=?Wud68?DYmc z+%l5t+gnGDHG8lSbUoH;FQ4$H{nD#_A*?i0`o%&E$QWAlQ!CGGgvZsvn3KhOH}m4e13nZRd|p=(82cl|qjv1tsRVc5DXwx=sp_e>Rzl;t!Q5@*)5p^7 z|JH_bfOGNz6LF-L|9wcAhD$ZbxM(IOd!L4_Vre@}t=_zax_yyr_ZJg)Tzbb?f~L?@ zfAXBqpvic*x`krtF_>DzFGSU@eg*rmn|a-1Y-zFBlz8G+Hg7PI(WMc^)+NuZ=$yb`f%ZHv^0sb(X?`~^Oi7cwx2Ln*efL6sNSYt6-2Z0^i&J>T{jnW-O~ZX*WBX4P9a8d` zj!2Q|?C?qXQjk1kNTV@rsH9bGv+U82yGA?d>4jgIEAPObMQMoHsGS6^dic`;pB@T3 zs!opN7;fjC>bCTPWMV%0899T6bNF=HcgJ(G$C>l7g(Gqi$%QS9 zRrDXI6Q;v2UX}UUjD(+nqqRO6yVp6snUr%k;E)ilgxw|m&<3zUImh9}M`0fZ&0T7L zMfL_xxl(gIl*0gd)89?AI~qhH7gyb~9|eUM2CiqlMA@r3!fkFE8*pX42f6T~hkiYJ zZ0hZ|S0;WG@0-y>cn}O^vA`kGobN~?wdjEWk?FNx2p@mPH@tHtK2`7pK|mE0^L)%N zOm|}{N_D~|am{u>@mIGF$d literal 0 HcmV?d00001 diff --git a/resources/image/ui/hand.afdesign b/resources/image/ui/handafdesign.afdesign similarity index 100% rename from resources/image/ui/hand.afdesign rename to resources/image/ui/handafdesign.afdesign diff --git a/src/game/lib/session_storage_manager.js b/src/game/lib/session_storage_manager.js index 44230e2..24573dc 100644 --- a/src/game/lib/session_storage_manager.js +++ b/src/game/lib/session_storage_manager.js @@ -113,4 +113,19 @@ SessionStorageManager.prototype.resetPlayingAppData = function() { this.removeItem("playingAppKoreanName"); this.removeItem("record"); this.removeItem("appHighestRecord"); +} + +SessionStorageManager.prototype.resetAllAppData = function() { + this.removeItem("maestroID"); + this.removeItem("maestroName"); + this.removeItem("maestroAccountType"); + this.removeItem("playerName"); + this.removeItem("playerID"); + this.removeItem("playerAccountType"); + this.removeItem("playingAppID"); + this.removeItem("playingAppName"); + this.removeItem("playingAppKoreanName"); + this.removeItem("record"); + this.removeItem("appHighestRecord"); + this.removeItem("isNewAppHighestRecord"); } \ No newline at end of file diff --git a/src/game/lib/sprite/sprite_icon_timer.js b/src/game/lib/sprite/sprite_icon_timer.js new file mode 100644 index 0000000..f1713e5 --- /dev/null +++ b/src/game/lib/sprite/sprite_icon_timer.js @@ -0,0 +1,17 @@ +function SpriteIconTimer(width, height, frame) { + var sprite = game.add.sprite(0, 0, "icon_timer_spritesheet"); + sprite.width = width; + sprite.height = height; + sprite.frame = frame; + + return sprite; +} + +SpriteIconTimer.loadResources = function() { + game.load.spritesheet('icon_timer_spritesheet', '../../../resources/image/icon/timer_spritesheet.png', 100, 100); +} + + +SpriteIconTimer.FRAME_RESET = 0; +SpriteIconTimer.FRAME_PLAY = 1; +SpriteIconTimer.FRAME_PAUSE = 2; \ No newline at end of file diff --git a/src/game/license_timer/input_score.js b/src/game/license_timer/input_score.js index 3142b9e..dacdeb8 100644 --- a/src/game/license_timer/input_score.js +++ b/src/game/license_timer/input_score.js @@ -309,8 +309,11 @@ InputScore.prototype.onClickSendToServerButton = function() { return; } - if(this.passwordText.value == "") { - this.showAlertWindow("자격증 타이머용 비밀번호를 입력해 주세요."); + if(sessionStorageManager.getMaestroID() == 1 && sessionStorageManager.getPlayerID() == 1 && this.passwordText.value != "1111") { + this.showAlertWindow("체험용 마에스트로 비밀번호는 1111 입니다."); + return; + } if(this.passwordText.value == "") { + this.showAlertWindow("비밀번호를 입력해 주세요.\n마에스트로 관리자 페이지에 가서, 자격증 타이머용 비밀번호를 확인하고 입력해 주세요."); return; } this.maestroPassword = this.passwordText.value; diff --git a/src/game/license_timer/license_timer.js b/src/game/license_timer/license_timer.js index b75ce44..0330823 100644 --- a/src/game/license_timer/license_timer.js +++ b/src/game/license_timer/license_timer.js @@ -20,7 +20,11 @@ var LicenseTimer = { screenTopUI.makeFullScreenButton(); var titleTextStyle = { font: "36px Arial", fill: "#fff", align: "center"}; - this.titleText = game.add.text(game.world.centerX, 35, "자격증 타이머", titleTextStyle); + this.titleText = game.add.text( + game.world.centerX, 35, + "자격증 타이머 - " + sessionStorageManager.getPlayerName(), + titleTextStyle + ); this.titleText.anchor.set(0.5); // this.fullscreenButton = new FullscreenButton(); diff --git a/src/game/license_timer/loading.js b/src/game/license_timer/loading.js index 165eb76..babc065 100644 --- a/src/game/license_timer/loading.js +++ b/src/game/license_timer/loading.js @@ -30,6 +30,8 @@ var Loading = { game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); game.load.image('icon_home', '../../../resources/image/icon/home.png'); + SpriteIconTimer.loadResources(); + game.load.start(); }, diff --git a/src/game/license_timer/login.js b/src/game/license_timer/login.js index f3e2255..35e5544 100644 --- a/src/game/license_timer/login.js +++ b/src/game/license_timer/login.js @@ -1,7 +1,7 @@ var Login = { create: function() { - // sessionStorageManager.resetPlayingAppData(); + sessionStorageManager.resetAllAppData(); this.game.stage.backgroundColor = '#4d4d4d'; this.textStyle = { font: "bold 32px Arial", fill: "#fff", align: "right", boundsAlignH: "right", boundsAlignV: "middle" }; @@ -48,20 +48,9 @@ var Login = { 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(); - - /* - if(isDebugMode()) { - sessionStorageManager.setMaestroID(3); - sessionStorageManager.setMaestroAccountType(4); - sessionStorageManager.setPlayerID(35); - sessionStorageManager.setPlayerName("박지상"); - sessionStorageManager.setPlayerAccountType(0); - - game.state.start('LicenseTimer'); - } - */ }, back: function() { @@ -122,6 +111,61 @@ var Login = { 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"; + + setting.setStrokeColor( + 0x309090, + 0x208080, + 0x205050, + 0x666666 + ); + setting.setButtonColor( + 0x40c0c0, + 0x30a0a0, + 0x208080, + 0x666666 + ); + /* + setting.setTextColor( + "#fff", + "#edd", + "#dbb", + "#333" + ); + */ + + var startButton = 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); @@ -175,7 +219,7 @@ var Login = { sessionStorageManager.setPlayerName(jsonData['PlayerName']); sessionStorageManager.setPlayerAccountType(jsonData['PlayerAccountType']); - sessionStorageManager.setPlayingAppName("menu"); + // sessionStorageManager.setPlayingAppName("menu"); // location.href = '../../web/client/menu_app.html'; game.state.start('LicenseTimer'); diff --git a/src/game/license_timer/timer.js b/src/game/license_timer/timer.js index 1c0e8b7..a539b63 100644 --- a/src/game/license_timer/timer.js +++ b/src/game/license_timer/timer.js @@ -68,10 +68,13 @@ Timer.prototype.setSubjectName = function(subjectName) { Timer.prototype.makeTimer = function() { this.timeHourText = this.makeTimerTextContent(this.timerCenterX - 240, this.timerCenterY, 160, "00"); - this.timeHourMinuteSeperator = this.makeTimerTextContent(this.timerCenterX - 185, this.timerCenterY, 160, ":"); + // this.timeHourMinuteSeperator = this.makeTimerTextContent(this.timerCenterX - 185, this.timerCenterY, 160, ":"); + this.timeHourSeperator = this.makeTimerTextContent(this.timerCenterX - 190, this.timerCenterY + 45, 30, "시간"); this.timeMinuteText = this.makeTimerTextContent(this.timerCenterX, this.timerCenterY, 160, "00"); - this.timeMinuteSecondSeperator = this.makeTimerTextContent(this.timerCenterX + 40, this.timerCenterY + 20, 100, ":"); - this.timeSecondText = this.makeTimerTextContent(this.timerCenterX + 160, this.timerCenterY + 20, 100, "00"); + // this.timeMinuteSecondSeperator = this.makeTimerTextContent(this.timerCenterX + 40, this.timerCenterY + 20, 100, ":"); + this.timeMinuteSeperator = this.makeTimerTextContent(this.timerCenterX + 30, this.timerCenterY + 45, 30, "분"); + this.timeSecondText = this.makeTimerTextContent(this.timerCenterX + 160, this.timerCenterY + 24, 100, "00"); + this.timeSecondSeperator = this.makeTimerTextContent(this.timerCenterX + 180, this.timerCenterY + 50, 20, "초"); } Timer.prototype.makeTimerButtons = function() { @@ -136,14 +139,15 @@ Timer.prototype.makeResetButton = function() { "#333" ); - return new RoundRectButton( + var button = new RoundRectButton( setting, - null, "C", + null, "", (function() { this.resetTimer(); this.resetLeftTimeToServer(); }).bind(this) ); + button.setIcon(new SpriteIconTimer(50, 50, SpriteIconTimer.FRAME_RESET)); } Timer.prototype.makePlayButton = function() { @@ -176,11 +180,14 @@ Timer.prototype.makePlayButton = function() { "#333" ); - return new RoundRectButton( + var button = new RoundRectButton( setting, - null, "▶", + null, "", (function() { this.startTimer(); }).bind(this) ); + button.setIcon(new SpriteIconTimer(100, 100, SpriteIconTimer.FRAME_PLAY)); + + return button; } Timer.prototype.makePauseButton = function() { @@ -215,9 +222,9 @@ Timer.prototype.makePauseButton = function() { ); - return new RoundRectButton( + var button = new RoundRectButton( setting, - null, "∥", + new SpriteIconTimer(50, 50, SpriteIconTimer.FRAME_PAUSE), "", (function() { this.pauseTimer(); @@ -227,6 +234,9 @@ Timer.prototype.makePauseButton = function() { this.resetLeftTimeToServer(); }).bind(this) ); + button.setIcon(new SpriteIconTimer(100, 100, SpriteIconTimer.FRAME_PAUSE)); + + return button; } Timer.prototype.showButton = function(button, flag) { @@ -264,10 +274,11 @@ Timer.prototype.showTimerButtons = function() { Timer.prototype.setTimerTextColor = function(color) { this.timeHourText.tint = color; - this.timeHourMinuteSeperator.tint = color; + this.timeHourSeperator.tint = color; this.timeMinuteText.tint = color; - this.timeMinuteSecondSeperator.tint = color; + this.timeMinuteSeperator.tint = color; this.timeSecondText.tint = color; + this.timeSecondSeperator.tint = color; } Timer.prototype.startTimer = function() { @@ -607,7 +618,7 @@ Timer.prototype.updateLeftTimeToServer = function() { -Timer.Timer_CENTER_OFFSET_X = 125; +Timer.Timer_CENTER_OFFSET_X = 120; Timer.TIME_MILLISECONDS = 1000; diff --git a/src/web/client/license_timer.html b/src/web/client/license_timer.html index 718dd2f..6427f76 100644 --- a/src/web/client/license_timer.html +++ b/src/web/client/license_timer.html @@ -38,6 +38,7 @@ +