Fix: restructing session manager, ES6 -> ES5

This commit is contained in:
2018-09-14 22:22:22 +09:00
parent 72e7c1a28f
commit 3f340535ac
44 changed files with 3100 additions and 3262 deletions
+6 -6
View File
@@ -1,9 +1,9 @@
const LANGUAGE_KOREAN = "korean"; var LANGUAGE_KOREAN = "korean";
const LANGUAGE_ENGLISH = "english"; var LANGUAGE_ENGLISH = "english";
const MODE_RELEASE = "release"; var MODE_RELEASE = "release";
const MODE_DEBUG = "debug"; var MODE_DEBUG = "debug";
const runMode = MODE_RELEASE; var runMode = MODE_RELEASE;
function isDebugMode() { function isDebugMode() {
// console.log("debug mode ? " + runMode); // console.log("debug mode ? " + runMode);
@@ -16,7 +16,7 @@ function isReleaseMode() {
} }
const GAME_SCREEN_SIZE = { x: 1024, y: 768 } var GAME_SCREEN_SIZE = { x: 1024, y: 768 }
+31 -34
View File
@@ -1,14 +1,12 @@
class Animal { function Animal(type, x, y) {
constructor(type, x, y) {
this.animalType = type; this.animalType = type;
this.sprite = null; this.sprite = null;
this.posX = x; this.posX = x;
this.posY = y; this.posY = y;
} }
loadSpriteNames() { Animal.prototype.loadSpriteNames = function() {
let spriteNames = {}; let spriteNames = {};
spriteNames.icon = this.species.species + Animal.SPRITE_NAMES.icon; spriteNames.icon = this.species.species + Animal.SPRITE_NAMES.icon;
@@ -17,18 +15,18 @@ class Animal {
spriteNames.run2 = this.species.species + Animal.SPRITE_NAMES.run2; spriteNames.run2 = this.species.species + Animal.SPRITE_NAMES.run2;
return spriteNames; return spriteNames;
} }
setSpecies(species) { Animal.prototype.setSpecies = function(species) {
this.species = species; this.species = species;
if(this.animalType === Animal.TYPE_ICON) if(this.animalType === Animal.TYPE_ICON)
return; return;
this.setupAnimation(); this.setupAnimation();
} }
tweenAnimation(animationType) { Animal.prototype.tweenAnimation = function(animationType) {
switch(animationType) { switch(animationType) {
case Animal.ANIMATION_TYPE_CHANGE: case Animal.ANIMATION_TYPE_CHANGE:
this.sprite.width = 200; this.sprite.width = 200;
@@ -44,9 +42,9 @@ class Animal {
} }
} }
setupAnimation() { Animal.prototype.setupAnimation = function() {
this.spriteFrameNames = this.loadSpriteNames(); this.spriteFrameNames = this.loadSpriteNames();
this.playingSpriteFrameName = this.spriteFrameNames.run1; this.playingSpriteFrameName = this.spriteFrameNames.run1;
this.animationFrameID = 1; this.animationFrameID = 1;
@@ -61,14 +59,14 @@ class Animal {
this.stopAnimation(); this.stopAnimation();
this.animateionUpdate(); this.animateionUpdate();
} }
startAnimation() { Animal.prototype.startAnimation = function() {
if(this.timerEvent === null) if(this.timerEvent === null)
this.timerEvent = game.time.events.loop(this.animationSpeedSec, this.animateionUpdate, this); this.timerEvent = game.time.events.loop(this.animationSpeedSec, this.animateionUpdate, this);
} }
animateionUpdate() { Animal.prototype.animateionUpdate = function() {
this.animationFrameID = 1 - this.animationFrameID; this.animationFrameID = 1 - this.animationFrameID;
if(this.animationFrameID === 0) { if(this.animationFrameID === 0) {
@@ -76,33 +74,33 @@ class Animal {
} else { } else {
this.sprite.loadTexture(this.spriteFrameNames.run1); this.sprite.loadTexture(this.spriteFrameNames.run1);
} }
} }
stopAnimation() { Animal.prototype.stopAnimation = function() {
if(this.timerEvent !== null) { if(this.timerEvent !== null) {
game.time.events.remove(this.timerEvent); game.time.events.remove(this.timerEvent);
this.timerEvent = null; this.timerEvent = null;
} }
} }
static animalLevelIDByRecord(record, gameType) { Animal.animalLevelIDByRecord = function(record, gameType) {
for(let i = Animal.SPECIES_DATA.length - 1; i > 0; i--) { for(let i = Animal.SPECIES_DATA.length - 1; i > 0; i--) {
if(record >= this.typingCount(Animal.SPECIES_DATA[i], gameType)) if(record >= this.typingCount(Animal.SPECIES_DATA[i], gameType))
return i; return i;
} }
return 0; return 0;
} }
static typingCount(speciesData, gameType) { Animal.typingCount = function(speciesData, gameType) {
if(gameType === Animal.TYPE_PRACTICE) if(gameType === Animal.TYPE_PRACTICE)
return speciesData.practiceTypingCount; return speciesData.practiceTypingCount;
else else
return speciesData.testTypingCount; return speciesData.testTypingCount;
} }
static loadResources() { Animal.loadResources = function() {
game.load.image('snail_shadow', '../../../resources/image/character/animal/snail/shadow.png'); game.load.image('snail_shadow', '../../../resources/image/character/animal/snail/shadow.png');
game.load.image('snail_icon', '../../../resources/image/character/animal/snail/run2.png'); game.load.image('snail_icon', '../../../resources/image/character/animal/snail/run2.png');
@@ -144,7 +142,6 @@ class Animal {
game.load.image('eagle_icon', '../../../resources/image/character/animal/eagle/run2.png'); game.load.image('eagle_icon', '../../../resources/image/character/animal/eagle/run2.png');
game.load.image('eagle_run1', '../../../resources/image/character/animal/eagle/run1.png'); game.load.image('eagle_run1', '../../../resources/image/character/animal/eagle/run1.png');
game.load.image('eagle_run2', '../../../resources/image/character/animal/eagle/run2.png'); game.load.image('eagle_run2', '../../../resources/image/character/animal/eagle/run2.png');
}
} }
@@ -159,16 +156,16 @@ Animal.ANIMATION_TYPE_DAMAGE = 1;
Animal.SPECIES_DATA = [ Animal.SPECIES_DATA = [
{ "species" : "snail", "runningFPS" : 1.1, "practiceTypingCount" : 0, "testTypingCount" : 0 }, { "species" : "snail", "runningFPS" : 1.1, "practiceTypingCount" : 0, "testTypingCount" : 0 },
{ "species" : "turtle", "runningFPS" : 2.2, "practiceTypingCount" : 5, "testTypingCount" : 20 }, { "species" : "turtle", "runningFPS" : 2.2, "practiceTypingCount" : 5, "testTypingCount" : 20 },
{ "species" : "cat", "runningFPS" : 3.3, "practiceTypingCount" : 10, "testTypingCount" : 50 }, { "species" : "cat", "runningFPS" : 3.3, "practiceTypingCount" : 10, "testTypingCount" : 50 },
{ "species" : "lion", "runningFPS" : 4.4, "practiceTypingCount" : 15, "testTypingCount" : 100 }, { "species" : "lion", "runningFPS" : 4.4, "practiceTypingCount" : 15, "testTypingCount" : 100 },
{ "species" : "rabbit", "runningFPS" : 5.5, "practiceTypingCount" : 20, "testTypingCount" : 200 }, { "species" : "rabbit", "runningFPS" : 5.5, "practiceTypingCount" : 20, "testTypingCount" : 200 },
{ "species" : "ostrich", "runningFPS" : 7.7, "practiceTypingCount" : 25, "testTypingCount" : 300 }, { "species" : "ostrich", "runningFPS" : 7.7, "practiceTypingCount" : 25, "testTypingCount" : 300 },
{ "species" : "horse", "runningFPS" : 9.9, "practiceTypingCount" : 30, "testTypingCount" : 400 }, { "species" : "horse", "runningFPS" : 9.9, "practiceTypingCount" : 30, "testTypingCount" : 400 },
{ "species" : "dog", "runningFPS" : 12.2, "practiceTypingCount" : 35, "testTypingCount" : 500 }, { "species" : "dog", "runningFPS" : 12.2, "practiceTypingCount" : 35, "testTypingCount" : 500 },
{ "species" : "cheetah", "runningFPS" : 16, "practiceTypingCount" : 40, "testTypingCount" : 600 }, { "species" : "cheetah", "runningFPS" : 16, "practiceTypingCount" : 40, "testTypingCount" : 600 },
{ "species" : "eagle", "runningFPS" : 20, "practiceTypingCount" : 50, "testTypingCount" : 700 } { "species" : "eagle", "runningFPS" : 20, "practiceTypingCount" : 50, "testTypingCount" : 700 }
]; ];
Animal.SPRITE_NAMES = { Animal.SPRITE_NAMES = {
+7 -14
View File
@@ -1,14 +1,9 @@
///////////////////////////// function AnnounceBox(x, y) {
// Chart
class AnnounceBox {
constructor(x, y) {
this.posX = x; this.posX = x;
this.posY = y; this.posY = y;
} }
drawText(posX, posY, text) { AnnounceBox.prototype.drawText = function(posX, posY, text) {
const style = { font: "24px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" }; const style = { font: "24px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
let textObject = game.add.text( let textObject = game.add.text(
@@ -20,13 +15,13 @@ class AnnounceBox {
textObject.strokeThickness = 3; textObject.strokeThickness = 3;
return textObject; return textObject;
} }
getFontStyle() { AnnounceBox.prototype.getFontStyle = function() {
return { font: "32px Arial", fill: "#fff" }; return { font: "32px Arial", fill: "#fff" };
} }
drawBox(text) { AnnounceBox.prototype.drawBox = function(text) {
this.graphics = game.add.graphics(this.posX, this.posY); this.graphics = game.add.graphics(this.posX, this.posY);
this.graphics.alpha = 0.8; this.graphics.alpha = 0.8;
@@ -47,6 +42,4 @@ class AnnounceBox {
announceText.addColor("#ff0000", 0); announceText.addColor("#ff0000", 0);
announceText.stroke = "#330000"; announceText.stroke = "#330000";
}
} }
+12 -20
View File
@@ -1,26 +1,20 @@
class AppInfo { function AppInfo(appID, appName, koreanName, howToPlay) {
constructor(appID, appName, koreanName, howToPlay) {
this.appID = appID; this.appID = appID;
this.appName = appName; this.appName = appName;
this.koreanName = koreanName; this.koreanName = koreanName;
this.isActivated = false; this.isActivated = false;
this.howToPlay = howToPlay; this.howToPlay = howToPlay;
}
} }
class AppInfoManager { function AppInfoManager() {
constructor() {
this.appInfoMap = new Map(); this.appInfoMap = new Map();
this.registerAppInfoList(); this.registerAppInfoList();
} }
registerAppInfoList() { AppInfoManager.prototype.registerAppInfoList = function() {
// menu // menu
this.registerAppInfo(new AppInfo("test", "테스트", "")); this.registerAppInfo(new AppInfo("test", "테스트", ""));
this.registerAppInfo(new AppInfo("login", "로그인", "")); this.registerAppInfo(new AppInfo("login", "로그인", ""));
@@ -50,28 +44,26 @@ class AppInfoManager {
this.registerAppInfo(new AppInfo("card_matching", "카드 짝 맞추기", this.registerAppInfo(new AppInfo("card_matching", "카드 짝 맞추기",
"외계인이 나타났다 사라집니다.\n\n마우스 왼쪽 버튼으로 외계인을 클릭해서\n\n물리쳐 주세요." "외계인이 나타났다 사라집니다.\n\n마우스 왼쪽 버튼으로 외계인을 클릭해서\n\n물리쳐 주세요."
)); ));
} }
setHowToPlay(appName, text) { AppInfoManager.prototype.setHowToPlay = function(appName, text) {
this.appInfoMap[appName].howToPlay = text; this.appInfoMap[appName].howToPlay = text;
} }
registerAppInfo(appInfo) { AppInfoManager.prototype.registerAppInfo = function(appInfo) {
return this.appInfoMap[appInfo.appName] = appInfo; return this.appInfoMap[appInfo.appName] = appInfo;
} }
getAppkoreanName(appName) { AppInfoManager.prototype.getAppkoreanName = function(appName) {
if(appName === null) if(appName === null)
return ""; return "";
return this.appInfoMap[appName].koreanName; return this.appInfoMap[appName].koreanName;
} }
getHowToPlayText(appName) { AppInfoManager.prototype.getHowToPlayText = function(appName) {
if(appName === null) if(appName === null)
return ""; return "";
return this.appInfoMap[appName].howToPlay; return this.appInfoMap[appName].howToPlay;
}
} }
+3 -3
View File
@@ -79,9 +79,9 @@ function GameAppButton(x, y, type, iconName, buttonText, appInfo) {
GameAppButton.prototype.clickEvent = function() { GameAppButton.prototype.clickEvent = function() {
sessionStorageManager.getPlayingAppID() = this.appInfo.AppID; sessionStorageManager.setPlayingAppID(this.appInfo.AppID);
sessionStorageManager.getPlayingAppName() = this.appInfo.AppName; sessionStorageManager.setPlayingAppName(this.appInfo.AppName);
sessionStorageManager.getPlayingAppKoreanName() = this.appInfo.KoreanName; sessionStorageManager.setPlayingAppKoreanName(this.appInfo.KoreanName);
location.href = '../../web/client/start.html'; location.href = '../../web/client/start.html';
} }
+16 -22
View File
@@ -1,22 +1,17 @@
///////////////////////////// function Chart() {
// Chart
class Chart {
constructor() {
this.chartGraphics = game.add.graphics(0, 0); this.chartGraphics = game.add.graphics(0, 0);
} }
printChartBaseLine() { Chart.prototype.printChartBaseLine = function() {
this.chartGraphics.lineStyle(3, 0xffd900, 1); this.chartGraphics.lineStyle(3, 0xffd900, 1);
this.chartGraphics.moveTo(100, Chart.CHART_LINE_Y); this.chartGraphics.moveTo(100, Chart.CHART_LINE_Y);
this.chartGraphics.lineTo(game.world.width - 100, Chart.CHART_LINE_Y); this.chartGraphics.lineTo(game.world.width - 100, Chart.CHART_LINE_Y);
} }
drawRecordGraph(index, date, bestRecord, min, max) { Chart.prototype.drawRecordGraph = function(index, date, bestRecord, min, max) {
let reverseIndex = (Chart.CHART_COUNT - 1) - index; var reverseIndex = (Chart.CHART_COUNT - 1) - index;
let posX = Chart.CHART_LINE_START_X + Chart.CHART_GRAPH_OFFSET_X + reverseIndex * Chart.CHART_GAP_PX; var posX = Chart.CHART_LINE_START_X + Chart.CHART_GRAPH_OFFSET_X + reverseIndex * Chart.CHART_GAP_PX;
let posY = Chart.CHART_LINE_Y; var posY = Chart.CHART_LINE_Y;
this.drawText( this.drawText(
posX, posY + Chart.CHART_DATE_OFFSET_Y, posX, posY + Chart.CHART_DATE_OFFSET_Y,
@@ -35,12 +30,12 @@ class Chart {
this.chartGraphics.lineStyle(50, 0xdddddd, 1); this.chartGraphics.lineStyle(50, 0xdddddd, 1);
this.chartGraphics.moveTo(posX, posY); this.chartGraphics.moveTo(posX, posY);
this.chartGraphics.lineTo(posX, posY - Chart.CHART_HEIGHT * ( (bestRecord - min) / (max - min) )); this.chartGraphics.lineTo(posX, posY - Chart.CHART_HEIGHT * ( (bestRecord - min) / (max - min) ));
} }
drawText(posX, posY, text) { Chart.prototype.drawText = function(posX, posY, text) {
const style = { font: "24px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" }; const style = { font: "24px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
let textObject = game.add.text( var textObject = game.add.text(
posX, posY, posX, posY,
text, style text, style
); );
@@ -49,14 +44,13 @@ class Chart {
textObject.strokeThickness = 3; textObject.strokeThickness = 3;
return textObject; return textObject;
}
getFontStyle() {
return { font: "32px Arial", fill: "#fff" };
}
} }
Chart.prototype.getFontStyle = function() {
return { font: "32px Arial", fill: "#fff" };
}
Chart.CHART_COUNT = 7; Chart.CHART_COUNT = 7;
Chart.CHART_LINE_START_X = 100; Chart.CHART_LINE_START_X = 100;
+5 -6
View File
@@ -1,14 +1,13 @@
class DateUtil { function DateUtil() {
}
static getYYYYMMDD(date) { DateUtil.getYYYYMMDD = function(date) {
// return date.toISOString().slice(0,10); // return date.toISOString().slice(0,10);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
} }
static getHHMMSS(date) { DateUtil.getHHMMSS = function(date) {
return StringUtil.getNumberStartWithZero(date.getHours(), 2) + ":" return StringUtil.getNumberStartWithZero(date.getHours(), 2) + ":"
+ StringUtil.getNumberStartWithZero(date.getMinutes(), 2) + ":" + StringUtil.getNumberStartWithZero(date.getMinutes(), 2) + ":"
+ StringUtil.getNumberStartWithZero(date.getSeconds(), 2); + StringUtil.getNumberStartWithZero(date.getSeconds(), 2);
}
} }
+101 -106
View File
@@ -1,6 +1,4 @@
class DBConnectManager { function DBConnectManager() {
constructor() {
this.path = this.getPath(); this.path = this.getPath();
this.directoryName = this.getDirectoryName(this.path); this.directoryName = this.getDirectoryName(this.path);
this.phpPath = this.getPHPPath(this.directoryName); this.phpPath = this.getPHPPath(this.directoryName);
@@ -9,51 +7,51 @@ class DBConnectManager {
this.playerID = 0; this.playerID = 0;
this.appName = ""; this.appName = "";
this.dateAndTime = null; this.dateAndTime = null;
} }
setMaestroID(maestroID) { DBConnectManager.prototype.setMaestroID = function(maestroID) {
this.maestroID = maestroID; this.maestroID = maestroID;
} }
setPlayerID(playerID) { DBConnectManager.prototype.setPlayerID = function(playerID) {
this.playerID = playerID; this.playerID = playerID;
} }
setAppName(appName) { DBConnectManager.prototype.setAppName = function(appName) {
this.appName = appName; this.appName = appName;
} }
setDateTime(date, time) { DBConnectManager.prototype.setDateTime = function(date, time) {
this.dateAndTime = date + time; this.dateAndTime = date + time;
} }
resetDateTime() { DBConnectManager.prototype.resetDateTime = function() {
this.dateAndTime = null; this.dateAndTime = null;
} }
getPath() { DBConnectManager.prototype.getPath = function() {
return window.location.pathname; return window.location.pathname;
} }
getDirectoryName(path) { DBConnectManager.prototype.getDirectoryName = function(path) {
let pathAndFileNames = path.split("/"); var pathAndFileNames = path.split("/");
return pathAndFileNames[pathAndFileNames.length - 2]; return pathAndFileNames[pathAndFileNames.length - 2];
} }
getPHPPath(directoryName) { DBConnectManager.prototype.getPHPPath = function(directoryName) {
if(directoryName === "test") // mouse_typing/test/ if(directoryName === "test") // mouse_typing/test/
return "../src/web/"; return "../src/web/";
else // mousetyping/src/web/client/ else // mousetyping/src/web/client/
return "../"; return "../";
} }
requestCheckPlayerLogin(maestroName, playerName, enterCode, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestCheckPlayerLogin = function(maestroName, playerName, enterCode, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/player/login.php", true); xhr.open("POST", this.phpPath + "server/player/login.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON["PlayerID"] != null) if(replyJSON != null && replyJSON["PlayerID"] != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -62,16 +60,16 @@ class DBConnectManager {
} }
}; };
xhr.send("maestro_name=" + maestroName + "&name=" + playerName + "&enter_code=" + enterCode); xhr.send("maestro_name=" + maestroName + "&name=" + playerName + "&enter_code=" + enterCode);
} }
/* /*
requestAppList(maestroID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestAppList = function(maestroID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/app_data.php", true); xhr.open("POST", this.phpPath + "server/app/app_data.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -80,15 +78,15 @@ class DBConnectManager {
} }
}; };
xhr.send("maestro_id=" + maestroID); xhr.send("maestro_id=" + maestroID);
} }
requestActiveAppList(maestroID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestActiveAppList = function(maestroID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/active_app.php", true); xhr.open("POST", this.phpPath + "server/app/active_app.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -97,16 +95,16 @@ class DBConnectManager {
} }
}; };
xhr.send("maestro_id=" + maestroID); xhr.send("maestro_id=" + maestroID);
} }
*/ */
requestMenuAppList(maestroID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestMenuAppList = function(maestroID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/menu_active_app_list.php", true); xhr.open("POST", this.phpPath + "server/app/menu_active_app_list.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -115,15 +113,15 @@ class DBConnectManager {
} }
}; };
xhr.send("maestro_id=" + maestroID); xhr.send("maestro_id=" + maestroID);
} }
requestTypingPracticeAppList(maestroID, playerID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestTypingPracticeAppList = function(maestroID, playerID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/menu_active_typing_practice_app_list.php", true); xhr.open("POST", this.phpPath + "server/app/menu_active_typing_practice_app_list.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -132,15 +130,15 @@ class DBConnectManager {
} }
}; };
xhr.send("maestro_id=" + maestroID + "&player_id=" + playerID); xhr.send("maestro_id=" + maestroID + "&player_id=" + playerID);
} }
requestTypingTestAppList(maestroID, playerID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestTypingTestAppList = function(maestroID, playerID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/menu_active_typing_test_app_list.php", true); 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.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -149,10 +147,10 @@ class DBConnectManager {
} }
}; };
xhr.send("maestro_id=" + maestroID + "&player_id=" + playerID); xhr.send("maestro_id=" + maestroID + "&player_id=" + playerID);
} }
requestPlayerHistory(maestroID, date, listener) { DBConnectManager.prototype.requestPlayerHistory = function(maestroID, date, listener) {
let historyRecordManager = new HistoryRecordManager(); var historyRecordManager = new HistoryRecordManager();
/* /*
if(isDebugMode()) { if(isDebugMode()) {
@@ -165,14 +163,14 @@ class DBConnectManager {
} }
*/ */
let self = this; var self = this;
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/record/history_record.php", true); xhr.open("POST", this.phpPath + "server/record/history_record.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
listener(self.parseJSONtoHistoryRecord(replyJSON)); listener(self.parseJSONtoHistoryRecord(replyJSON));
@@ -180,15 +178,15 @@ class DBConnectManager {
onFailedListener(replyJSON); onFailedListener(replyJSON);
} }
}; };
let params = "MaestroID=" + sessionStorageManager.maestroID var params = "MaestroID=" + sessionStorageManager.getMaestroID()
+ "&AppID=" + sessionStorageManager.playingAppID + "&AppID=" + sessionStorageManager.getPlayingAppID()
+ "&PlayerID=" + sessionStorageManager.playerID + "&PlayerID=" + sessionStorageManager.getPlayerID()
+ "&Date=" + date; + "&Date=" + date;
xhr.send(params); xhr.send(params);
} }
parseJSONtoHistoryRecord(json) { DBConnectManager.prototype.parseJSONtoHistoryRecord = function(json) {
let historyRecordManager = new HistoryRecordManager(); var historyRecordManager = new HistoryRecordManager();
if(typeof json === "undefined") if(typeof json === "undefined")
return historyRecordManager; return historyRecordManager;
@@ -196,9 +194,9 @@ class DBConnectManager {
if(typeof json.history === "undefined") if(typeof json.history === "undefined")
return historyRecordManager; return historyRecordManager;
let count = json.history.length; var count = json.history.length;
for(let i = 0; i < count; i++) { for(var i = 0; i < count; i++) {
let record = new HistoryRecord( var record = new HistoryRecord(
json.history[i]["Date"], json.history[i]["Date"],
json.history[i]["AppName"], json.history[i]["AppName"],
json.history[i]["HighScore"] json.history[i]["HighScore"]
@@ -228,10 +226,10 @@ class DBConnectManager {
return recordArray; return recordArray;
*/ */
} }
requestRanking(type, maestroID, date, time, listener) { DBConnectManager.prototype.requestRanking = function(type, maestroID, date, time, listener) {
let rankingRecordManager = new RankingRecordManager(); var rankingRecordManager = new RankingRecordManager();
/* /*
if(isDebugMode()) { if(isDebugMode()) {
@@ -244,14 +242,14 @@ class DBConnectManager {
} }
*/ */
let self = this; var self = this;
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.getRankingRecordUrl(type), true); xhr.open("POST", this.getRankingRecordUrl(type), true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) { if(replyJSON != null) {
listener(type, self.parseJSONtoRankingRecord(type, replyJSON)); listener(type, self.parseJSONtoRankingRecord(type, replyJSON));
@@ -260,15 +258,15 @@ class DBConnectManager {
onFailedListener(replyJSON); onFailedListener(replyJSON);
} }
}; };
let params = "MaestroID=" + sessionStorageManager.maestroID var params = "MaestroID=" + sessionStorageManager.getMaestroID()
+ "&AppID=" + sessionStorageManager.playingAppID + "&AppID=" + sessionStorageManager.getPlayingAppID()
+ "&Date=" + date + "&Date=" + date
+ "&Time=" + time; + "&Time=" + time;
xhr.send(params); xhr.send(params);
} }
getRankingRecordUrl(type) { DBConnectManager.prototype.getRankingRecordUrl = function(type) {
let rankingRecordURL = this.phpPath; var rankingRecordURL = this.phpPath;
switch(type) { switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR: case DBConnectManager.TYPE_MY_RANKING_HOUR:
@@ -288,15 +286,15 @@ class DBConnectManager {
} }
return rankingRecordURL; return rankingRecordURL;
} }
parseJSONtoRankingRecord(type, json) { DBConnectManager.prototype.parseJSONtoRankingRecord = function(type, json) {
let rankingRecordManager = new RankingRecordManager(); var rankingRecordManager = new RankingRecordManager();
if(typeof json === "undefined") if(typeof json === "undefined")
return rankingRecordManager; return rankingRecordManager;
let replyJSON = null; var replyJSON = null;
switch(type) { switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR: case DBConnectManager.TYPE_MY_RANKING_HOUR:
case DBConnectManager.TYPE_ALL_RANKING_HOUR: case DBConnectManager.TYPE_ALL_RANKING_HOUR:
@@ -317,9 +315,9 @@ class DBConnectManager {
if(replyJSON === null) if(replyJSON === null)
return rankingRecordManager; return rankingRecordManager;
let count = replyJSON.length; var count = replyJSON.length;
for(let i = 0; i < count; i++) { for(var i = 0; i < count; i++) {
let record = new RankingRecord( var record = new RankingRecord(
i + 1, i + 1,
replyJSON[i]["PlayerID"], replyJSON[i]["PlayerID"],
replyJSON[i]["Name"], replyJSON[i]["Name"],
@@ -329,18 +327,18 @@ class DBConnectManager {
} }
return rankingRecordManager; return rankingRecordManager;
} }
onFailed(errorMessage) { DBConnectManager.prototype.onFailed = function(errorMessage) {
console.log("failed : " + errorMessage); console.log("failed : " + errorMessage);
} }
makeXHRWithParam(url, param, onSucceededListener, onFailedListener) { DBConnectManager.prototype.makeXHRWithParam = function(url, param, onSucceededListener, onFailedListener) {
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON["PlayerID"] != null) if(replyJSON != null && replyJSON["PlayerID"] != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -350,15 +348,15 @@ class DBConnectManager {
} }
return xhr; return xhr;
} }
requestHowToPlay(appID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestHowToPlay = function(appID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/app/how_to_play.php", true); xhr.open("POST", this.phpPath + "server/app/how_to_play.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON["HowToPlay"] != null) if(replyJSON != null && replyJSON["HowToPlay"] != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -367,10 +365,10 @@ class DBConnectManager {
} }
}; };
xhr.send("AppID=" + appID); xhr.send("AppID=" + appID);
} }
updateTodayBestRecord(maestroID, playerID, appID, record) { DBConnectManager.prototype.updateTodayBestRecord = function(maestroID, playerID, appID, record) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/record/update_best_record.php", true); xhr.open("POST", this.phpPath + "server/record/update_best_record.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send( xhr.send(
@@ -379,15 +377,15 @@ class DBConnectManager {
+ "&AppID=" + appID + "&AppID=" + appID
+ "&BestRecord=" + record + "&BestRecord=" + record
); );
} }
requestTodayBestRecord(maestroID, playerID, appID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestTodayBestRecord = function(maestroID, playerID, appID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/record/request_best_record.php", true); xhr.open("POST", this.phpPath + "server/record/request_best_record.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null && replyJSON["BestRecord"] != null) if(replyJSON != null && replyJSON["BestRecord"] != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -400,15 +398,15 @@ class DBConnectManager {
+ "&PlayerID=" + playerID + "&PlayerID=" + playerID
+ "&AppID=" + appID + "&AppID=" + appID
); );
} }
requestAppRanking(maestroID, appID, onSucceededListener, onFailedListener) { DBConnectManager.prototype.requestAppRanking = function(maestroID, appID, onSucceededListener, onFailedListener) {
let xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("POST", this.phpPath + "server/record/app_ranking.php", true); xhr.open("POST", this.phpPath + "server/record/app_ranking.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) { if(xhr.readyState == 4 && xhr.status == 200) {
let replyJSON = JSON.parse(xhr.responseText); var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null) if(replyJSON != null)
onSucceededListener(replyJSON); onSucceededListener(replyJSON);
@@ -420,11 +418,10 @@ class DBConnectManager {
"MaestroID=" + maestroID "MaestroID=" + maestroID
+ "&AppID=" + appID + "&AppID=" + appID
); );
} }
DBConnectManager.prototype.loadTempPlayerHistory = function(historyRecordManager) {
loadTempPlayerHistory(historyRecordManager) {
historyRecordManager.push(new HistoryRecord("05/14", "space_invaders", 14460)); historyRecordManager.push(new HistoryRecord("05/14", "space_invaders", 14460));
historyRecordManager.push(new HistoryRecord("05/13", "space_invaders", 12860)); historyRecordManager.push(new HistoryRecord("05/13", "space_invaders", 12860));
historyRecordManager.push(new HistoryRecord("05/12", "typing_english_basic", 15460)); historyRecordManager.push(new HistoryRecord("05/12", "typing_english_basic", 15460));
@@ -432,9 +429,9 @@ class DBConnectManager {
historyRecordManager.push(new HistoryRecord("05/10", "space_invaders", 15460)); historyRecordManager.push(new HistoryRecord("05/10", "space_invaders", 15460));
historyRecordManager.push(new HistoryRecord("05/09", "typing_english_basic", 14607)); historyRecordManager.push(new HistoryRecord("05/09", "typing_english_basic", 14607));
historyRecordManager.push(new HistoryRecord("05/08", "typing_korean_basic", 13058)); historyRecordManager.push(new HistoryRecord("05/08", "typing_korean_basic", 13058));
} }
loadTempRanking(rankingRecordManager) { DBConnectManager.prototype.loadTempRanking = function(rankingRecordManager) {
rankingRecordManager.push(new RankingRecord(1, 7, "강경모", 4400)); rankingRecordManager.push(new RankingRecord(1, 7, "강경모", 4400));
rankingRecordManager.push(new RankingRecord(2, 2, "강성태", 3400)); rankingRecordManager.push(new RankingRecord(2, 2, "강성태", 3400));
rankingRecordManager.push(new RankingRecord(3, 3, "김기덕", 2400)); rankingRecordManager.push(new RankingRecord(3, 3, "김기덕", 2400));
@@ -451,8 +448,6 @@ class DBConnectManager {
rankingRecordManager.push(new RankingRecord(14, 14, "합기도", 40)); rankingRecordManager.push(new RankingRecord(14, 14, "합기도", 40));
rankingRecordManager.push(new RankingRecord(15, 15, "우습지", 10)); rankingRecordManager.push(new RankingRecord(15, 15, "우습지", 10));
rankingRecordManager.push(new RankingRecord(16, 16, "하하하", 4)); rankingRecordManager.push(new RankingRecord(16, 16, "하하하", 4));
}
} }
DBConnectManager.TYPE_MY_RANKING_HOUR = 0; DBConnectManager.TYPE_MY_RANKING_HOUR = 0;
+8 -8
View File
@@ -1,8 +1,9 @@
class GameOverText extends Phaser.Text { GameOverText.prototype = Object.create(Phaser.Text.prototype);
GameOverText.constructor = GameOverText;
constructor() { function GameOverText() {
super( Phaser.Text.call(
game, this, game,
game.world.width / 2, game.world.width / 2,
game.world.height / 2 - GameOverText.MOVE_AMOUNT_PX, game.world.height / 2 - GameOverText.MOVE_AMOUNT_PX,
"게임 오버", "게임 오버",
@@ -23,16 +24,15 @@ class GameOverText extends Phaser.Text {
this.alpha = 0; this.alpha = 0;
let tweenAlpha = game.add.tween(this); var tweenAlpha = game.add.tween(this);
tweenAlpha.to( { alpha: 1 }, GameOverText.TWEEN_ALPHA_TIME, Phaser.Easing.Linear.None, true); tweenAlpha.to( { alpha: 1 }, GameOverText.TWEEN_ALPHA_TIME, Phaser.Easing.Linear.None, true);
let tweenMove = game.add.tween(this); var tweenMove = game.add.tween(this);
tweenMove.to( { y: game.world.height / 2 }, GameOverText.TWEEN_MOVE_TIME, Phaser.Easing.Bounce.Out, true); tweenMove.to( { y: game.world.height / 2 }, GameOverText.TWEEN_MOVE_TIME, Phaser.Easing.Bounce.Out, true);
game.add.existing(this); game.add.existing(this);
}; };
}
GameOverText.DEFAULT_TEXT_FONT = { GameOverText.DEFAULT_TEXT_FONT = {
font: "bold 100px Arial", font: "bold 100px Arial",
+15 -18
View File
@@ -1,10 +1,8 @@
class HeartGauge { function HeartGauge(heartManager) {
constructor(heartManager) {
this.heartManager = heartManager; this.heartManager = heartManager;
this.hearts = []; this.hearts = [];
let self = this; var self = this;
this.heartManager.addOnChangeCountListener( this.heartManager.addOnChangeCountListener(
function() { self.onChangeCountListener(); } function() { self.onChangeCountListener(); }
); );
@@ -13,31 +11,31 @@ class HeartGauge {
function() { self.onChangeMaxCountListener(); } function() { self.onChangeMaxCountListener(); }
); );
let startPosX = GAME_SCREEN_SIZE.x - HeartGauge.GAP * 4; var startPosX = GAME_SCREEN_SIZE.x - HeartGauge.GAP * 4;
let posY = 30; var posY = 30;
for(let i = 0; i < HeartManager.HEART_MAX_COUNT; i++) { for(var i = 0; i < HeartManager.HEART_MAX_COUNT; i++) {
let heart = game.add.sprite(startPosX - i * HeartGauge.GAP, posY, "heart_full"); var heart = game.add.sprite(startPosX - i * HeartGauge.GAP, posY, "heart_full");
heart.anchor.set(0.5); heart.anchor.set(0.5);
heart.scale.set(HeartGauge.HEART_SCALE); heart.scale.set(HeartGauge.HEART_SCALE);
heart.alpha = 0; heart.alpha = 0;
this.hearts.push(heart); this.hearts.push(heart);
} }
}; };
onChangeCountListener() { HeartGauge.prototype.onChangeCountListener = function() {
this.updateHearts(); this.updateHearts();
} }
onChangeMaxCountListener() { HeartGauge.prototype.onChangeMaxCountListener = function() {
this.updateHearts(); this.updateHearts();
} }
start() { HeartGauge.prototype.start = function() {
this.updateHearts(); this.updateHearts();
} }
updateHearts() { HeartGauge.prototype.updateHearts = function() {
for(let i = 0; i < this.heartManager.getMaxCount(); i++) { for(var i = 0; i < this.heartManager.getMaxCount(); i++) {
if(i < this.heartManager.getCount()) if(i < this.heartManager.getCount())
this.hearts[i].loadTexture("heart_full"); this.hearts[i].loadTexture("heart_full");
else else
@@ -45,7 +43,6 @@ class HeartGauge {
this.hearts[i].alpha = 1; this.hearts[i].alpha = 1;
} }
}
} }
HeartGauge.GAP = 35; HeartGauge.GAP = 35;
+38 -41
View File
@@ -1,61 +1,59 @@
class HeartManager { function HeartManager() {
constructor() {
this.countHearts = HeartManager.DEFAULT_COUNT; this.countHearts = HeartManager.DEFAULT_COUNT;
this.countMaxHearts = HeartManager.DEFAULT_COUNT; this.countMaxHearts = HeartManager.DEFAULT_COUNT;
this.onChangeCountListeners = []; this.onChangeCountListeners = [];
this.onChangeMaxCountListeners = []; this.onChangeMaxCountListeners = [];
this.onChangeGameOverListeners = []; this.onChangeGameOverListeners = [];
} }
callListener(functionArray) { HeartManager.prototype.callListener = function(functionArray) {
if(functionArray.length > 0) { if(functionArray.length > 0) {
for(let i = 0; i < functionArray.length; i++) { for(var i = 0; i < functionArray.length; i++) {
functionArray[i](this.score); functionArray[i](this.score);
} }
} }
} }
addOnChangeCountListener(onChangeFunction) { HeartManager.prototype.addOnChangeCountListener = function(onChangeFunction) {
this.onChangeCountListeners.push(onChangeFunction); this.onChangeCountListeners.push(onChangeFunction);
} }
removeOnChangeCountListener(onChangeFunction) { HeartManager.prototype.removeOnChangeCountListener = function(onChangeFunction) {
let itemIndex = this.onChangeCountListeners.indexOf(onChangeFunction); var itemIndex = this.onChangeCountListeners.indexOf(onChangeFunction);
if(itemIndex > -1) if(itemIndex > -1)
this.onChangeCountListeners.splice(itemIndex, 1); this.onChangeCountListeners.splice(itemIndex, 1);
} }
addOnChangeMaxCountListener(onChangeMaxFunction) { HeartManager.prototype.addOnChangeMaxCountListener = function(onChangeMaxFunction) {
this.onChangeMaxCountListeners.push(onChangeMaxFunction); this.onChangeMaxCountListeners.push(onChangeMaxFunction);
} }
removeOnChangeMaxCountListener(onChangeMaxFunction) { HeartManager.prototype.removeOnChangeMaxCountListener = function(onChangeMaxFunction) {
let itemIndex = this.onChangeMaxCountListeners.indexOf(onChangeMaxFunction); var itemIndex = this.onChangeMaxCountListeners.indexOf(onChangeMaxFunction);
if(itemIndex > -1) if(itemIndex > -1)
this.onChangeMaxCountListeners.splice(itemIndex, 1); this.onChangeMaxCountListeners.splice(itemIndex, 1);
} }
addOnChangeGameOverListener(onChangeGameOverFunction) { HeartManager.prototype.addOnChangeGameOverListener = function(onChangeGameOverFunction) {
this.onChangeGameOverListeners.push(onChangeGameOverFunction); this.onChangeGameOverListeners.push(onChangeGameOverFunction);
} }
removeOnChangeHighScoreListener(onChangeGameOverFunction) { HeartManager.prototype.removeOnChangeHighScoreListener = function(onChangeGameOverFunction) {
let itemIndex = this.onChangeGameOverListeners.indexOf(onChangeGameOverFunction); var itemIndex = this.onChangeGameOverListeners.indexOf(onChangeGameOverFunction);
if(itemIndex > -1) if(itemIndex > -1)
this.onChangeGameOverListeners.splice(itemIndex, 1); this.onChangeGameOverListeners.splice(itemIndex, 1);
} }
removeAllListeners() { HeartManager.prototype.removeAllListeners = function() {
this.onChangeCountListeners = []; this.onChangeCountListeners = [];
this.onChangeMaxCountListeners = []; this.onChangeMaxCountListeners = [];
this.onChangeGameOverListeners = []; this.onChangeGameOverListeners = [];
} }
setCount(amount) { HeartManager.prototype.setCount = function(amount) {
let beforeCountHearts = this.countHearts; var beforeCountHearts = this.countHearts;
this.countHearts = amount; this.countHearts = amount;
if(this.countHearts < 0) if(this.countHearts < 0)
this.countHearts = 0; this.countHearts = 0;
@@ -67,14 +65,14 @@ class HeartManager {
if(this.countHearts === 0) if(this.countHearts === 0)
this.callListener(this.onChangeGameOverListeners); this.callListener(this.onChangeGameOverListeners);
} }
getCount() { HeartManager.prototype.getCount = function() {
return this.countHearts; return this.countHearts;
} }
setMaxCount(amount) { HeartManager.prototype.setMaxCount = function(amount) {
let beforeCountHearts = this.countMaxHearts; var beforeCountHearts = this.countMaxHearts;
this.countMaxHearts = amount; this.countMaxHearts = amount;
if(this.countMaxHearts > HeartManager.HEART_MAX_COUNT) if(this.countMaxHearts > HeartManager.HEART_MAX_COUNT)
this.countMaxHearts = HeartManager.HEART_MAX_COUNT; this.countMaxHearts = HeartManager.HEART_MAX_COUNT;
@@ -84,22 +82,21 @@ class HeartManager {
if(this.countHearts > this.countMaxHearts) if(this.countHearts > this.countMaxHearts)
this.setCount(this.countMaxHearts); this.setCount(this.countMaxHearts);
} }
getMaxCount() { HeartManager.prototype.getMaxCount = function() {
return this.countMaxHearts; return this.countMaxHearts;
} }
addHearts(amount) { HeartManager.prototype.addHearts = function(amount) {
this.setCount(this.countHearts + amount); this.setCount(this.countHearts + amount);
}
breakHearts(amount) {
this.addHearts(-1 * amount);
}
} }
HeartManager.prototype.breakHearts = function(amount) {
this.addHearts(-1 * amount);
}
HeartManager.DEFAULT_COUNT = 3; HeartManager.DEFAULT_COUNT = 3;
HeartManager.HEART_MAX_COUNT = 5; HeartManager.HEART_MAX_COUNT = 5;
+34 -42
View File
@@ -1,87 +1,79 @@
class HistoryRecord { function HistoryRecord(date, appName, bestRecord) {
constructor(date, appName, bestRecord) {
this.date = date; this.date = date;
this.appName = appName; this.appName = appName;
this.bestRecord = bestRecord; this.bestRecord = bestRecord;
}
} }
class HistoryRecordManager { function HistoryRecordManager() {
constructor() {
this.clear(); this.clear();
} }
push(HistoryRecord) { HistoryRecordManager.prototype.push = function(HistoryRecord) {
this.historyRecords.push(HistoryRecord); this.historyRecords.push(HistoryRecord);
this.minValueOfRecord = this.minValueOfArray(); this.minValueOfRecord = this.minValueOfArray();
this.maxValueOfRecord = this.maxValueOfArray(); this.maxValueOfRecord = this.maxValueOfArray();
} }
clear() { HistoryRecordManager.prototype.clear = function() {
this.historyRecords = []; this.historyRecords = [];
this.minValueOfRecord = 0; this.minValueOfRecord = 0;
this.maxValueOfRecord = 0; this.maxValueOfRecord = 0;
} }
get count() { HistoryRecordManager.prototype.getCount = function() {
return this.historyRecords.length; return this.historyRecords.length;
} }
getAt(index) { HistoryRecordManager.prototype.getAt = function(index) {
return this.historyRecords[index]; return this.historyRecords[index];
} }
getDateAt(index) { HistoryRecordManager.prototype.getDateAt = function(index) {
return this.historyRecords[index].date; return this.historyRecords[index].date;
} }
getAppNameAt(index) { HistoryRecordManager.prototype.getAppNameAt = function(index) {
return this.historyRecords[index].appName; return this.historyRecords[index].appName;
} }
getBestRecordAt(index) { HistoryRecordManager.prototype.getBestRecordAt = function(index) {
return this.historyRecords[index].bestRecord; return this.historyRecords[index].bestRecord;
} }
minValueOfArray() { HistoryRecordManager.prototype.minValueOfArray = function() {
let numberArray = this.getBestRecordArray(this.historyRecords); var numberArray = this.getBestRecordArray(this.historyRecords);
return Math.min.apply(Math, numberArray); return Math.min.apply(Math, numberArray);
} }
maxValueOfArray() { HistoryRecordManager.prototype.maxValueOfArray = function() {
let numberArray = this.getBestRecordArray(this.historyRecords); var numberArray = this.getBestRecordArray(this.historyRecords);
return Math.max.apply(Math, numberArray); return Math.max.apply(Math, numberArray);
} }
underValueForGraph() { HistoryRecordManager.prototype.underValueForGraph = function() {
let minNumberOfDigits = NumberUtil.numberOfDigits(this.minValueOfRecord); var minNumberOfDigits = NumberUtil.numberOfDigits(this.minValueOfRecord);
let underMinValue = var underMinValue =
Math.floor( (this.minValueOfRecord / Math.pow(10, minNumberOfDigits - 2) ) ) Math.floor( (this.minValueOfRecord / Math.pow(10, minNumberOfDigits - 2) ) )
* Math.pow(10, minNumberOfDigits - 2 ); * Math.pow(10, minNumberOfDigits - 2 );
return underMinValue; return underMinValue;
} }
upperValueForGraph() { HistoryRecordManager.prototype.upperValueForGraph = function() {
let maxNumberOfDigits = NumberUtil.numberOfDigits(this.maxValueOfRecord); var maxNumberOfDigits = NumberUtil.numberOfDigits(this.maxValueOfRecord);
let underMaxValue = var underMaxValue =
Math.ceil( (this.maxValueOfRecord / Math.pow(10, maxNumberOfDigits - 2) ) ) Math.ceil( (this.maxValueOfRecord / Math.pow(10, maxNumberOfDigits - 2) ) )
* Math.pow(10, maxNumberOfDigits - 2); * Math.pow(10, maxNumberOfDigits - 2);
return underMaxValue; return underMaxValue;
} }
getBestRecordArray() { HistoryRecordManager.prototype.getBestRecordArray = function() {
let numberArray = []; var numberArray = [];
for(let data of this.historyRecords) { for(var data of this.historyRecords) {
numberArray.push(data.bestRecord); numberArray.push(data.bestRecord);
} }
return numberArray; return numberArray;
}
} }
+10 -16
View File
@@ -1,9 +1,4 @@
///////////////////////////// function HowToPlay(x, y) {
// How to play text
class HowToPlay {
constructor() {
this.howToPlayText = game.add.text( this.howToPlayText = game.add.text(
game.world.centerX, game.world.centerY - HowToPlay.TEXT_OFFSET_X, game.world.centerX, game.world.centerY - HowToPlay.TEXT_OFFSET_X,
"", this.getFontStyle() "", this.getFontStyle()
@@ -12,16 +7,15 @@ class HowToPlay {
this.howToPlayText.stroke = "#333"; this.howToPlayText.stroke = "#333";
this.howToPlayText.strokeThickness = 3; this.howToPlayText.strokeThickness = 3;
this.howToPlayText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); this.howToPlayText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
}
printHowToPlay(text) {
this.howToPlayText.text = text;
}
getFontStyle() {
return { font: "32px Arial", fill: "#fff" };
}
} }
HowToPlay.prototype.printHowToPlay = function(text) {
this.howToPlayText.text = text;
}
HowToPlay.prototype.getFontStyle = function() {
return { font: "32px Arial", fill: "#fff" };
}
HowToPlay.TEXT_OFFSET_X = 200; HowToPlay.TEXT_OFFSET_X = 200;
+8 -9
View File
@@ -1,6 +1,4 @@
class InputTypeText { function InputTypeText(x, y) {
constructor(x, y) {
var bmd = game.add.bitmapData(400, 50); var bmd = game.add.bitmapData(400, 50);
var myInput = game.add.sprite(x, y, bmd); var myInput = game.add.sprite(x, y, bmd);
@@ -21,17 +19,18 @@ class InputTypeText {
}); });
myInput.inputEnabled = true; myInput.inputEnabled = true;
myInput.input.useHandCursor = true; myInput.input.useHandCursor = true;
myInput.events.onInputUp.add(this.inputFocus, this); myInput.events.onInputUp.add(
(function(sprite) {
sprite.canvasInput.focus();
}).bind(this),
this
);
return myInput; return myInput;
}
inputFocus(sprite){
sprite.canvasInput.focus();
}
} }
/*! /*!
* CanvasInput v1.2.0 * CanvasInput v1.2.0
* https://goldfirestudios.com/blog/108/CanvasInput-HTML5-Canvas-Text-Input * https://goldfirestudios.com/blog/108/CanvasInput-HTML5-Canvas-Text-Input
+10 -10
View File
@@ -1,24 +1,24 @@
class NumberUtil { function NumberUtil() {
}
static numberWithCommas(x) {
NumberUtil.numberWithCommas = function(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} }
static numberOfDigits(number) { NumberUtil.numberOfDigits = function(number) {
if(number === 1000) if(number === 1000)
return 4; return 4;
return Math.floor(Math.log(number) / Math.LN10 + 1); // bug : 1000 -> expected 4 but 3 return Math.floor(Math.log(number) / Math.LN10 + 1); // bug : 1000 -> expected 4 but 3
} }
static getRecordText(value) { NumberUtil.getRecordText = function(value) {
let number = Math.floor(value); var number = Math.floor(value);
let numberWithCommas = NumberUtil.numberWithCommas(number); var numberWithCommas = NumberUtil.numberWithCommas(number);
if(isTypingGame()) if(isTypingGame())
return numberWithCommas + " 타"; return numberWithCommas + " 타";
else else
return numberWithCommas + " 점"; return numberWithCommas + " 점";
}
} }
+34 -42
View File
@@ -1,51 +1,43 @@
class RankingRecord { function RankingRecord(rank, playerID, playerName, bestRecord) {
constructor(rank, playerID, playerName, bestRecord) {
this.rank = rank; this.rank = rank;
this.playerID = playerID; this.playerID = playerID;
this.playerName = playerName; this.playerName = playerName;
this.bestRecord = bestRecord; this.bestRecord = bestRecord;
}
} }
function RankingRecordManager() {
class RankingRecordManager {
constructor() {
this.clear(); this.clear();
} }
push(RankingRecord) { RankingRecordManager.prototype.push = function(RankingRecord) {
this.rankingRecords.push(RankingRecord); this.rankingRecords.push(RankingRecord);
} }
clear() { RankingRecordManager.prototype.clear = function() {
this.rankingRecords = []; this.rankingRecords = [];
} }
get count() { RankingRecordManager.prototype.getCount = function() {
return this.rankingRecords.length; return this.rankingRecords.length;
} }
getAt(index) { RankingRecordManager.prototype.getAt = function(index) {
return this.rankingRecords[index]; return this.rankingRecords[index];
} }
getRankAt(index) { RankingRecordManager.prototype.getRankAt = function(index) {
return this.rankingRecords[index].rank; return this.rankingRecords[index].rank;
} }
getPlayerIDAt(index) { RankingRecordManager.prototype.getPlayerIDAt = function(index) {
return this.rankingRecords[index].playerID; return this.rankingRecords[index].playerID;
} }
getPlayerNameAt(index) { RankingRecordManager.prototype.getPlayerNameAt = function(index) {
return this.rankingRecords[index].playerName; return this.rankingRecords[index].playerName;
} }
getBestRecordAt(index) { RankingRecordManager.prototype.getBestRecordAt = function(index) {
return this.rankingRecords[index].bestRecord; return this.rankingRecords[index].bestRecord;
}
} }
+5 -8
View File
@@ -1,7 +1,5 @@
class ScoreBoard { function ScoreBoard() {
var fontStyle = ScoreBoard.DEFAULT_TEXT_FONT;
constructor() {
let fontStyle = ScoreBoard.DEFAULT_TEXT_FONT;
fontStyle.align = "right"; fontStyle.align = "right";
fontStyle.boundsAlignH = "right"; fontStyle.boundsAlignH = "right";
@@ -22,14 +20,13 @@ class ScoreBoard {
// this.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); // this.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// this.label.stroke = '#000'; // this.label.stroke = '#000';
// this.label.strokeThickness = 3; // this.label.strokeThickness = 3;
}; };
printScore(score) { ScoreBoard.prototype.printScore = function(score) {
this.scoreText.text = score; this.scoreText.text = score;
}
} }
ScoreBoard.FONT_HEIGHT_PX = 70; ScoreBoard.FONT_HEIGHT_PX = 70;
ScoreBoard.DEFAULT_TEXT_FONT = { ScoreBoard.DEFAULT_TEXT_FONT = {
+29 -33
View File
@@ -1,13 +1,11 @@
class ScoreManager { function ScoreManager() {
constructor() {
this.onChangeScoreListeners = []; this.onChangeScoreListeners = [];
this.onChangeHighScoreListeners = []; this.onChangeHighScoreListeners = [];
this.resetScore(); this.resetScore();
} }
resetScore() { ScoreManager.prototype.resetScore = function() {
// this.score = Number(sessionStorageManager.record); // this.score = Number(sessionStorageManager.record);
this.score = 0; this.score = 0;
sessionStorageManager.record = this.score; sessionStorageManager.record = this.score;
@@ -16,61 +14,61 @@ class ScoreManager {
this.highScore = 0; this.highScore = 0;
else else
this.highScore = Number(sessionStorageManager.bestRecord); this.highScore = Number(sessionStorageManager.bestRecord);
} }
callListener(functionArray) { ScoreManager.prototype.callListener = function(functionArray) {
if(functionArray.length > 0) { if(functionArray.length > 0) {
for(let i = 0; i < functionArray.length; i++) { for(var i = 0; i < functionArray.length; i++) {
functionArray[i](this.score); functionArray[i](this.score);
} }
} }
} }
addOnChangeScoreListener(onChangeFunction) { ScoreManager.prototype.addOnChangeScoreListener = function(onChangeFunction) {
this.onChangeScoreListeners.push(onChangeFunction); this.onChangeScoreListeners.push(onChangeFunction);
} }
removeOnChangeScoreListener(onChangeFunction) { ScoreManager.prototype.removeOnChangeScoreListener = function(onChangeFunction) {
let itemIndex = this.onChangeScoreListeners.indexOf(onChangeFunction); var itemIndex = this.onChangeScoreListeners.indexOf(onChangeFunction);
if(itemIndex > -1) if(itemIndex > -1)
this.onChangeScoreListeners.splice(itemIndex, 1); this.onChangeScoreListeners.splice(itemIndex, 1);
} }
addOnChangeHighScoreListener(onChangeHighScoreFunction) { ScoreManager.prototype.addOnChangeHighScoreListener = function(onChangeHighScoreFunction) {
this.onChangeHighScoreListeners.push(onChangeHighScoreFunction); this.onChangeHighScoreListeners.push(onChangeHighScoreFunction);
} }
removeOnChangeHighScoreListener(onChangeHighScoreFunction) { ScoreManager.prototype.removeOnChangeHighScoreListener = function(onChangeHighScoreFunction) {
let itemIndex = this.onChangeHighScoreListeners.indexOf(onChangeHighScoreFunction); var itemIndex = this.onChangeHighScoreListeners.indexOf(onChangeHighScoreFunction);
if(itemIndex > -1) if(itemIndex > -1)
this.onChangeHighScoreListeners.splice(itemIndex, 1); this.onChangeHighScoreListeners.splice(itemIndex, 1);
} }
removeAllListeners() { ScoreManager.prototype.removeAllListeners = function() {
this.onChangeScoreListeners = []; this.onChangeScoreListeners = [];
this.onChangeHighScoreListeners = []; this.onChangeHighScoreListeners = [];
} }
getScore() { ScoreManager.prototype.getScore = function() {
return this.score; return this.score;
} }
getHighScore() { ScoreManager.prototype.getHighScore = function() {
return this.highScore; return this.highScore;
} }
plusScore(amount) { ScoreManager.prototype.plusScore = function(amount) {
this.setScore(this.score + amount); this.setScore(this.score + amount);
} }
minusScore(amount) { ScoreManager.prototype.minusScore = function(amount) {
this.plusScore(-1 * amount); this.plusScore(-1 * amount);
} }
setScore(value) { ScoreManager.prototype.setScore = function(value) {
let beforeScore = this.score; var beforeScore = this.score;
this.score = value; this.score = value;
// update score // update score
@@ -80,6 +78,4 @@ class ScoreManager {
// update high score // update high score
if(this.score > this.highScore) if(this.score > this.highScore)
this.callListener(this.onChangeHighScoreListeners); this.callListener(this.onChangeHighScoreListeners);
}
} }
+10 -9
View File
@@ -1,7 +1,9 @@
class ScoreText extends Phaser.Text { ScoreText.prototype = Object.create(Phaser.Text.prototype);
ScoreText.constructor = ScoreText;
constructor(x, y, score) { function ScoreText(x, y, score) {
super(game, x, y, "+" + NumberUtil.numberWithCommas(score), ScoreText.DEFAULT_TEXT_FONT); // super(game, x, y, "+" + NumberUtil.numberWithCommas(score), ScoreText.DEFAULT_TEXT_FONT);
Phaser.Text.call(this, game, x, y, "+" + NumberUtil.numberWithCommas(score), ScoreText.DEFAULT_TEXT_FONT);
this.anchor.set(0.5); this.anchor.set(0.5);
this.inputEnabled = false; this.inputEnabled = false;
@@ -15,22 +17,21 @@ class ScoreText extends Phaser.Text {
this.strokeThickness = 5; this.strokeThickness = 5;
let tweenAlpha = game.add.tween(this); var tweenAlpha = game.add.tween(this);
tweenAlpha.to( { alpha: 0 }, 1000, Phaser.Easing.Linear.None, true); tweenAlpha.to( { alpha: 0 }, 1000, Phaser.Easing.Linear.None, true);
let tweenMoveUp = game.add.tween(this); var tweenMoveUp = game.add.tween(this);
tweenMoveUp.to( { y: this.y - ScoreText.MOVE_UP_AMOUNT_PX }, 1000, Phaser.Easing.Linear.None, true); tweenMoveUp.to( { y: this.y - ScoreText.MOVE_UP_AMOUNT_PX }, 1000, Phaser.Easing.Linear.None, true);
tweenMoveUp.onComplete.addOnce(this.destroySelf, this); tweenMoveUp.onComplete.addOnce(this.destroySelf, this);
game.add.existing(this); game.add.existing(this);
}; };
destroySelf() { ScoreText.prototype.destroySelf = function() {
this.destroy(); this.destroy();
}
} }
ScoreText.DEFAULT_TEXT_FONT = { ScoreText.DEFAULT_TEXT_FONT = {
font: "30px Arial", font: "30px Arial",
boundsAlignH: "center", // left, center. right boundsAlignH: "center", // left, center. right
+24 -30
View File
@@ -1,9 +1,4 @@
///////////////////////////// function ScreenBottomUI() {
// Screen bottom
class ScreenBottomUI {
constructor() {
this.dbConnectManager = new DBConnectManager(); this.dbConnectManager = new DBConnectManager();
this.bottomBarCenterY = game.world.height - ScreenBottomUI.BG_HEIGHT / 2; this.bottomBarCenterY = game.world.height - ScreenBottomUI.BG_HEIGHT / 2;
@@ -12,37 +7,37 @@ class ScreenBottomUI {
this.leftText = this.printText(this.leftText, "", "left"); this.leftText = this.printText(this.leftText, "", "left");
this.centerText = this.printText(this.centerText, "", "center"); this.centerText = this.printText(this.centerText, "", "center");
this.rightText = this.printText(this.rightText, "", "right"); this.rightText = this.printText(this.rightText, "", "right");
} }
drawBG() { ScreenBottomUI.prototype.drawBG = function() {
game.add.graphics() game.add.graphics()
.beginFill(0x303030, 1) .beginFill(0x303030, 1)
.drawRect( .drawRect(
0, game.world.height - ScreenBottomUI.BG_HEIGHT, 0, game.world.height - ScreenBottomUI.BG_HEIGHT,
game.world.width, ScreenBottomUI.BG_HEIGHT game.world.width, ScreenBottomUI.BG_HEIGHT
); );
} }
printLeftText(text) { ScreenBottomUI.prototype.printLeftText = function(text) {
this.leftText.text = text; this.leftText.text = text;
} }
printCenterText(text) { ScreenBottomUI.prototype.printCenterText = function(text) {
this.centerText.text = text; this.centerText.text = text;
} }
printRightText(text) { ScreenBottomUI.prototype.printRightText = function(text) {
this.rightText.text = text; this.rightText.text = text;
} }
printText(textObject, text, align) { ScreenBottomUI.prototype.printText = function(textObject, text, align) {
if(textObject !== null && textObject !== undefined) { if(textObject !== null && textObject !== undefined) {
textObject.text = ""; textObject.text = "";
textObject = null; textObject = null;
} }
let posX = 0; var posX = 0;
let anchorValue = 0; var anchorValue = 0;
switch(align) { switch(align) {
case "left": case "left":
posX = ScreenBottomUI.TEXT_OFFSET; posX = ScreenBottomUI.TEXT_OFFSET;
@@ -65,20 +60,19 @@ class ScreenBottomUI {
textObject.anchor.y = 0.5; textObject.anchor.y = 0.5;
return textObject; return textObject;
}
printLeftTextWithBestRecord(bestRecord) {
let roundUpBestRecord = Math.round(bestRecord);
let highScoreWithCommas = NumberUtil.numberWithCommas(roundUpBestRecord);
this.printLeftText("오늘의 최고 기록 : " + highScoreWithCommas);
}
getFontStyle() {
return { font: "32px Arial", fill: "#fff", align: "left", boundsAlignH: "left", boundsAlignV: "bottom" };
}
} }
ScreenBottomUI.prototype.printLeftTextWithBestRecord = function(bestRecord) {
var roundUpBestRecord = Math.round(bestRecord);
var highScoreWithCommas = NumberUtil.numberWithCommas(roundUpBestRecord);
this.printLeftText("오늘의 최고 기록 : " + highScoreWithCommas);
}
ScreenBottomUI.prototype.getFontStyle = function() {
return { font: "32px Arial", fill: "#fff", align: "left", boundsAlignH: "left", boundsAlignV: "bottom" };
}
ScreenBottomUI.BG_HEIGHT = 50; ScreenBottomUI.BG_HEIGHT = 50;
ScreenBottomUI.NAME_WIDTH = 200; ScreenBottomUI.NAME_WIDTH = 200;
+7 -14
View File
@@ -1,29 +1,22 @@
///////////////////////////// function ScreenTopUI() {
// Screen top ui
class ScreenTopUI {
constructor() {
this.drawBG(); this.drawBG();
} }
drawBG() { ScreenTopUI.prototype.drawBG = function() {
game.add.graphics() game.add.graphics()
.beginFill(0x303030, 1) .beginFill(0x303030, 1)
.drawRect( .drawRect(
0, 0, 0, 0,
game.world.width, ScreenTopUI.BG_HEIGHT game.world.width, ScreenTopUI.BG_HEIGHT
); );
} }
makeBackButton(eventHandler) { ScreenTopUI.prototype.makeBackButton = function(eventHandler) {
this.backButton = new BackButton(eventHandler); this.backButton = new BackButton(eventHandler);
} }
makeFullScreenButton() { ScreenTopUI.prototype.makeFullScreenButton = function() {
// this.fullscreenButton = new FullscreenButton(); // this.fullscreenButton = new FullscreenButton();
}
} }
+5 -5
View File
@@ -100,11 +100,11 @@ SessionStorageManager.prototype.getIsNewBestRecord = function() {
} }
SessionStorageManager.prototype.resetPlayingAppData = function() { SessionStorageManager.prototype.resetPlayingAppData = function() {
this.removeItem(playingAppID); this.removeItem("playingAppID");
this.removeItem(playingAppName); this.removeItem("playingAppName");
this.removeItem(playingAppKoreanName); this.removeItem("playingAppKoreanName");
this.removeItem(record); this.removeItem("record");
this.removeItem(bestRecord); this.removeItem("bestRecord");
} }
+15 -18
View File
@@ -1,16 +1,17 @@
class StringUtil { function StringUtil() {
}
static printMonthDay(date) { StringUtil.printMonthDay = function(date) {
let dateTime = new Date(date); let dateTime = new Date(date);
return (dateTime.getMonth() + 1) + "월 " + dateTime.getDate() + "일"; return (dateTime.getMonth() + 1) + "월 " + dateTime.getDate() + "일";
} }
static getRecordTextWithoutUnit(value) { StringUtil.getRecordTextWithoutUnit = function(value) {
let number = Math.floor(value); let number = Math.floor(value);
return NumberUtil.numberWithCommas(number); return NumberUtil.numberWithCommas(number);
} }
static getRecordTextWithUnit(value) { StringUtil.getRecordTextWithUnit = function(value) {
let number = Math.floor(value); let number = Math.floor(value);
let numberWithCommas = NumberUtil.numberWithCommas(number); let numberWithCommas = NumberUtil.numberWithCommas(number);
@@ -18,15 +19,14 @@ class StringUtil {
return numberWithCommas + " 타"; return numberWithCommas + " 타";
else else
return numberWithCommas + " 점"; return numberWithCommas + " 점";
} }
static getNumberStartWithZero(number, digitCount) { StringUtil.getNumberStartWithZero = function(number, digitCount) {
let n = number + ''; let n = number + '';
return n.length >= digitCount ? n : new Array(digitCount - n.length + 1).join('0') + n; return n.length >= digitCount ? n : new Array(digitCount - n.length + 1).join('0') + n;
} }
StringUtil.toKoreanAlphabets = function(text) {
static toKoreanAlphabets(text) {
const cCho = [ 'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' ]; const cCho = [ 'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' ];
const cJung = [ 'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ' ]; const cJung = [ 'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ' ];
const cJong = [ '', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' ]; const cJong = [ '', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' ];
@@ -54,10 +54,9 @@ class StringUtil {
} }
} }
return chars; return chars;
}; };
StringUtil.getUnicodeAlphabetCount = function(text) {
static getUnicodeAlphabetCount(text) {
let chars = StringUtil.toKoreanAlphabets(text); let chars = StringUtil.toKoreanAlphabets(text);
// console.log('char : ' + chars); // console.log('char : ' + chars);
@@ -84,13 +83,11 @@ class StringUtil {
// return chars; // return chars;
return alphabetCount; return alphabetCount;
}; };
static getScoreUnit(playingAppID) { StringUtil.getScoreUnit = function(playingAppID) {
if(playingAppID < 100) if(playingAppID < 100)
return " 타"; return " 타";
else else
return " 점"; return " 점";
}
} }
+34 -37
View File
@@ -1,13 +1,10 @@
///////////////////////////// var Login = {
// Login
class Login { preload: function() {
preload() {
game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
} },
create() { create: function() {
sessionStorageManager.clear(); sessionStorageManager.clear();
this.game.stage.backgroundColor = '#4d4d4d'; this.game.stage.backgroundColor = '#4d4d4d';
@@ -24,12 +21,12 @@ class Login {
var textX = this.game.world.centerX - 320; var textX = this.game.world.centerX - 320;
if(sessionStorageManager.maestroID === null) if(sessionStorageManager.getMaestroID() === null)
this.makeMaestroNameText(textX, 200); this.makeMaestroNameText(textX, 200);
this.makeNameText(textX, 300); this.makeNameText(textX, 300);
this.makeEnterCodeText(textX, 360); this.makeEnterCodeText(textX, 360);
if(sessionStorageManager.maestroID === null) if(sessionStorageManager.getMaestroID() === null)
this.inputTextMaestroName.canvasInput.focus(); this.inputTextMaestroName.canvasInput.focus();
else else
this.inputTextName.canvasInput.focus(); this.inputTextName.canvasInput.focus();
@@ -37,31 +34,31 @@ class Login {
this.makeStartButton(game.world.centerX, game.world.centerY + 100); this.makeStartButton(game.world.centerX, game.world.centerY + 100);
this.makeInfoText(); this.makeInfoText();
} },
makeMaestroNameText(x, y) { makeMaestroNameText: function(x, y) {
this.makeTextField(x, y, "마에스트로 계정 :"); this.makeTextField(x, y, "마에스트로 계정 :");
this.inputTextMaestroName = this.makeInputTypeText(x, y, "jisangs"); this.inputTextMaestroName = this.makeInputTypeText(x, y, "jisangs");
} },
makeNameText(x, y) { makeNameText: function(x, y) {
this.makeTextField(x, y, "이름 :"); this.makeTextField(x, y, "이름 :");
this.inputTextName = this.makeInputTypeText(x, y, "박지상"); this.inputTextName = this.makeInputTypeText(x, y, "박지상");
} },
makeEnterCodeText(x, y) { makeEnterCodeText: function(x, y) {
this.makeTextField(x, y, "입장번호 :"); this.makeTextField(x, y, "입장번호 :");
this.inputTextEnterCode = this.makeInputTypeText(x, y, "760621"); this.inputTextEnterCode = this.makeInputTypeText(x, y, "760621");
} },
makeTextField(x, y, text) { makeTextField: function(x, y, text) {
return game.add.text(x, y, text, this.textStyle) return game.add.text(x, y, text, this.textStyle)
.setTextBounds(0, 0, 200, 0) .setTextBounds(0, 0, 200, 0)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2)
.boundsAlignH = 'right'; .boundsAlignH = 'right';
} },
makeInputTypeText(x, y, text) { makeInputTypeText: function(x, y, text) {
var inputText = new InputTypeText(x + 420, y); var inputText = new InputTypeText(x + 420, y);
inputText.anchor.set(0.5); inputText.anchor.set(0.5);
inputText.canvasInput.value(''); inputText.canvasInput.value('');
@@ -75,9 +72,9 @@ class Login {
} }
return inputText; return inputText;
} },
makeStartButton(x, y) { makeStartButton: function(x, y) {
var setting = new RoundRectButtonSetting(x, y, 200, 100); var setting = new RoundRectButtonSetting(x, y, 200, 100);
setting.fontStyle.fontWeight = "bold"; setting.fontStyle.fontWeight = "bold";
@@ -86,26 +83,26 @@ class Login {
RoundRectButton.NONE_ICON, "시작", RoundRectButton.NONE_ICON, "시작",
(function() { this.startMenu(); }).bind(this) (function() { this.startMenu(); }).bind(this)
); );
} },
makeInfoText(x, y) { makeInfoText: function(x, y) {
var textStyle = { font: "30px Arial", fill: "#faa" }; var textStyle = { font: "30px Arial", fill: "#faa" };
this.infoText = game.add.text(game.world.centerX, 640, "", textStyle); this.infoText = game.add.text(game.world.centerX, 640, "", textStyle);
this.infoText.anchor.set(0.5); this.infoText.anchor.set(0.5);
this.infoText.stroke = "#333"; this.infoText.stroke = "#333";
this.infoText.strokeThickness = 3; this.infoText.strokeThickness = 3;
} },
startMenu() { startMenu: function() {
var maestroName = this.inputTextMaestroName.canvasInput._value; var maestroName = this.inputTextMaestroName.canvasInput._value;
sessionStorageManager.playerName = this.inputTextName.canvasInput._value; sessionStorageManager.setPlayerName(this.inputTextName.canvasInput._value);
var enterCode = this.inputTextEnterCode.canvasInput._value; var enterCode = this.inputTextEnterCode.canvasInput._value;
var dbConnectManager = new DBConnectManager(); var dbConnectManager = new DBConnectManager();
dbConnectManager.requestCheckPlayerLogin( dbConnectManager.requestCheckPlayerLogin(
maestroName, maestroName,
sessionStorageManager.playerName, sessionStorageManager.getPlayerName(),
enterCode, enterCode,
(function(jsonData) { (function(jsonData) {
this.loginSucceeded(jsonData); this.loginSucceeded(jsonData);
@@ -114,23 +111,23 @@ class Login {
this.loginFailed(jsonData); this.loginFailed(jsonData);
}).bind(this) }).bind(this)
); );
} },
loginSucceeded(jsonData) { loginSucceeded: function(jsonData) {
sessionStorageManager.maestroID = jsonData['MaestroID']; sessionStorageManager.setMaestroID(jsonData['MaestroID']);
sessionStorageManager.maestroAccountType = jsonData['MaestroAccountType']; sessionStorageManager.setMaestroAccountType(jsonData['MaestroAccountType']);
sessionStorageManager.playerID = jsonData['PlayerID']; sessionStorageManager.setPlayerID(jsonData['PlayerID']);
sessionStorageManager.playerName = jsonData['PlayerName']; sessionStorageManager.setPlayerName(jsonData['PlayerName']);
sessionStorageManager.playerAccountType = jsonData['PlayerAccountType']; sessionStorageManager.setPlayerAccountType(jsonData['PlayerAccountType']);
sessionStorageManager.playingAppName = "menu"; sessionStorageManager.setPlayingAppName("menu");
location.href = '../../web/client/menu_app.html'; location.href = '../../web/client/menu_app.html';
// console.log("===== after login ====="); // console.log("===== after login =====");
// console.log(sessionStorageManager.playerID); // console.log(sessionStorageManager.playerID);
} },
loginFailed(jsonData) { loginFailed: function(jsonData) {
sessionStorageManager.clear(); sessionStorageManager.clear();
// show retry message // show retry message
+3 -3
View File
@@ -69,7 +69,7 @@ var MenuTypingPractice = {
var screenBottomUI = new ScreenBottomUI(); var screenBottomUI = new ScreenBottomUI();
// screenBottomUI.printLeftText("게임 진행 정보"); // screenBottomUI.printLeftText("게임 진행 정보");
screenBottomUI.printCenterText("메뉴 > 타자 연습"); screenBottomUI.printCenterText("메뉴 > 타자 연습");
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
this.makeActiveTypingPracticeAppButtons(); this.makeActiveTypingPracticeAppButtons();
@@ -79,8 +79,8 @@ var MenuTypingPractice = {
makeActiveTypingPracticeAppButtons: function() { makeActiveTypingPracticeAppButtons: function() {
var dbConnectManager = new DBConnectManager(); var dbConnectManager = new DBConnectManager();
dbConnectManager.requestTypingPracticeAppList( dbConnectManager.requestTypingPracticeAppList(
sessionStorageManager.maestroID, sessionStorageManager.getMaestroID(),
sessionStorageManager.playerID, sessionStorageManager.getPlayerID(),
(function(replyJSON) { (function(replyJSON) {
this.downloadListSucceeded(replyJSON); this.downloadListSucceeded(replyJSON);
}).bind(this), }).bind(this),
+3 -3
View File
@@ -72,15 +72,15 @@ var MenuTypingTest = {
var screenBottomUI = new ScreenBottomUI(); var screenBottomUI = new ScreenBottomUI();
// screenBottomUI.printLeftText("게임 진행 정보"); // screenBottomUI.printLeftText("게임 진행 정보");
screenBottomUI.printCenterText("메뉴 > 타자 시험"); screenBottomUI.printCenterText("메뉴 > 타자 시험");
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
}, },
makeActiveTypingTestAppButtons: function() { makeActiveTypingTestAppButtons: function() {
var dbConnectManager = new DBConnectManager(); var dbConnectManager = new DBConnectManager();
dbConnectManager.requestTypingTestAppList( dbConnectManager.requestTypingTestAppList(
sessionStorageManager.maestroID, sessionStorageManager.getMaestroID(),
sessionStorageManager.playerID, sessionStorageManager.getPlayerID(),
// self.downloadListSucceeded, // self.downloadListSucceeded,
// self.downloadListFailed // self.downloadListFailed
(function(replyJSON) { (function(replyJSON) {
+8 -8
View File
@@ -6,7 +6,7 @@ class Game {
create() { create() {
this.game.stage.backgroundColor = "#000000"; // '#4d4d4d'; this.game.stage.backgroundColor = "#000000"; // '#4d4d4d';
sessionStorageManager.isNewBestRecrd = false; sessionStorageManager.setIsNewBestRecord(false);
// top ui // top ui
var screenTopUI = new ScreenTopUI(); var screenTopUI = new ScreenTopUI();
@@ -18,14 +18,14 @@ class Game {
var scoreBoard = new ScoreBoard(); var scoreBoard = new ScoreBoard();
scoreManager.addOnChangeScoreListener( function(score) { scoreManager.addOnChangeScoreListener( function(score) {
sessionStorageManager.record = score; sessionStorageManager.setRecord(score);
scoreBoard.printScore(NumberUtil.numberWithCommas(score)); scoreBoard.printScore(NumberUtil.numberWithCommas(score));
}); });
scoreManager.addOnChangeHighScoreListener( function(highScore) { scoreManager.addOnChangeHighScoreListener( function(highScore) {
console.log(highScore); console.log(highScore);
sessionStorageManager.bestRecord = highScore; sessionStorageManager.setBestRecord(highScore);
sessionStorageManager.isNewBestRecrd = true; sessionStorageManager.setIsNewBestRecrd(true);
screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.bestRecord); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord());
}); });
var heartGauge = new HeartGauge(heartManager); var heartGauge = new HeartGauge(heartManager);
@@ -72,9 +72,9 @@ class Game {
// bottom ui // bottom ui
var screenBottomUI = new ScreenBottomUI(); var screenBottomUI = new ScreenBottomUI();
screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.bestRecord); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord());
screenBottomUI.printCenterText(sessionStorageManager.playingAppKoreanName); screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName());
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
this.startGame(); this.startGame();
+53 -56
View File
@@ -1,13 +1,10 @@
///////////////////////////// var Ranking = {
// Ranking
class Ranking { preload: function() {
preload() {
game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
} },
create() { create: function() {
self = this; self = this;
this.dbConnectManager = new DBConnectManager(); this.dbConnectManager = new DBConnectManager();
@@ -17,20 +14,20 @@ class Ranking {
this.game.stage.backgroundColor = '#4d4d4d'; this.game.stage.backgroundColor = '#4d4d4d';
// let phaser = game.add.image(game.world.centerX, game.world.centerY, 'phaser'); // var phaser = game.add.image(game.world.centerX, game.world.centerY, 'phaser');
// phaser.anchor.set(0.5); // phaser.anchor.set(0.5);
// phaser.alpha = 0.1; // phaser.alpha = 0.1;
// top ui // top ui
let screenTopUI = new ScreenTopUI(); var screenTopUI = new ScreenTopUI();
screenTopUI.makeBackButton( function() { screenTopUI.makeBackButton( function() {
location.href = '../../web/client/start.html'; location.href = '../../web/client/start.html';
}); });
screenTopUI.makeFullScreenButton(); screenTopUI.makeFullScreenButton();
let resultTextStyle = textStyleBasic; var resultTextStyle = textStyleBasic;
resultTextStyle.font = "bold 42px Arial"; resultTextStyle.font = "bold 42px Arial";
this.textTitle = game.add.text(GAME_SCREEN_SIZE.x / 2, 32, "수업시간 순위", resultTextStyle) this.textTitle = game.add.text(GAME_SCREEN_SIZE.x / 2, 32, "수업시간 순위", resultTextStyle)
@@ -42,38 +39,38 @@ class Ranking {
// contents // contents
// rank // rank
let rankAreaPositionX = 160; var rankAreaPositionX = 160;
let rankAreaPositionY = 90; var rankAreaPositionY = 90;
let style = { font: "34px Arial", fill: "#fff", tabs: [ 60, 160, 160 ] }; var style = { font: "34px Arial", fill: "#fff", tabs: [ 60, 160, 160 ] };
this.textRanking1to10 = game.add.text(rankAreaPositionX, rankAreaPositionY , '', style) this.textRanking1to10 = game.add.text(rankAreaPositionX, rankAreaPositionY , '', style)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
this.textRanking11to20 = game.add.text(rankAreaPositionX + 420, rankAreaPositionY, '', style) this.textRanking11to20 = game.add.text(rankAreaPositionX + 420, rankAreaPositionY, '', style)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
let buttonPositionY = 640; var buttonPositionY = 640;
let buttonHour = this.makeTextButton(game.world.centerX - 220, buttonPositionY, "수업시간 순위", this.showRankingHour); var buttonHour = this.makeTextButton(game.world.centerX - 220, buttonPositionY, "수업시간 순위", this.showRankingHour);
// buttonHour.inputEnabled = false; // buttonHour.inputEnabled = false;
let buttonDay = this.makeTextButton(game.world.centerX, buttonPositionY, "오늘의 순위", this.showRankingDay); var buttonDay = this.makeTextButton(game.world.centerX, buttonPositionY, "오늘의 순위", this.showRankingDay);
// buttonDay.inputEnabled = false; // buttonDay.inputEnabled = false;
let buttonMonth = this.makeTextButton(game.world.centerX + 220, buttonPositionY, "이달의 순위", this.showRankingMonth); var buttonMonth = this.makeTextButton(game.world.centerX + 220, buttonPositionY, "이달의 순위", this.showRankingMonth);
// buttonMonth.inputEnabled = false; // buttonMonth.inputEnabled = false;
// bottom ui // bottom ui
let screenBottomUI = new ScreenBottomUI(); var screenBottomUI = new ScreenBottomUI();
// ScreenBottomUI.printLeftText("게임 진행 정보"); // ScreenBottomUI.printLeftText("게임 진행 정보");
// let playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.playingAppName); // var playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.getPlayingAppName());
// ScreenBottomUI.printCenterText(playingAppName); // ScreenBottomUI.printCenterText(playingAppName);
screenBottomUI.printCenterText("랭킹"); screenBottomUI.printCenterText("랭킹");
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
this.getRecordToRankingServer(); this.getRecordToRankingServer();
game.time.events.loop(Phaser.Timer.SECOND * 10, this.getRecordToRankingServer, this); game.time.events.loop(Phaser.Timer.SECOND * 10, this.getRecordToRankingServer, this);
} },
makeTextButton(x, y, buttonText, eventListener) { makeTextButton: function(x, y, buttonText, eventListener) {
let setting = new RoundRectButtonSetting(x, y, 200, 100); var setting = new RoundRectButtonSetting(x, y, 200, 100);
setting.fontStyle.fontWeight = "bold"; setting.fontStyle.fontWeight = "bold";
switch(buttonText) { switch(buttonText) {
case "수업시간 순위": case "수업시간 순위":
@@ -142,15 +139,15 @@ class Ranking {
} }
return new RoundRectButton(setting, RoundRectButton.NONE_ICON, buttonText, eventListener); return new RoundRectButton(setting, RoundRectButton.NONE_ICON, buttonText, eventListener);
} },
getRecordToRankingServer() { getRecordToRankingServer: function() {
// console.log("getRecordToRankingServer : " + this.mode); // console.log("getRecordToRankingServer : " + this.mode);
let self = this; var self = this;
this.dbConnectManager.requestAppRanking( this.dbConnectManager.requestAppRanking(
sessionStorageManager.maestroID, sessionStorageManager.getMaestroID(),
sessionStorageManager.playingAppID, sessionStorageManager.getPlayingAppID(),
(function(jsonData) { (function(jsonData) {
self.showRanking(jsonData); self.showRanking(jsonData);
}), }),
@@ -158,48 +155,48 @@ class Ranking {
self.showRanking(null); self.showRanking(null);
}) })
); );
} },
showRankingHour() { showRankingHour: function() {
self.mode = Ranking.MODE_HOUR; self.mode = Ranking.MODE_HOUR;
self.textTitle.text = "수업시간 순위"; self.textTitle.text = "수업시간 순위";
self.textTitle.addColor("#ff6666", 0); self.textTitle.addColor("#ff6666", 0);
self.getRecordToRankingServer(); self.getRecordToRankingServer();
} },
showRankingDay() { showRankingDay: function() {
self.mode = Ranking.MODE_DAY; self.mode = Ranking.MODE_DAY;
self.textTitle.text = "오늘의 순위"; self.textTitle.text = "오늘의 순위";
self.textTitle.addColor("#9999ff", 0); self.textTitle.addColor("#9999ff", 0);
self.getRecordToRankingServer(); self.getRecordToRankingServer();
} },
showRankingMonth() { showRankingMonth: function() {
self.mode = Ranking.MODE_MONTH; self.mode = Ranking.MODE_MONTH;
self.textTitle.text = "이달의 순위"; self.textTitle.text = "이달의 순위";
self.textTitle.addColor("#99ff99", 0); self.textTitle.addColor("#99ff99", 0);
self.getRecordToRankingServer(); self.getRecordToRankingServer();
} },
showRanking(jsonRankingData) { showRanking: function(jsonRankingData) {
// console.log(jsonRankingData); // console.log(jsonRankingData);
if(sessionStorageManager.maestroAccountType == 101) { if(sessionStorageManager.getMaestroAccountType() == 101) {
let recordArray = this.getDummyRankList(); var recordArray = this.getDummyRankList();
this.printRanking(recordArray); this.printRanking(recordArray);
return; return;
} }
if(jsonRankingData === null) { if(jsonRankingData === null) {
let rankEmpty = [ ]; var rankEmpty = [ ];
this.textRanking1to10.parseList(rankEmpty); this.textRanking1to10.parseList(rankEmpty);
this.textRanking11to20.parseList(rankEmpty); this.textRanking11to20.parseList(rankEmpty);
return; return;
} }
let jsonRankingList = null; var jsonRankingList = null;
if(this.mode === Ranking.MODE_HOUR) if(this.mode === Ranking.MODE_HOUR)
jsonRankingList = jsonRankingData.rankingHour; jsonRankingList = jsonRankingData.rankingHour;
else if(this.mode === Ranking.MODE_DAY) else if(this.mode === Ranking.MODE_DAY)
@@ -208,22 +205,22 @@ class Ranking {
jsonRankingList = jsonRankingData.rankingMonth; jsonRankingList = jsonRankingData.rankingMonth;
if(jsonRankingList === null) { if(jsonRankingList === null) {
let rankEmpty = [ ]; var rankEmpty = [ ];
this.textRanking1to10.parseList(rankEmpty); this.textRanking1to10.parseList(rankEmpty);
this.textRanking11to20.parseList(rankEmpty); this.textRanking11to20.parseList(rankEmpty);
return; return;
} }
let recordArray = this.getRankingArrayFromJSON(jsonRankingList); var recordArray = this.getRankingArrayFromJSON(jsonRankingList);
this.printRanking(recordArray); this.printRanking(recordArray);
} },
printRanking(recordArray) { printRanking: function(recordArray) {
let recordTop10 = []; var recordTop10 = [];
let recordTop20 = []; var recordTop20 = [];
for(let i = 0; i < 10; i++) { for(var i = 0; i < 10; i++) {
if(i < recordArray.length) if(i < recordArray.length)
recordTop10.push(recordArray[i]); recordTop10.push(recordArray[i]);
if(i + 10 < recordArray.length) if(i + 10 < recordArray.length)
@@ -231,17 +228,17 @@ class Ranking {
} }
this.textRanking1to10.parseList(recordTop10); this.textRanking1to10.parseList(recordTop10);
this.textRanking11to20.parseList(recordTop20); this.textRanking11to20.parseList(recordTop20);
} },
getRankingArrayFromJSON(jsonRankingList) { getRankingArrayFromJSON: function(jsonRankingList) {
// if(isDebugMode()) // if(isDebugMode())
// return this.getDummyRankList(); // return this.getDummyRankList();
let rankingListCount = jsonRankingList.length; var rankingListCount = jsonRankingList.length;
let recordArray = []; var recordArray = [];
for(let i = 0; i < rankingListCount; i++) { for(var i = 0; i < rankingListCount; i++) {
let bestRecordRow = []; var bestRecordRow = [];
// bestRecordRow[0] = jsonRankingList[i]['UserID']; // bestRecordRow[0] = jsonRankingList[i]['UserID'];
bestRecordRow[0] = i + 1; bestRecordRow[0] = i + 1;
bestRecordRow[1] = jsonRankingList[i]['Name']; bestRecordRow[1] = jsonRankingList[i]['Name'];
@@ -252,10 +249,10 @@ class Ranking {
} }
return recordArray; return recordArray;
} },
getDummyRankList() { getDummyRankList: function() {
let dummyRankList = [ var dummyRankList = [
[ '1', 'test1', '400' ], [ '1', 'test1', '400' ],
[ '2', 'test2', '300' ], [ '2', 'test2', '300' ],
[ '3', 'test3', '200' ], [ '3', 'test3', '200' ],
+31 -38
View File
@@ -1,9 +1,4 @@
///////////////////////////// function HistoryBoard(type) {
// History board
class HistoryBoard {
constructor(type) {
if(type === RecordBoard.TYPE_SAMPLE) { if(type === RecordBoard.TYPE_SAMPLE) {
this.printSample(); this.printSample();
return; return;
@@ -13,52 +8,52 @@ class HistoryBoard {
this.dbConnectManager = new DBConnectManager(); this.dbConnectManager = new DBConnectManager();
let arrayTabStyle = { font: "20px Arial", fill: "#fff", align: "left", tabs: [ 40, 80, 120 ] }; var arrayTabStyle = { font: "20px Arial", fill: "#fff", align: "left", tabs: [ 40, 80, 120 ] };
let posX = 40; var posX = 40;
let posY = game.world.height / 2 - 10; var posY = game.world.height / 2 - 10;
this.textMyRanking = game.add.text(posX, posY + 100, '', arrayTabStyle) this.textMyRanking = game.add.text(posX, posY + 100, '', arrayTabStyle)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
let today = new Date(); var today = new Date();
let date = DateUtil.getYYYYMMDD(today); var date = DateUtil.getYYYYMMDD(today);
this.dbConnectManager.requestPlayerHistory( this.dbConnectManager.requestPlayerHistory(
sessionStorageManager.maestroID, sessionStorageManager.getMaestroID(),
date, date,
(function(historyRecordManager) { (function(historyRecordManager) {
if(historyRecordManager.count == 0) { if(historyRecordManager.getCount() == 0) {
console.log("history board - no data"); console.log("history board - no data");
return; return;
} }
for(let i = 0; i < historyRecordManager.count; i++) { for(var i = 0; i < historyRecordManager.getCount(); i++) {
let data = historyRecordManager.getAt(i); var data = historyRecordManager.getAt(i);
this.printRecord(i, data.date, data.bestRecord); this.printRecord(i, data.date, data.bestRecord);
if(date == data.date) if(date == data.date)
this.todayBestRecord = data.bestRecord; this.todayBestRecord = data.bestRecord;
} }
}) }).bind(this)
); );
} }
calcDate(daysBefore) { HistoryBoard.prototype.calcDate = function(daysBefore) {
let date = new Date(); var date = new Date();
date.setDate(date.getDate() - daysBefore); date.setDate(date.getDate() - daysBefore);
return date; return date;
} }
printRecord(index, date, bestRecord) { HistoryBoard.prototype.printRecord = function(index, date, bestRecord) {
if(sessionStorageManager.playingAppName.indexOf("typing") < 0) if(sessionStorageManager.getPlayingAppName().indexOf("typing") < 0)
this.printMouseAppHistory(index, date, bestRecord); this.printMouseAppHistory(index, date, bestRecord);
else else
this.printTypingAppHistory(index, date, appName, bestRecord); this.printTypingAppHistory(index, date, appName, bestRecord);
} }
printMouseAppHistory(index, date, bestRecord) { HistoryBoard.prototype.printMouseAppHistory = function(index, date, bestRecord) {
let posX = 60; var posX = 60;
let posY = game.world.height / 2 + 90 + 30 * index; var posY = game.world.height / 2 + 90 + 30 * index;
var style = { font: "20px Arial", fill: "#ffc", align: "right", boundsAlignH: "right", boundsAlignV: "top" }; var style = { font: "20px Arial", fill: "#ffc", align: "right", boundsAlignH: "right", boundsAlignV: "top" };
@@ -71,11 +66,11 @@ class HistoryBoard {
game.add.text(posX + 80, posY, StringUtil.getRecordTextWithoutUnit(bestRecord), style) game.add.text(posX + 80, posY, StringUtil.getRecordTextWithoutUnit(bestRecord), style)
.setTextBounds(0, 0, 100, 60) .setTextBounds(0, 0, 100, 60)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
} }
printTypingAppHistory(index, date, appName, bestRecord) { HistoryBoard.prototype.printTypingAppHistory = function(index, date, appName, bestRecord) {
let posX = 60; var posX = 60;
let posY = game.world.height / 2 + 90 + 30 * index; var posY = game.world.height / 2 + 90 + 30 * index;
var style = { font: "20px Arial", fill: "#ffc", align: "right", boundsAlignH: "right", boundsAlignV: "top" }; var style = { font: "20px Arial", fill: "#ffc", align: "right", boundsAlignH: "right", boundsAlignV: "top" };
@@ -92,9 +87,9 @@ class HistoryBoard {
game.add.text(posX + 120, posY, StringUtil.getRecordTextWithoutUnit(bestRecord), style) game.add.text(posX + 120, posY, StringUtil.getRecordTextWithoutUnit(bestRecord), style)
.setTextBounds(0, 0, 80, 60) .setTextBounds(0, 0, 80, 60)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
} }
printSample() { HistoryBoard.prototype.printSample = function() {
this.printRecord(0, DateUtil.getYYYYMMDD(this.calcDate(2)), 1270); this.printRecord(0, DateUtil.getYYYYMMDD(this.calcDate(2)), 1270);
this.printRecord(1, DateUtil.getYYYYMMDD(this.calcDate(3)), 1150); this.printRecord(1, DateUtil.getYYYYMMDD(this.calcDate(3)), 1150);
this.printRecord(2, DateUtil.getYYYYMMDD(this.calcDate(5)), 1080); this.printRecord(2, DateUtil.getYYYYMMDD(this.calcDate(5)), 1080);
@@ -102,10 +97,8 @@ class HistoryBoard {
this.printRecord(4, DateUtil.getYYYYMMDD(this.calcDate(10)), 1020); this.printRecord(4, DateUtil.getYYYYMMDD(this.calcDate(10)), 1020);
this.printRecord(5, DateUtil.getYYYYMMDD(this.calcDate(15)), 840); this.printRecord(5, DateUtil.getYYYYMMDD(this.calcDate(15)), 840);
this.printRecord(6, DateUtil.getYYYYMMDD(this.calcDate(20)), 760); this.printRecord(6, DateUtil.getYYYYMMDD(this.calcDate(20)), 760);
} }
todayBestRecord() { HistoryBoard.prototype.todayBestRecord = function() {
return this.todayBestRecord; return this.todayBestRecord;
}
} }
+55 -62
View File
@@ -1,9 +1,4 @@
///////////////////////////// function RankingBoard(type) {
// Ranking board
class RankingBoard {
constructor(type) {
if(type === RecordBoard.TYPE_SAMPLE) { if(type === RecordBoard.TYPE_SAMPLE) {
this.printSample(); this.printSample();
return; return;
@@ -15,27 +10,27 @@ class RankingBoard {
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_HOUR); this.requestRanking(DBConnectManager.TYPE_MY_RANKING_HOUR);
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_DAY); this.requestRanking(DBConnectManager.TYPE_MY_RANKING_DAY);
this.requestRanking(DBConnectManager.TYPE_MY_RANKING_MONTH); this.requestRanking(DBConnectManager.TYPE_MY_RANKING_MONTH);
} }
requestRanking(type) { RankingBoard.prototype.requestRanking = function(type) {
let today = new Date(); var today = new Date();
let date = DateUtil.getYYYYMMDD(today); var date = DateUtil.getYYYYMMDD(today);
let time = DateUtil.getHHMMSS(today); var time = DateUtil.getHHMMSS(today);
this.dbConnectManager.requestRanking( this.dbConnectManager.requestRanking(
type, sessionStorageManager.maestroID, date, time, type, sessionStorageManager.getMaestroID(), date, time,
(type, rankingRecordManager) => { (function(type, rankingRecordManager) {
if(rankingRecordManager.count == 0) { if(rankingRecordManager.getCount() == 0) {
console.log("ranking board - no data"); console.log("ranking board - no data");
return; return;
} }
let beginIndex = this.getBeginIndex(rankingRecordManager); var beginIndex = this.getBeginIndex(rankingRecordManager);
let endIndex = this.getEndIndex(rankingRecordManager); var endIndex = this.getEndIndex(rankingRecordManager);
for(let i = 0; i < endIndex - beginIndex; i++) { for(var i = 0; i < endIndex - beginIndex; i++) {
let index = beginIndex + i; var index = beginIndex + i;
let data = rankingRecordManager.getAt(index); var data = rankingRecordManager.getAt(index);
this.printRecord(type, i, data); this.printRecord(type, i, data);
} }
@@ -53,30 +48,30 @@ class RankingBoard {
break; break;
} }
} }).bind(this)
); );
} }
getMyRank(rankingRecordManager) { RankingBoard.prototype.getMyRank = function(rankingRecordManager) {
let playerID = Number(sessionStorageManager.playerID); var playerID = Number(sessionStorageManager.getPlayerID());
for(let i = 0; i < rankingRecordManager.count; i++) { for(var i = 0; i < rankingRecordManager.getCount(); i++) {
let data = rankingRecordManager.getAt(i); var data = rankingRecordManager.getAt(i);
let playerIDNo = Number(data["playerID"]); var playerIDNo = Number(data["playerID"]);
if(playerIDNo === playerID) if(playerIDNo === playerID)
return i + 1; return i + 1;
} }
return -1; return -1;
} }
getBeginIndex(rankingRecordManager) { RankingBoard.prototype.getBeginIndex = function(rankingRecordManager) {
let rankingRecordCount = rankingRecordManager.count; var rankingRecordCount = rankingRecordManager.getCount();
let myRank = this.getMyRank(rankingRecordManager); var myRank = this.getMyRank(rankingRecordManager);
let myRankIndex = myRank - 1; var myRankIndex = myRank - 1;
let startIndex = 0; var startIndex = 0;
let endIndex = rankingRecordCount; var endIndex = rankingRecordCount;
if(rankingRecordCount > 7) { if(rankingRecordCount > 7) {
if(myRank < rankingRecordCount - 3) { // my rank is better than the worst 3 if(myRank < rankingRecordCount - 3) { // my rank is better than the worst 3
if(myRank < 5) { if(myRank < 5) {
@@ -93,15 +88,15 @@ class RankingBoard {
} }
return startIndex; return startIndex;
} }
getEndIndex(rankingRecordManager) { RankingBoard.prototype.getEndIndex = function(rankingRecordManager) {
let rankingRecordCount = rankingRecordManager.count; var rankingRecordCount = rankingRecordManager.getCount();
let myRank = this.getMyRank(rankingRecordManager); var myRank = this.getMyRank(rankingRecordManager);
let myRankIndex = myRank - 1; var myRankIndex = myRank - 1;
let startIndex = 0; var startIndex = 0;
let endIndex = rankingRecordCount; var endIndex = rankingRecordCount;
if(rankingRecordCount > 7) { if(rankingRecordCount > 7) {
if(myRank < rankingRecordCount - 3) { // my rank is better than the worst 3 if(myRank < rankingRecordCount - 3) { // my rank is better than the worst 3
if(myRank < 5) { if(myRank < 5) {
@@ -118,36 +113,36 @@ class RankingBoard {
} }
return endIndex; return endIndex;
} }
printRecord(type, index, data) { RankingBoard.prototype.printRecord = function(type, index, data) {
var style = { font: "20px Arial", fill: "#fff", align: "right", boundsAlignH: "right", boundsAlignV: "top" }; var style = { font: "20px Arial", fill: "#fff", align: "right", boundsAlignH: "right", boundsAlignV: "top" };
// rank // rank
style.boundsAlignH = "right"; style.boundsAlignH = "right";
let rankText = game.add.text(this.getPosX(type), this.getPosY(index), data.rank, style); var rankText = game.add.text(this.getPosX(type), this.getPosY(index), data.rank, style);
// .setTextBounds(0, 0, 40, 40) // .setTextBounds(0, 0, 40, 40)
rankText.anchor.set(1, 0); rankText.anchor.set(1, 0);
rankText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); rankText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// player name // player name
let playerNameText = game.add.text(this.getPosX(type) + 20, this.getPosY(index), data.playerName, style); var playerNameText = game.add.text(this.getPosX(type) + 20, this.getPosY(index), data.playerName, style);
// .setTextBounds(0, 0, 60, 60) // .setTextBounds(0, 0, 60, 60)
playerNameText.anchor.set(0, 0); playerNameText.anchor.set(0, 0);
playerNameText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); playerNameText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// bestRecord // bestRecord
let bestRecord = StringUtil.getRecordTextWithoutUnit(data.bestRecord); var bestRecord = StringUtil.getRecordTextWithoutUnit(data.bestRecord);
style.boundsAlignH = "right"; style.boundsAlignH = "right";
let recordText = game.add.text(this.getPosX(type) + 180, this.getPosY(index), bestRecord, style); var recordText = game.add.text(this.getPosX(type) + 180, this.getPosY(index), bestRecord, style);
// .setTextBounds(0, 0, 80, 60) // .setTextBounds(0, 0, 80, 60)
recordText.anchor.set(1, 0); recordText.anchor.set(1, 0);
recordText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); recordText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
} }
getPosX(type) { RankingBoard.prototype.getPosX = function(type) {
let posX = 0; var posX = 0;
switch(type) { switch(type) {
case DBConnectManager.TYPE_MY_RANKING_HOUR: case DBConnectManager.TYPE_MY_RANKING_HOUR:
@@ -166,13 +161,13 @@ class RankingBoard {
} }
return posX; return posX;
} }
getPosY(index) { RankingBoard.prototype.getPosY = function(index) {
return game.world.height / 2 + 90 + 30 * index; return game.world.height / 2 + 90 + 30 * index;
} }
printSample() { RankingBoard.prototype.printSample = function() {
// TYPE_MY_RANKING_HOUR // TYPE_MY_RANKING_HOUR
this.printRecord( this.printRecord(
DBConnectManager.TYPE_MY_RANKING_HOUR, 0, DBConnectManager.TYPE_MY_RANKING_HOUR, 0,
@@ -223,17 +218,17 @@ class RankingBoard {
DBConnectManager.TYPE_MY_RANKING_MONTH, 3, DBConnectManager.TYPE_MY_RANKING_MONTH, 3,
new RankingRecord(4, 0, "6-3이철수", 480) new RankingRecord(4, 0, "6-3이철수", 480)
); );
} }
static loadResources() { RankingBoard.loadResources = function() {
game.load.image('medal_gold', '../../../resources/image/ui/medal_gold.png'); game.load.image('medal_gold', '../../../resources/image/ui/medal_gold.png');
game.load.image('medal_silver', '../../../resources/image/ui/medal_silver.png'); game.load.image('medal_silver', '../../../resources/image/ui/medal_silver.png');
game.load.image('medal_bronze', '../../../resources/image/ui/medal_bronze.png'); game.load.image('medal_bronze', '../../../resources/image/ui/medal_bronze.png');
} }
makeMedalSprites() { RankingBoard.prototype.makeMedalSprites = function() {
let rankAreaPositionY = 630; var rankAreaPositionY = 630;
this.medalHour = game.add.image(425, rankAreaPositionY, 'medal_gold'); this.medalHour = game.add.image(425, rankAreaPositionY, 'medal_gold');
this.medalHour.anchor.set(0.5); this.medalHour.anchor.set(0.5);
this.medalHour.alpha = 0; this.medalHour.alpha = 0;
@@ -245,9 +240,9 @@ class RankingBoard {
this.medalMonth = game.add.image(885, rankAreaPositionY, 'medal_gold'); this.medalMonth = game.add.image(885, rankAreaPositionY, 'medal_gold');
this.medalMonth.anchor.set(0.5); this.medalMonth.anchor.set(0.5);
this.medalMonth.alpha = 0; this.medalMonth.alpha = 0;
} }
showMedal(medal, myRank) { RankingBoard.prototype.showMedal = function(medal, myRank) {
if(myRank > 3) { if(myRank > 3) {
medal.alpha = 0; medal.alpha = 0;
return; return;
@@ -263,6 +258,4 @@ class RankingBoard {
medal.alpha = 1; medal.alpha = 1;
medal.scale.setTo(0.5); medal.scale.setTo(0.5);
game.add.tween(medal.scale).to( {x: 0.7, y: 0.7}, 1000, Phaser.Easing.Bounce.Out, true); game.add.tween(medal.scale).to( {x: 0.7, y: 0.7}, 1000, Phaser.Easing.Bounce.Out, true);
}
} }
+12 -18
View File
@@ -1,22 +1,17 @@
///////////////////////////// function RecordBoard(type) {
// Record board
class RecordBoard {
constructor(type) {
this.chartGraphics = game.add.graphics(0, 0); this.chartGraphics = game.add.graphics(0, 0);
this.printRecordBoardHeader(); this.printRecordBoardHeader();
this.printSeperator(); this.printSeperator();
let historyBoard = new HistoryBoard(type); var historyBoard = new HistoryBoard(type);
let rankingBoard = new RankingBoard(type); var rankingBoard = new RankingBoard(type);
} }
printRecordBoardHeader() { RecordBoard.prototype.printRecordBoardHeader = function() {
let posX = 60; var posX = 60;
let posY = game.world.height / 2 + 20; var posY = game.world.height / 2 + 20;
var bar = game.add.graphics(); var bar = game.add.graphics();
bar.beginFill(0x444444); bar.beginFill(0x444444);
@@ -34,25 +29,24 @@ class RecordBoard {
posX = 770; posX = 770;
this.printHeader(posX, posY, "이달의 순위", style); this.printHeader(posX, posY, "이달의 순위", style);
} }
printHeader(x, y, title, style) { RecordBoard.prototype.printHeader = function(x, y, title, style) {
game.add.text(x, y, title, style) game.add.text(x, y, title, style)
.setTextBounds(0, 0, 200, RecordBoard.HEADER_BAR_HEIGHT_PX) .setTextBounds(0, 0, 200, RecordBoard.HEADER_BAR_HEIGHT_PX)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
} }
printSeperator() { RecordBoard.prototype.printSeperator = function() {
const posX = 290; const posX = 290;
const posY = 480; const posY = 480;
this.chartGraphics.lineStyle(3, 0x444444, 1); this.chartGraphics.lineStyle(3, 0x444444, 1);
this.chartGraphics.moveTo(posX, posY); this.chartGraphics.moveTo(posX, posY);
this.chartGraphics.lineTo(posX, posY + 200); this.chartGraphics.lineTo(posX, posY + 200);
}
} }
RecordBoard.HEADER_BAR_HEIGHT_PX = 60; RecordBoard.HEADER_BAR_HEIGHT_PX = 60;
RecordBoard.TYPE_SAMPLE = "sample"; RecordBoard.TYPE_SAMPLE = "sample";
+61 -64
View File
@@ -1,25 +1,22 @@
///////////////////////////// var Result = {
// Result
class Result { preload: function() {
preload() {
game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
Animal.loadResources(); Animal.loadResources();
RankingBoard.loadResources(); RankingBoard.loadResources();
game.load.image('star', '../../../resources/image/ui/star_particle.png'); game.load.image('star', '../../../resources/image/ui/star_particle.png');
} },
create() { create: function() {
this.dbConnectManager = new DBConnectManager(); this.dbConnectManager = new DBConnectManager();
this.game.stage.backgroundColor = '#4d4d4d'; this.game.stage.backgroundColor = '#4d4d4d';
this.chartGraphics = game.add.graphics(100, game.world.height - 120); this.chartGraphics = game.add.graphics(100, game.world.height - 120);
// top ui // top ui
let screenTopUI = new ScreenTopUI(); var screenTopUI = new ScreenTopUI();
screenTopUI.makeBackButton( function() { screenTopUI.makeBackButton( function() {
if(isTypingPracticeStage()) if(isTypingPracticeStage())
location.href = '../../web/client/menu_typing_practice.html'; location.href = '../../web/client/menu_typing_practice.html';
@@ -39,126 +36,126 @@ class Result {
this.makeRestartButton(); this.makeRestartButton();
if(sessionStorageManager.maestroAccountType >= 100) { // experience account if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account
let recordBoard = new RecordBoard(RecordBoard.TYPE_SAMPLE); var recordBoard = new RecordBoard(RecordBoard.TYPE_SAMPLE);
this.announceBox = new AnnounceBox(50, 648); this.announceBox = new AnnounceBox(50, 648);
this.announceBox.drawBox("체험 계정에서는 기록이 저장되지 않습니다."); this.announceBox.drawBox("체험 계정에서는 기록이 저장되지 않습니다.");
} else { } else {
let recordBoard = new RecordBoard(RecordBoard.TYPE_DB); var recordBoard = new RecordBoard(RecordBoard.TYPE_DB);
this.printTodayBestRecord(); this.printTodayBestRecord();
} }
// bottom ui // bottom ui
let screenBottomUI = new ScreenBottomUI(); var screenBottomUI = new ScreenBottomUI();
screenBottomUI.printLeftTextWithBestRecord(Math.floor(sessionStorageManager.bestRecord)); screenBottomUI.printLeftTextWithBestRecord(Math.floor(sessionStorageManager.getBestRecord()));
screenBottomUI.printCenterText(sessionStorageManager.playingAppKoreanName); screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName());
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
} },
printRecord() { printRecord: function() {
const style = { font: "bold 38px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" }; const style = { font: "bold 38px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
let titleText = game.add.text(game.world.width / 2, 35, "결과", style); var titleText = game.add.text(game.world.width / 2, 35, "결과", style);
titleText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); titleText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
titleText.anchor.set(0.5); titleText.anchor.set(0.5);
let x = game.world.width / 2; var x = game.world.width / 2;
let y = 150; var y = 150;
if(sessionStorageManager.record === null) if(sessionStorageManager.getRecord() === null)
sessionStorageManager.record = 0; sessionStorageManager.setRecord(0);
let record = NumberUtil.numberWithCommas(Math.floor(sessionStorageManager.record)); var record = NumberUtil.numberWithCommas(Math.floor(sessionStorageManager.getRecord()));
style.font = "80px Arial"; style.font = "80px Arial";
if(sessionStorageManager.playingAppID < 100) { if(sessionStorageManager.getPlayingAppID() < 100) {
let leftAnimal = new Animal(Animal.TYPE_ANIMATION, game.world.centerX - 200, 150); var leftAnimal = new Animal(Animal.TYPE_ANIMATION, game.world.centerX - 200, 150);
let animalLevelID = 0; var animalLevelID = 0;
if(sessionStorageManager.playingAppID < 20) if(sessionStorageManager.getPlayingAppID() < 20)
animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.record, Animal.TYPE_PRACTICE); animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.getRecord(), Animal.TYPE_PRACTICE);
else else
animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.record, Animal.TYPE_TEST); animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.getRecord(), Animal.TYPE_TEST);
leftAnimal.setSpecies(Animal.SPECIES_DATA[animalLevelID]);; leftAnimal.setSpecies(Animal.SPECIES_DATA[animalLevelID]);;
// leftAnimal.tweenAnimation(Animal.ANIMATION_TYPE_CHANGE); // leftAnimal.tweenAnimation(Animal.ANIMATION_TYPE_CHANGE);
leftAnimal.startAnimation(); leftAnimal.startAnimation();
let rightAnimal = new Animal(Animal.TYPE_ANIMATION, game.world.centerX + 200, 150); var rightAnimal = new Animal(Animal.TYPE_ANIMATION, game.world.centerX + 200, 150);
rightAnimal.setSpecies(Animal.SPECIES_DATA[animalLevelID]);; rightAnimal.setSpecies(Animal.SPECIES_DATA[animalLevelID]);;
// rightAnimal.tweenAnimation(Animal.ANIMATION_TYPE_CHANGE); // rightAnimal.tweenAnimation(Animal.ANIMATION_TYPE_CHANGE);
rightAnimal.startAnimation(); rightAnimal.startAnimation();
} }
let scoreText = game.add.text( var scoreText = game.add.text(
x, y, x, y,
record + StringUtil.getScoreUnit(sessionStorageManager.playingAppID), record + StringUtil.getScoreUnit(sessionStorageManager.getPlayingAppID()),
style style
); );
scoreText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); scoreText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
scoreText.anchor.set(0.5); scoreText.anchor.set(0.5);
} },
recordUnit() { recordUnit: function() {
let recordUnit = ""; var recordUnit = "";
if(sessionStorageManager.playingAppID >= 100) if(sessionStorageManager.getPlayingAppID() >= 100)
return "점"; return "점";
else else
return "타"; return "타";
} },
printTodayBestRecord() { printTodayBestRecord: function() {
let newRecordEmitter = game.add.emitter(game.world.centerX, 140, 300); var newRecordEmitter = game.add.emitter(game.world.centerX, 140, 300);
newRecordEmitter.makeParticles('star'); newRecordEmitter.makeParticles('star');
newRecordEmitter.gravity = 300; newRecordEmitter.gravity = 300;
let style = { font: "32px Arial", fill: "#ff0", align: "left", boundsAlignH: "center", boundsAlignV: "middle" }; var style = { font: "32px Arial", fill: "#ff0", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
let bestRecordText = game.add.text(game.world.centerX, 220, "", style); var bestRecordText = game.add.text(game.world.centerX, 220, "", style);
bestRecordText.anchor.set(0.5); bestRecordText.anchor.set(0.5);
bestRecordText.stroke = "#333"; bestRecordText.stroke = "#333";
bestRecordText.strokeThickness = 5; bestRecordText.strokeThickness = 5;
if(sessionStorageManager.bestRecord === null) if(sessionStorageManager.getBestRecord() === 'undefined')
sessionStorageManager.bestRecord = 0; sessionStorageManager.setBestRecord(0);
let todayBestRecord = 0; var todayBestRecord = 0;
let flooredBestRecord = Math.floor(sessionStorageManager.bestRecord); var flooredBestRecord = Math.floor(sessionStorageManager.getBestRecord());
let bestRecordWithCommas = NumberUtil.numberWithCommas(flooredBestRecord); var bestRecordWithCommas = NumberUtil.numberWithCommas(flooredBestRecord);
if(sessionStorageManager.record >= sessionStorageManager.bestRecord) { if(sessionStorageManager.getRecord() >= sessionStorageManager.getBestRecord()) {
sessionStorageManager.bestRecord = sessionStorageManager.record; sessionStorageManager.setBestRecord(sessionStorageManager.getRecord());
bestRecordText.text = "! : . 오늘 최고 기록 . : !"; bestRecordText.text = "! : . 오늘 최고 기록 . : !";
newRecordEmitter.start(true, 2000, null, 20); newRecordEmitter.start(true, 2000, null, 20);
} else { } else {
bestRecordText.text = ""; bestRecordText.text = "";
} }
} },
uploadRecord() { uploadRecord: function() {
if(sessionStorageManager.maestroAccountType >= 100) { // experience account if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account
return; return;
} }
this.dbConnectManager.updateTodayBestRecord( this.dbConnectManager.updateTodayBestRecord(
sessionStorageManager.maestroID, sessionStorageManager.getMaestroID(),
sessionStorageManager.playerID, sessionStorageManager.getPlayerID(),
sessionStorageManager.playingAppID, sessionStorageManager.getPlayingAppID(),
sessionStorageManager.record sessionStorageManager.getRecord()
); );
} },
makeRestartButton() { makeRestartButton: function() {
let setting = new RoundRectButtonSetting(game.world.centerX, game.world.height / 2 - 70, 200, 100); var setting = new RoundRectButtonSetting(game.world.centerX, game.world.height / 2 - 70, 200, 100);
setting.fontStyle.fontWeight = "bold"; setting.fontStyle.fontWeight = "bold";
let startButton = new RoundRectButton(setting, RoundRectButton.NONE_ICON, "다시 시작", this.restartStage); var startButton = new RoundRectButton(setting, RoundRectButton.NONE_ICON, "다시 시작", this.restartStage);
} },
restartStage() { restartStage: function() {
if(sessionStorageManager.playingAppName.indexOf("practice_") == 0) { if(sessionStorageManager.getPlayingAppName().indexOf("practice_") == 0) {
location.href = "../../web/client/typing_practice.html"; location.href = "../../web/client/typing_practice.html";
} else if(sessionStorageManager.playingAppName.indexOf("test_") == 0) { } else if(sessionStorageManager.getPlayingAppName().indexOf("test_") == 0) {
location.href = "../../web/client/typing_test.html"; location.href = "../../web/client/typing_test.html";
} else { } else {
location.href = "../../web/client/" + sessionStorageManager.playingAppName + ".html"; location.href = "../../web/client/" + sessionStorageManager.getPlayingAppName() + ".html";
} }
} }
+4 -3
View File
@@ -35,6 +35,7 @@ class Start {
this.makeStartButton(); this.makeStartButton();
this.makeRankingButton(); this.makeRankingButton();
console.log(sessionStorageManager.getMaestroAccountType());
if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account
this.printSampleChart(); this.printSampleChart();
this.announceBox = new AnnounceBox(50, 648); this.announceBox = new AnnounceBox(50, 648);
@@ -55,11 +56,11 @@ class Start {
sessionStorageManager.getPlayerID(), sessionStorageManager.getPlayerID(),
sessionStorageManager.getPlayingAppID(), sessionStorageManager.getPlayingAppID(),
(function(replyJSON) { (function(replyJSON) {
sessionStorageManager.getBestRecord() = Number(replyJSON["BestRecord"]); sessionStorageManager.setBestRecord(Number(replyJSON["BestRecord"]));
screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord()); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord());
}).bind(this), }).bind(this),
(function(replyJSON) { // no data (function(replyJSON) { // no data
sessionStorageManager.getBestRecord() = 0; sessionStorageManager.setBestRecord(0);
screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord()); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord());
}).bind(this) }).bind(this)
); );
@@ -112,7 +113,7 @@ class Start {
} }
this.chart.printChartBaseLine(); this.chart.printChartBaseLine();
}) }).bind(this)
); );
} }
+72 -78
View File
@@ -1,20 +1,16 @@
///////////////////////////// var TypingPractice = {
// TypingPractice create: function() {
var self = this;
class TypingPractice {
create() {
self = this;
this.isOnStage = false; this.isOnStage = false;
this.initTypingData(); this.initTypingData();
sessionStorageManager.isNewBestRecrd = false; sessionStorageManager.setIsNewBestRecord(false);
game.stage.backgroundColor = '#4d4d4d'; game.stage.backgroundColor = '#4d4d4d';
// top ui // top ui
let screenTopUI = new ScreenTopUI(); var screenTopUI = new ScreenTopUI();
screenTopUI.makeBackButton( function() { screenTopUI.makeBackButton( function() {
sessionStorageManager.resetPlayingAppData(); sessionStorageManager.resetPlayingAppData();
location.href = '../../web/client/menu_typing_practice.html'; location.href = '../../web/client/menu_typing_practice.html';
@@ -38,10 +34,10 @@ class TypingPractice {
// typing content // typing content
let typingContentBG = new TypingContentBG(); var typingContentBG = new TypingContentBG();
typingContentBG.makePracticeContentBG(); typingContentBG.makePracticeContentBG();
let TYPING_CONTENT_Y = 200; var TYPING_CONTENT_Y = 200;
textStyleBasic.font = "bold 84px Times New Roman"; textStyleBasic.font = "bold 84px Times New Roman";
this.textTypingContent = game.add.text(game.world.centerX, TYPING_CONTENT_Y, "", textStyleBasic) this.textTypingContent = game.add.text(game.world.centerX, TYPING_CONTENT_Y, "", textStyleBasic)
@@ -56,11 +52,11 @@ class TypingPractice {
// textStyleBasic.font = "32px Arial"; // textStyleBasic.font = "32px Arial";
let OFFSET_WORD_X = 70; var OFFSET_WORD_X = 70;
let textDoneColor = [ '#99994d', '#77774d', '#66664d' ]; var textDoneColor = [ '#99994d', '#77774d', '#66664d' ];
this.textTypingContentsDone = []; this.textTypingContentsDone = [];
for(let i = 0; i < TypingPractice.TYPING_CONTENT_DONE_COUNT; i++) { for(var i = 0; i < TypingPractice.TYPING_CONTENT_DONE_COUNT; i++) {
this.textTypingContentsDone[i] = game.add.text( this.textTypingContentsDone[i] = game.add.text(
game.world.centerX - 200 - i * OFFSET_WORD_X, TYPING_CONTENT_Y, game.world.centerX - 200 - i * OFFSET_WORD_X, TYPING_CONTENT_Y,
"", textStyleBasic "", textStyleBasic
@@ -69,9 +65,9 @@ class TypingPractice {
this.textTypingContentsDone[i].anchor.set(0.5); this.textTypingContentsDone[i].anchor.set(0.5);
} }
let textPreviewColor = [ '#666666', '#888888', '#777777' ]; var textPreviewColor = [ '#666666', '#888888', '#777777' ];
this.textTypingContentPreview = []; this.textTypingContentPreview = [];
for(let i = 0; i < TypingPractice.TYPING_CONTENT_PREVIEW_COUNT; i++) { for(var i = 0; i < TypingPractice.TYPING_CONTENT_PREVIEW_COUNT; i++) {
this.textTypingContentPreview[i] = game.add.text( this.textTypingContentPreview[i] = game.add.text(
game.world.centerX + 200 + i * OFFSET_WORD_X, game.world.centerX + 200 + i * OFFSET_WORD_X,
TYPING_CONTENT_Y, "", textStyleBasic TYPING_CONTENT_Y, "", textStyleBasic
@@ -83,7 +79,7 @@ class TypingPractice {
// keyboard // keyboard
this.keyMapper = new KeyMapper(); this.keyMapper = new KeyMapper();
this.keyboard = null; this.keyboard = null;
if(sessionStorageManager.playingAppName.indexOf("korean") > 0) if(sessionStorageManager.getPlayingAppName().indexOf("korean") > 0)
this.keyboard = new Keyboard(this.keyMapper, Keyboard.KOREAN); this.keyboard = new Keyboard(this.keyMapper, Keyboard.KOREAN);
else else
this.keyboard = new Keyboard(this.keyMapper, Keyboard.ENGLISH); this.keyboard = new Keyboard(this.keyMapper, Keyboard.ENGLISH);
@@ -103,29 +99,29 @@ class TypingPractice {
// bottom ui // bottom ui
let screenBottomUI = new ScreenBottomUI(); var screenBottomUI = new ScreenBottomUI();
// screenBottomUI.printBottomUILeftText(""); // screenBottomUI.printBottomUILeftText("");
screenBottomUI.printCenterText(sessionStorageManager.playingAppKoreanName); screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName());
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
this.startGame(); this.startGame();
// this.countDown(); // this.countDown();
} },
startGame() { startGame: function() {
this.isOnStage = true; this.isOnStage = true;
this.stageTimer.start(); this.stageTimer.start();
this.showTypingPracticeContents(); this.showTypingPracticeContents();
this.showHighlightKey(); this.showHighlightKey();
this.moveHands(); this.moveHands();
} },
gameOver() { gameOver: function() {
this.isOnStage = false; this.isOnStage = false;
for(let i = 0; i < TypingPractice.TYPING_CONTENT_DONE_COUNT; i++) { for(var i = 0; i < TypingPractice.TYPING_CONTENT_DONE_COUNT; i++) {
this.textTypingContentsDone[i].text = ""; this.textTypingContentsDone[i].text = "";
} }
@@ -135,7 +131,7 @@ class TypingPractice {
this.textTypingContent.addColor(TypingPractice.COLOR_CONTENT_RIGHT, 0); this.textTypingContent.addColor(TypingPractice.COLOR_CONTENT_RIGHT, 0);
this.textTypingContent.text = "= 연습 끝 ="; this.textTypingContent.text = "= 연습 끝 =";
for(let i = 0; i < TypingPractice.TYPING_CONTENT_PREVIEW_COUNT; i++) { for(var i = 0; i < TypingPractice.TYPING_CONTENT_PREVIEW_COUNT; i++) {
this.textTypingContentPreview[i].text = ""; this.textTypingContentPreview[i].text = "";
} }
@@ -144,22 +140,22 @@ class TypingPractice {
this.animalOnTitle.stopAnimation(); this.animalOnTitle.stopAnimation();
let gameOverText = new GameOverText(); var gameOverText = new GameOverText();
game.time.events.add(Phaser.Timer.SECOND * 2, this.goResult, this); game.time.events.add(Phaser.Timer.SECOND * 2, this.goResult, this);
} },
goResult() { goResult: function() {
sessionStorageManager.record = this.typingScore.score(); sessionStorageManager.setRecord(this.typingScore.score());
if(sessionStorageManager.record > sessionStorageManager.bestRecord) if(sessionStorageManager.getRecord() > sessionStorageManager.getBestRecord())
sessionStorageManager.bestRecord = sessionStorageManager.record; sessionStorageManager.setBestRecord(sessionStorageManager.getRecord());
location.href = '../../web/client/result.html'; location.href = '../../web/client/result.html';
} },
initTypingData() { initTypingData: function() {
let typingTextMan = new TypingTextManager(); var typingTextMan = new TypingTextManager();
let typingPracticeContents = this.loadPracticeContent(); var typingPracticeContents = this.loadPracticeContent();
// console.log(typingPracticeContents); // console.log(typingPracticeContents);
typingTextMan.makePracticeContents(typingPracticeContents, 30); typingTextMan.makePracticeContents(typingPracticeContents, 30);
this.typingRandomContents = typingTextMan.getContents(); this.typingRandomContents = typingTextMan.getContents();
@@ -168,17 +164,17 @@ class TypingPractice {
this.typingIndex = 0; this.typingIndex = 0;
this.playingAnimalIndex = 0; this.playingAnimalIndex = 0;
} },
loadPracticeContent() { loadPracticeContent: function() {
let appName = ""; var appName = "";
if(isTypingTestStage()) if(isTypingTestStage())
appName = sessionStorageManager.playingAppName.substring(5); appName = sessionStorageManager.getPlayingAppName().substring(5);
else if(isTypingPracticeStage()) else if(isTypingPracticeStage())
appName = sessionStorageManager.playingAppName.substring(9); appName = sessionStorageManager.getPlayingAppName().substring(9);
let testContent = []; var testContent = [];
switch(appName) { switch(appName) {
case "korean_basic": case "korean_basic":
@@ -260,11 +256,11 @@ class TypingPractice {
} }
return testContent; return testContent;
} },
showTypingPracticeContents() { showTypingPracticeContents: function() {
for(let i = 0; i < TypingPractice.TYPING_CONTENT_DONE_COUNT; i++) { for(var i = 0; i < TypingPractice.TYPING_CONTENT_DONE_COUNT; i++) {
let doneIndex = this.typingIndex - i - 1; var doneIndex = this.typingIndex - i - 1;
if(doneIndex < 0) { if(doneIndex < 0) {
this.textTypingContentsDone[i].text = ""; this.textTypingContentsDone[i].text = "";
} else { } else {
@@ -279,43 +275,43 @@ class TypingPractice {
this.textTypingContent.text = this.typingRandomContents[this.typingIndex]; this.textTypingContent.text = this.typingRandomContents[this.typingIndex];
for(let i = 0; i < TypingPractice.TYPING_CONTENT_PREVIEW_COUNT; i++) { for(var i = 0; i < TypingPractice.TYPING_CONTENT_PREVIEW_COUNT; i++) {
let previewIndex = this.typingIndex + i + 1; var previewIndex = this.typingIndex + i + 1;
if(previewIndex < this.typingRandomContents.length) if(previewIndex < this.typingRandomContents.length)
this.textTypingContentPreview[i].text = this.typingRandomContents[previewIndex]; this.textTypingContentPreview[i].text = this.typingRandomContents[previewIndex];
else else
this.textTypingContentPreview[i].text = ""; this.textTypingContentPreview[i].text = "";
} }
} },
hideHighlightKey() { hideHighlightKey: function() {
let prevText = this.typingRandomContents[this.typingIndex]; var prevText = this.typingRandomContents[this.typingIndex];
if(prevText === undefined) if(prevText === undefined)
return; return;
this.keyboard.hideHighlight(prevText); this.keyboard.hideHighlight(prevText);
} },
showHighlightKey() { showHighlightKey: function() {
let typingText = this.typingRandomContents[this.typingIndex]; var typingText = this.typingRandomContents[this.typingIndex];
if(typingText === undefined) if(typingText === undefined)
return; return;
this.keyboard.showHighlight(typingText, this.leftHand, this.rightHand); this.keyboard.showHighlight(typingText, this.leftHand, this.rightHand);
} },
moveHands() { moveHands: function() {
let typingText = this.typingRandomContents[this.typingIndex]; var typingText = this.typingRandomContents[this.typingIndex];
if(typingText === undefined) if(typingText === undefined)
return; return;
let key = this.keyboard.getKeyOfText(typingText); var key = this.keyboard.getKeyOfText(typingText);
let handSide = key.handSide; var handSide = key.handSide;
if(handSide === KeyButton.LEFT_HAND) { if(handSide === KeyButton.LEFT_HAND) {
this.leftHand.moveTo(key); this.leftHand.moveTo(key);
if(this.keyMapper.isShiftText(typingText)) { if(this.keyMapper.isShiftText(typingText)) {
let shiftRightKey = this.keyboard.getKey("ShiftRight"); var shiftRightKey = this.keyboard.getKey("ShiftRight");
shiftRightKey.showHighlight(); shiftRightKey.showHighlight();
this.rightHand.moveTo(shiftRightKey); this.rightHand.moveTo(shiftRightKey);
} else { } else {
@@ -325,42 +321,42 @@ class TypingPractice {
this.rightHand.moveTo(key); this.rightHand.moveTo(key);
if(this.keyMapper.isShiftText(typingText)) { if(this.keyMapper.isShiftText(typingText)) {
let shiftLeftKey = this.keyboard.getKey("ShiftLeft"); var shiftLeftKey = this.keyboard.getKey("ShiftLeft");
shiftLeftKey.showHighlight(); shiftLeftKey.showHighlight();
this.leftHand.moveTo(shiftLeftKey); this.leftHand.moveTo(shiftLeftKey);
} else { } else {
this.leftHand.moveToDefaultPosition(); this.leftHand.moveToDefaultPosition();
} }
} }
} },
getKeyCode(text) { getKeyCode: function(text) {
return this.keyMapper.getKeyIDOfText(text); return this.keyMapper.getKeyIDOfText(text);
} },
isKeyPressed(inputContent, typingContent) { isKeyPressed: function(inputContent, typingContent) {
let inputContentKeyCode = this.getKeyCode(inputContent); var inputContentKeyCode = this.getKeyCode(inputContent);
let typingContentKeyCode = this.getKeyCode(typingContent); var typingContentKeyCode = this.getKeyCode(typingContent);
if(inputContentKeyCode !== typingContentKeyCode) if(inputContentKeyCode !== typingContentKeyCode)
return false; return false;
let isShiftInputContent = this.shiftKey.isDown; var isShiftInputContent = this.shiftKey.isDown;
let isShiftTypingContent = this.keyMapper.isShiftText(typingContent); var isShiftTypingContent = this.keyMapper.isShiftText(typingContent);
if(isShiftInputContent !== isShiftTypingContent) if(isShiftInputContent !== isShiftTypingContent)
return false; return false;
return true; return true;
} },
checkTypingContents(evnet) { checkTypingContents: function(evnet) {
let inputContent = event.key; var inputContent = event.key;
let typingContent = this.typingRandomContents[this.typingIndex]; var typingContent = this.typingRandomContents[this.typingIndex];
if(this.isKeyPressed(inputContent, typingContent)) { if(this.isKeyPressed(inputContent, typingContent)) {
this.typingScore.increase(); this.typingScore.increase();
let animalLevelID = Animal.animalLevelIDByRecord(this.typingScore.score(), Animal.TYPE_PRACTICE); var animalLevelID = Animal.animalLevelIDByRecord(this.typingScore.score(), Animal.TYPE_PRACTICE);
if(animalLevelID > this.playingAnimalIndex) { if(animalLevelID > this.playingAnimalIndex) {
this.playingAnimalIndex = animalLevelID; this.playingAnimalIndex = animalLevelID;
this.animalOnTitle.setSpecies(Animal.SPECIES_DATA[this.playingAnimalIndex]);; this.animalOnTitle.setSpecies(Animal.SPECIES_DATA[this.playingAnimalIndex]);;
@@ -380,10 +376,9 @@ class TypingPractice {
this.animalOnTitle.startAnimation(); this.animalOnTitle.startAnimation();
this.animalOnTitle.tweenAnimation(Animal.ANIMATION_TYPE_DAMAGE); this.animalOnTitle.tweenAnimation(Animal.ANIMATION_TYPE_DAMAGE);
} }
} },
playNextContent: function() {
playNextContent() {
this.hideHighlightKey(); this.hideHighlightKey();
this.typingIndex++; this.typingIndex++;
@@ -391,7 +386,6 @@ class TypingPractice {
this.showHighlightKey(); this.showHighlightKey();
this.moveHands(); this.moveHands();
} }
} }
+46 -49
View File
@@ -1,6 +1,4 @@
class Hand { function Hand(keyMapper) {
constructor(keyMapper) {
this.keyMapper = keyMapper; this.keyMapper = keyMapper;
this.pressingFinger = KeyButton.NONE_FINGER; this.pressingFinger = KeyButton.NONE_FINGER;
this.prevFingerSprite = null; this.prevFingerSprite = null;
@@ -29,39 +27,39 @@ class Hand {
this.little_finger.alpha = 0.5; this.little_finger.alpha = 0.5;
this.hand.addChild(this.little_finger); this.hand.addChild(this.little_finger);
let mask = game.add.graphics(); var mask = game.add.graphics();
mask.beginFill(0xffffff); mask.beginFill(0xffffff);
mask.drawRect(100, 300, 1028, 360); mask.drawRect(100, 300, 1028, 360);
this.hand.mask = mask; this.hand.mask = mask;
} }
move(sprite, x, y) { Hand.prototype.move = function(sprite, x, y) {
sprite.x = x; sprite.x = x;
sprite.y = y; sprite.y = y;
} }
moveTo(key) { Hand.prototype.moveTo = function(key) {
} }
moveToDefaultPosition() { Hand.prototype.moveToDefaultPosition = function() {
this.moveRow(3, null); this.moveRow(3, null);
this.unhighlightOffFinger(KeyButton.NONE_FINGER); this.unhighlightOffFinger(KeyButton.NONE_FINGER);
} }
moveRow(rowNo, key) { Hand.prototype.moveRow = function(rowNo, key) {
let rowIndex = rowNo - 1; var rowIndex = rowNo - 1;
this.hand.y = Hand.DEFAULT_Y_PX + Keyboard.DEFAULT_KEY_SIZE_PX * rowIndex; this.hand.y = Hand.DEFAULT_Y_PX + Keyboard.DEFAULT_KEY_SIZE_PX * rowIndex;
this.moveColumn(rowNo, key); this.moveColumn(rowNo, key);
} }
moveColumn(rowNo, key) { Hand.prototype.moveColumn = function(rowNo, key) {
} }
getFingerSprite(fingerNo) { Hand.prototype.getFingerSprite = function(fingerNo) {
let fingerSprite = null; var fingerSprite = null;
switch(fingerNo) { switch(fingerNo) {
case KeyButton.THUMB: case KeyButton.THUMB:
fingerSprite = this.thumb; fingerSprite = this.thumb;
@@ -81,11 +79,11 @@ class Hand {
break; break;
} }
return fingerSprite; return fingerSprite;
} }
highlightOnFinger(fingerNo) { Hand.prototype.highlightOnFinger = function(fingerNo) {
// console.log(fingerNo); // console.log(fingerNo);
let pressingFingerSprite = this.getFingerSprite(fingerNo); var pressingFingerSprite = this.getFingerSprite(fingerNo);
if(pressingFingerSprite === this.prevFingerSprite) if(pressingFingerSprite === this.prevFingerSprite)
return; return;
@@ -99,27 +97,27 @@ class Hand {
} }
this.prevFingerSprite = pressingFingerSprite; this.prevFingerSprite = pressingFingerSprite;
} }
unhighlightOffFinger() { Hand.prototype.unhighlightOffFinger = function() {
if(this.prevFingerSprite === null) if(this.prevFingerSprite === null)
return; return;
this.prevFingerSprite.tint = 0xffffff; this.prevFingerSprite.tint = 0xffffff;
this.prevFingerSprite.alpha = 0.5; this.prevFingerSprite.alpha = 0.5;
this.prevFingerSprite = null; this.prevFingerSprite = null;
}
} }
Hand.DEFAULT_Y_PX = 540; // 680; Hand.DEFAULT_Y_PX = 540; // 680;
class LeftHand extends Hand { LeftHand.prototype = Object.create(Hand.prototype);
LeftHand.constructor = LeftHand;
constructor(keyMapper) { function LeftHand(keyMapper) {
super(keyMapper); Hand.call(this, keyMapper);
this.move(this.thumb, 126, -50); this.move(this.thumb, 126, -50);
this.move(this.index_finger, 96, -102); this.move(this.index_finger, 96, -102);
@@ -127,14 +125,14 @@ class LeftHand extends Hand {
this.move(this.ring_filger, 32, -110); this.move(this.ring_filger, 32, -110);
this.move(this.little_finger, 4, -106); this.move(this.little_finger, 4, -106);
this.moveToDefaultPosition(); this.moveToDefaultPosition();
} }
moveTo(key) { LeftHand.prototype.moveTo = function(key) {
if(key === undefined) if(key === undefined)
return; return;
// console.log(key); // console.log(key);
let keyCode = this.keyMapper.getKeyIDOfText(key.normalText); var keyCode = this.keyMapper.getKeyIDOfText(key.normalText);
if(keyCode != "Space") if(keyCode != "Space")
this.moveRow(key.row, key); this.moveRow(key.row, key);
@@ -151,16 +149,16 @@ class LeftHand extends Hand {
} }
this.highlightOnFinger(key.fingerType); this.highlightOnFinger(key.fingerType);
} }
moveColumn(rowNo, key) { LeftHand.prototype.moveColumn = function(rowNo, key) {
let rowIndex = rowNo - 1; var rowIndex = rowNo - 1;
this.hand.x = LeftHand.DEFAULT_X_PX + (Keyboard.DEFAULT_KEY_SIZE_PX / 2) * rowIndex; this.hand.x = LeftHand.DEFAULT_X_PX + (Keyboard.DEFAULT_KEY_SIZE_PX / 2) * rowIndex;
if(key === null) if(key === null)
return; return;
let keyCode = this.keyMapper.getKeyIDOfText(key.normalText); var keyCode = this.keyMapper.getKeyIDOfText(key.normalText);
switch(keyCode) { switch(keyCode) {
case "Key5": case "Key5":
case "KeyT": case "KeyT":
@@ -173,18 +171,18 @@ class LeftHand extends Hand {
this.hand.x = LeftHand.DEFAULT_X_PX; this.hand.x = LeftHand.DEFAULT_X_PX;
break; break;
} }
}
} }
LeftHand.DEFAULT_X_PX = 100; LeftHand.DEFAULT_X_PX = 100;
class RightHand extends Hand { RightHand.prototype = Object.create(Hand.prototype);
RightHand.constructor = RightHand;
constructor(keyMapper) { function RightHand(keyMapper) {
super(keyMapper); Hand.call(this, keyMapper);
this.hand.scale.x *= -1; this.hand.scale.x *= -1;
@@ -194,14 +192,14 @@ class RightHand extends Hand {
this.move(this.ring_filger, 32, -110); this.move(this.ring_filger, 32, -110);
this.move(this.little_finger, 4, -106); this.move(this.little_finger, 4, -106);
this.moveToDefaultPosition(); this.moveToDefaultPosition();
} }
moveTo(key) { RightHand.prototype.moveTo = function(key) {
if(key === undefined) if(key === undefined)
return; return;
// console.log(key); // console.log(key);
let keyCode = this.keyMapper.getKeyIDOfText(key.normalText); var keyCode = this.keyMapper.getKeyIDOfText(key.normalText);
if(keyCode != "Space") if(keyCode != "Space")
this.moveRow(key.row, key); this.moveRow(key.row, key);
@@ -218,16 +216,16 @@ class RightHand extends Hand {
} }
this.highlightOnFinger(key.fingerType); this.highlightOnFinger(key.fingerType);
} }
moveColumn(rowNo, key) { RightHand.prototype.moveColumn = function(rowNo, key) {
let rowIndex = rowNo - 1; var rowIndex = rowNo - 1;
this.hand.x = RightHand.DEFAULT_X_PX + (Keyboard.DEFAULT_KEY_SIZE_PX / 2) * rowIndex; this.hand.x = RightHand.DEFAULT_X_PX + (Keyboard.DEFAULT_KEY_SIZE_PX / 2) * rowIndex;
if(key === null) if(key === null)
return; return;
let keyCode = this.keyMapper.getKeyIDOfText(key.normalText); var keyCode = this.keyMapper.getKeyIDOfText(key.normalText);
switch(keyCode) { switch(keyCode) {
case "Key6": case "Key6":
case "KeyY": case "KeyY":
@@ -259,8 +257,7 @@ class RightHand extends Hand {
this.hand.x = RightHand.DEFAULT_X_PX + (Keyboard.DEFAULT_KEY_SIZE_PX / 2) * 6; this.hand.x = RightHand.DEFAULT_X_PX + (Keyboard.DEFAULT_KEY_SIZE_PX / 2) * 6;
break; break;
} }
}
} }
RightHand.DEFAULT_X_PX = 810; RightHand.DEFAULT_X_PX = 810;
+53 -56
View File
@@ -1,6 +1,4 @@
class KeyButton { function KeyButton(x, y, width, height, normalText, shiftText, handSide, row, fingerType, alignType) {
constructor(x, y, width, height, normalText, shiftText, handSide, row, fingerType, alignType) {
this.normalText = normalText; this.normalText = normalText;
this.shiftText = shiftText; this.shiftText = shiftText;
this.handSide = handSide; this.handSide = handSide;
@@ -28,10 +26,10 @@ class KeyButton {
this.highlightButtonStroke = this.makeHighlightButtonStrokeSprite(this.setting); this.highlightButtonStroke = this.makeHighlightButtonStrokeSprite(this.setting);
this.highlightButtonStroke.alpha = 0; this.highlightButtonStroke.alpha = 0;
} }
makeButtonSolidSprite(setting) { KeyButton.prototype.makeButtonSolidSprite = function(setting) {
let btnTexture = new Phaser.Graphics() var btnTexture = new Phaser.Graphics()
.beginFill(0xffffff, 0.5) .beginFill(0xffffff, 0.5)
// .lineStyle(setting.strokeWidthPx, 0xFFffff, 1) // .lineStyle(setting.strokeWidthPx, 0xFFffff, 1)
.drawRoundedRect(0, 0, setting.width, setting.height, setting.roundAmount) .drawRoundedRect(0, 0, setting.width, setting.height, setting.roundAmount)
@@ -43,10 +41,10 @@ class KeyButton {
setting.y, // - setting.height / 2, setting.y, // - setting.height / 2,
btnTexture btnTexture
); );
} }
makeButtonStrokeSprite(setting) { KeyButton.prototype.makeButtonStrokeSprite = function(setting) {
let btnTexture = new Phaser.Graphics() var btnTexture = new Phaser.Graphics()
.lineStyle(setting.strokeWidthPx, 0xaaaaaa, 1) .lineStyle(setting.strokeWidthPx, 0xaaaaaa, 1)
.drawRoundedRect(0, 0, setting.width, setting.height, setting.roundAmount) .drawRoundedRect(0, 0, setting.width, setting.height, setting.roundAmount)
.generateTexture(); .generateTexture();
@@ -56,11 +54,11 @@ class KeyButton {
setting.y, // - setting.height / 2, setting.y, // - setting.height / 2,
btnTexture btnTexture
); );
} }
makeHighlightButtonStrokeSprite(setting) { KeyButton.prototype.makeHighlightButtonStrokeSprite = function(setting) {
let strokeWidth = setting.strokeWidthPx * 2; var strokeWidth = setting.strokeWidthPx * 2;
let btnTexture = new Phaser.Graphics() var btnTexture = new Phaser.Graphics()
.lineStyle(strokeWidth, 0xfffff00, 1) .lineStyle(strokeWidth, 0xfffff00, 1)
.drawRoundedRect(0, 0, setting.width, setting.height, setting.roundAmount) .drawRoundedRect(0, 0, setting.width, setting.height, setting.roundAmount)
.generateTexture(); .generateTexture();
@@ -70,12 +68,12 @@ class KeyButton {
setting.y - strokeWidth / 4, setting.y - strokeWidth / 4,
btnTexture btnTexture
); );
} }
makeBaselineStrokeSprite(setting, width, height) { KeyButton.prototype.makeBaselineStrokeSprite = function(setting, width, height) {
let strokePx = setting.strokeWidthPx; var strokePx = setting.strokeWidthPx;
let baselineTexture = new Phaser.Graphics() var baselineTexture = new Phaser.Graphics()
.lineStyle(2, 0x888888) .lineStyle(2, 0x888888)
.moveTo(1, 1) .moveTo(1, 1)
.lineTo(16, 1) .lineTo(16, 1)
@@ -84,24 +82,24 @@ class KeyButton {
.lineTo(15, 0) .lineTo(15, 0)
.generateTexture(); .generateTexture();
let baselineSprite = game.add.sprite( var baselineSprite = game.add.sprite(
strokePx + setting.width / 2, strokePx + setting.width / 2,
strokePx + setting.height - 6, strokePx + setting.height - 6,
baselineTexture baselineTexture
); );
baselineSprite.anchor.set(0.5); baselineSprite.anchor.set(0.5);
return baselineSprite; return baselineSprite;
} }
makeText(setting, textContent) { KeyButton.prototype.makeText = function(setting, textContent) {
let fontStyle = { }; var fontStyle = { };
if(this.alignType === KeyButton.NORMAL_KEY) if(this.alignType === KeyButton.NORMAL_KEY)
setting.fontStyle.font = "20px Courier New"; setting.fontStyle.font = "20px Courier New";
else else
setting.fontStyle.font = "11px Courier New"; setting.fontStyle.font = "11px Courier New";
let OFFSET_X = 4, OFFSET_Y = 3; var OFFSET_X = 4, OFFSET_Y = 3;
let textPosX = 0, textPosY = 0; var textPosX = 0, textPosY = 0;
switch(this.alignType) { switch(this.alignType) {
case KeyButton.NORMAL_KEY: case KeyButton.NORMAL_KEY:
case KeyButton.NORMAL_FUNCTION_KEY: case KeyButton.NORMAL_FUNCTION_KEY:
@@ -125,7 +123,7 @@ class KeyButton {
break; break;
} }
let buttonText = game.add.text(textPosX, textPosY, textContent, setting.fontStyle); var buttonText = game.add.text(textPosX, textPosY, textContent, setting.fontStyle);
switch(this.alignType) { switch(this.alignType) {
case KeyButton.NORMAL_KEY: case KeyButton.NORMAL_KEY:
case KeyButton.NORMAL_FUNCTION_KEY: case KeyButton.NORMAL_FUNCTION_KEY:
@@ -146,10 +144,10 @@ class KeyButton {
} }
return buttonText; return buttonText;
} }
setNormalColor() { KeyButton.prototype.setNormalColor = function() {
switch(this.fingerType) { switch(this.fingerType) {
case KeyButton.THUMB: case KeyButton.THUMB:
this.buttonSolid.tint = 0x604d4d; this.buttonSolid.tint = 0x604d4d;
@@ -176,9 +174,9 @@ class KeyButton {
this.buttonSolid.tint = 0x4d4d4d; this.buttonSolid.tint = 0x4d4d4d;
// this.buttonSolid.alpha = 0; // this.buttonSolid.alpha = 0;
} }
} }
setTargetColor() { KeyButton.prototype.setTargetColor = function() {
switch(this.fingerType) { switch(this.fingerType) {
case KeyButton.THUMB: case KeyButton.THUMB:
this.buttonSolid.tint = 0xff8080; this.buttonSolid.tint = 0xff8080;
@@ -205,36 +203,35 @@ class KeyButton {
this.buttonSolid.tint = 0x202020; this.buttonSolid.tint = 0x202020;
// this.buttonSolid.alpha = 0; // this.buttonSolid.alpha = 0;
} }
}
setGoodPressColor() {
this.buttonSolid.tint = 0x0000ff;
}
setBadPressColor() {
this.buttonSolid.tint = 0xff0000;
}
showHighlight() {
this.highlightButtonStroke.alpha = 1;
}
hideHighlight() {
this.highlightButtonStroke.alpha = 0;
}
onShiftPressed() {
this.buttonText.text = this.shiftText;
}
onShiftUnpressed() {
this.buttonText.text = this.normalText;
}
} }
KeyButton.prototype.setGoodPressColor = function() {
this.buttonSolid.tint = 0x0000ff;
}
KeyButton.prototype.setBadPressColor = function() {
this.buttonSolid.tint = 0xff0000;
}
KeyButton.prototype.showHighlight = function() {
this.highlightButtonStroke.alpha = 1;
}
KeyButton.prototype.hideHighlight = function() {
this.highlightButtonStroke.alpha = 0;
}
KeyButton.prototype.onShiftPressed = function() {
this.buttonText.text = this.shiftText;
}
KeyButton.prototype.onShiftUnpressed = function() {
this.buttonText.text = this.normalText;
}
KeyButton.NONE_ICON = ""; KeyButton.NONE_ICON = "";
KeyButton.NONE_BUTTON_TEXT = ""; KeyButton.NONE_BUTTON_TEXT = "";
+27 -39
View File
@@ -1,36 +1,26 @@
class KeyData { function KeyData() {
constructor() {
this.functionKey = null; this.functionKey = null;
this.englishKey = null; this.englishKey = null;
this.koreanKey = null; this.koreanKey = null;
}
} }
class KeyTextData { function KeyTextData(normalText, shiftText) {
constructor(normalText, shiftText) {
this.normalText = normalText; this.normalText = normalText;
this.shiftText = shiftText; this.shiftText = shiftText;
}
} }
function KeyMapper() {
class KeyMapper {
constructor() {
this.keyboardKeyMap = {}; this.keyboardKeyMap = {};
this.inputKeyMap = {}; this.inputKeyMap = {};
this.registerFunctionKey(); this.registerFunctionKey();
this.registerEnglishKey(); this.registerEnglishKey();
this.registerKoreanKey(); this.registerKoreanKey();
} }
registerFunctionKey() { KeyMapper.prototype.registerFunctionKey = function() {
this.registerFunctionKeyTextData("Backquote", "`", "~"); this.registerFunctionKeyTextData("Backquote", "`", "~");
this.registerFunctionKeyTextData("Digit1", "1", "!"); this.registerFunctionKeyTextData("Digit1", "1", "!");
this.registerFunctionKeyTextData("Digit2", "2", "@"); this.registerFunctionKeyTextData("Digit2", "2", "@");
@@ -70,9 +60,9 @@ class KeyMapper {
this.registerFunctionKeyTextData("KoreanEnglish", "한/영", "한/영"); this.registerFunctionKeyTextData("KoreanEnglish", "한/영", "한/영");
this.registerFunctionKeyTextData("AltRight", "alt", "alt"); this.registerFunctionKeyTextData("AltRight", "alt", "alt");
this.registerFunctionKeyTextData("ControlRight", "ctrl", "ctrl"); this.registerFunctionKeyTextData("ControlRight", "ctrl", "ctrl");
} }
registerEnglishKey() { KeyMapper.prototype.registerEnglishKey = function() {
this.registerEnglishKeyTextData("KeyQ", "q", "Q"); this.registerEnglishKeyTextData("KeyQ", "q", "Q");
this.registerEnglishKeyTextData("KeyW", "w", "W"); this.registerEnglishKeyTextData("KeyW", "w", "W");
this.registerEnglishKeyTextData("KeyE", "e", "E"); this.registerEnglishKeyTextData("KeyE", "e", "E");
@@ -101,9 +91,9 @@ class KeyMapper {
this.registerEnglishKeyTextData("KeyB", "b", "B"); this.registerEnglishKeyTextData("KeyB", "b", "B");
this.registerEnglishKeyTextData("KeyN", "n", "N"); this.registerEnglishKeyTextData("KeyN", "n", "N");
this.registerEnglishKeyTextData("KeyM", "m", "M"); this.registerEnglishKeyTextData("KeyM", "m", "M");
} }
registerKoreanKey() { KeyMapper.prototype.registerKoreanKey = function() {
this.registerKoreanKeyTextData("KeyQ", "ㅂ", "ㅃ"); this.registerKoreanKeyTextData("KeyQ", "ㅂ", "ㅃ");
this.registerKoreanKeyTextData("KeyW", "ㅈ", "ㅉ"); this.registerKoreanKeyTextData("KeyW", "ㅈ", "ㅉ");
this.registerKoreanKeyTextData("KeyE", "ㄷ", "ㄸ"); this.registerKoreanKeyTextData("KeyE", "ㄷ", "ㄸ");
@@ -132,10 +122,10 @@ class KeyMapper {
this.registerKoreanKeyTextData("KeyB", "ㅠ", "ㅠ"); this.registerKoreanKeyTextData("KeyB", "ㅠ", "ㅠ");
this.registerKoreanKeyTextData("KeyN", "ㅜ", "ㅜ"); this.registerKoreanKeyTextData("KeyN", "ㅜ", "ㅜ");
this.registerKoreanKeyTextData("KeyM", "ㅡ", "ㅡ"); this.registerKoreanKeyTextData("KeyM", "ㅡ", "ㅡ");
} }
registerFunctionKeyTextData(keyID, normalText, shiftText) { KeyMapper.prototype.registerFunctionKeyTextData = function(keyID, normalText, shiftText) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
this.keyboardKeyMap[keyID] = new KeyData(); this.keyboardKeyMap[keyID] = new KeyData();
} }
@@ -147,9 +137,9 @@ class KeyMapper {
this.inputKeyMap[normalText] = keyID; this.inputKeyMap[normalText] = keyID;
if(this.inputKeyMap[shiftText] === undefined) if(this.inputKeyMap[shiftText] === undefined)
this.inputKeyMap[shiftText] = keyID; this.inputKeyMap[shiftText] = keyID;
} }
registerEnglishKeyTextData(keyID, normalText, shiftText) { KeyMapper.prototype.registerEnglishKeyTextData = function(keyID, normalText, shiftText) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
this.keyboardKeyMap[keyID] = new KeyData(); this.keyboardKeyMap[keyID] = new KeyData();
} }
@@ -161,9 +151,9 @@ class KeyMapper {
this.inputKeyMap[normalText] = keyID; this.inputKeyMap[normalText] = keyID;
if(this.inputKeyMap[shiftText] === undefined) if(this.inputKeyMap[shiftText] === undefined)
this.inputKeyMap[shiftText] = keyID; this.inputKeyMap[shiftText] = keyID;
} }
registerKoreanKeyTextData(keyID, normalText, shiftText) { KeyMapper.prototype.registerKoreanKeyTextData = function(keyID, normalText, shiftText) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
this.keyboardKeyMap[keyID] = new KeyData(); this.keyboardKeyMap[keyID] = new KeyData();
} }
@@ -175,10 +165,10 @@ class KeyMapper {
this.inputKeyMap[normalText] = keyID; this.inputKeyMap[normalText] = keyID;
if(this.inputKeyMap[shiftText] === undefined) if(this.inputKeyMap[shiftText] === undefined)
this.inputKeyMap[shiftText] = keyID; this.inputKeyMap[shiftText] = keyID;
} }
getNormalText(keyID, language) { KeyMapper.prototype.getNormalText = function(keyID, language) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
console.log(keyID); console.log(keyID);
return "?"; return "?";
@@ -187,7 +177,7 @@ class KeyMapper {
// console.log(keyID); // console.log(keyID);
// console.log(language); // console.log(language);
// console.log(this.keyboardKeyMap[keyID]); // console.log(this.keyboardKeyMap[keyID]);
let keyData = this.keyboardKeyMap[keyID]; var keyData = this.keyboardKeyMap[keyID];
if(language === Keyboard.ENGLISH && keyData.englishKey !== null) { if(language === Keyboard.ENGLISH && keyData.englishKey !== null) {
return keyData.englishKey.normalText; return keyData.englishKey.normalText;
} }
@@ -200,9 +190,9 @@ class KeyMapper {
else { else {
return "?"; return "?";
} }
} }
getShiftText(keyID, language) { KeyMapper.prototype.getShiftText = function(keyID, language) {
if(this.keyboardKeyMap[keyID] === undefined) { if(this.keyboardKeyMap[keyID] === undefined) {
console.log(keyID); console.log(keyID);
return "?"; return "?";
@@ -211,7 +201,7 @@ class KeyMapper {
// console.log(keyID); // console.log(keyID);
// console.log(language); // console.log(language);
// console.log(this.keyboardKeyMap[keyID]); // console.log(this.keyboardKeyMap[keyID]);
let keyData = this.keyboardKeyMap[keyID]; var keyData = this.keyboardKeyMap[keyID];
if(language === Keyboard.ENGLISH && keyData.englishKey !== null) { if(language === Keyboard.ENGLISH && keyData.englishKey !== null) {
return keyData.englishKey.shiftText; return keyData.englishKey.shiftText;
} }
@@ -224,17 +214,17 @@ class KeyMapper {
else { else {
return "?"; return "?";
} }
} }
getKeyIDOfText(text) { KeyMapper.prototype.getKeyIDOfText = function(text) {
return this.inputKeyMap[text]; return this.inputKeyMap[text];
} }
isShiftText(text) { KeyMapper.prototype.isShiftText = function(text) {
let keyID = this.getKeyIDOfText(text); var keyID = this.getKeyIDOfText(text);
let keyData = this.keyboardKeyMap[keyID]; var keyData = this.keyboardKeyMap[keyID];
if(keyData.englishKey !== null && keyData.englishKey.shiftText === text) if(keyData.englishKey !== null && keyData.englishKey.shiftText === text)
return true; return true;
@@ -244,6 +234,4 @@ class KeyMapper {
return true; return true;
return false; return false;
}
} }
+62 -66
View File
@@ -1,6 +1,4 @@
class Keyboard { function Keyboard(keyMapper, language) {
constructor(keyMapper, language) {
this.keyMapper = keyMapper; this.keyMapper = keyMapper;
this.language = language; this.language = language;
@@ -22,13 +20,13 @@ class Keyboard {
// game.input.keyboard.processKeyUp = this.keyUp; // game.input.keyboard.processKeyUp = this.keyUp;
let shiftKey = game.input.keyboard.addKey(Phaser.KeyCode.SHIFT); var shiftKey = game.input.keyboard.addKey(Phaser.KeyCode.SHIFT);
shiftKey.onDown.add(this.shifted, this); shiftKey.onDown.add(this.shifted, this);
shiftKey.onUp.add(this.unshifted, this); shiftKey.onUp.add(this.unshifted, this);
this.initKeyData(); this.initKeyData();
for(let i = 0; i < this.keyDataList.length; i++) { for(var i = 0; i < this.keyDataList.length; i++) {
this.keyList[i] = new KeyButton( this.keyList[i] = new KeyButton(
this.keyDataList[i].x, this.keyDataList[i].x,
this.keyDataList[i].y, this.keyDataList[i].y,
@@ -44,45 +42,45 @@ class Keyboard {
this.allKeyHash[this.keyDataList[i].keyID] = this.keyList[i]; this.allKeyHash[this.keyDataList[i].keyID] = this.keyList[i];
} }
} }
hideHighlight(text) { Keyboard.prototype.hideHighlight = function(text) {
let keyID = this.keyMapper.getKeyIDOfText(text); var keyID = this.keyMapper.getKeyIDOfText(text);
this.allKeyHash[keyID].hideHighlight(); this.allKeyHash[keyID].hideHighlight();
if(!this.keyMapper.isShiftText(text)) if(!this.keyMapper.isShiftText(text))
return; return;
let handSide = this.allKeyHash[keyID].handSide; var handSide = this.allKeyHash[keyID].handSide;
if(handSide === KeyButton.LEFT_HAND) if(handSide === KeyButton.LEFT_HAND)
this.allKeyHash["ShiftRight"].hideHighlight(); this.allKeyHash["ShiftRight"].hideHighlight();
else else
this.allKeyHash["ShiftLeft"].hideHighlight(); this.allKeyHash["ShiftLeft"].hideHighlight();
} }
showHighlight(text) { Keyboard.prototype.showHighlight = function(text) {
let keyID = this.keyMapper.getKeyIDOfText(text); var keyID = this.keyMapper.getKeyIDOfText(text);
let key = this.allKeyHash[keyID]; var key = this.allKeyHash[keyID];
key.showHighlight(); key.showHighlight();
} }
getKeyOfText(text) { Keyboard.prototype.getKeyOfText = function(text) {
let keyID = this.keyMapper.getKeyIDOfText(text); var keyID = this.keyMapper.getKeyIDOfText(text);
return this.allKeyHash[keyID]; return this.allKeyHash[keyID];
} }
getKey(keyID) { Keyboard.prototype.getKey = function(keyID) {
return this.allKeyHash[keyID]; return this.allKeyHash[keyID];
} }
keyDown(char) { Keyboard.prototype.keyDown = function(char) {
let keyCode = char.code; var keyCode = char.code;
this.setPressedSprite(keyCode); this.setPressedSprite(keyCode);
} }
setPressedSprite(keyCode) { Keyboard.prototype.setPressedSprite = function(keyCode) {
let keyID = this.keyMapper.getKeyIDOfText(keyCode); var keyID = this.keyMapper.getKeyIDOfText(keyCode);
let key = this.allKeyHash[keyID]; var key = this.allKeyHash[keyID];
if(key === undefined) { if(key === undefined) {
console.log(keyCode+ " is pressed but not registered to KeyMapper"); console.log(keyCode+ " is pressed but not registered to KeyMapper");
return; return;
@@ -98,45 +96,45 @@ class Keyboard {
} }
key.setTargetColor(); key.setTargetColor();
} }
keyUp(char) { Keyboard.prototype.keyUp = function(char) {
let keyCode = char.code; var keyCode = char.code;
this.setNormalSprite(keyCode); this.setNormalSprite(keyCode);
} }
setNormalSprite(keyCode) { Keyboard.prototype.setNormalSprite = function(keyCode) {
let keyID = this.keyMapper.getKeyIDOfText(keyCode); var keyID = this.keyMapper.getKeyIDOfText(keyCode);
let key = this.allKeyHash[keyID]; var key = this.allKeyHash[keyID];
if(key !== undefined) if(key !== undefined)
key.setNormalColor(); key.setNormalColor();
} }
shifted() { Keyboard.prototype.shifted = function() {
for(let i = 0; i < this.keyDataList.length; i++) { for(var i = 0; i < this.keyDataList.length; i++) {
this.keyList[i].onShiftPressed(); this.keyList[i].onShiftPressed();
} }
} }
unshifted() { Keyboard.prototype.unshifted = function() {
for(let i = 0; i < this.keyDataList.length; i++) { for(var i = 0; i < this.keyDataList.length; i++) {
this.keyList[i].onShiftUnpressed(); this.keyList[i].onShiftUnpressed();
} }
} }
keyPress(char) { Keyboard.prototype.keyPress = function(char) {
// self.checkTypingContents(event); // self.checkTypingContents(event);
// console.log(char); // console.log(char);
if(game.input.keyboard.isDown(Phaser.Keyboard.SHIFT)) if(game.input.keyboard.isDown(Phaser.Keyboard.SHIFT))
console.log("shift is pressed"); console.log("shift is pressed");
} }
makeKeyDataObject(keyID, normalText, shiftText, handSide, row, fingerType, x, y, width, height, alignType) { Keyboard.prototype.makeKeyDataObject = function(keyID, normalText, shiftText, handSide, row, fingerType, x, y, width, height, alignType) {
let keyDataObject = {}; var keyDataObject = {};
keyDataObject.keyID = keyID; keyDataObject.keyID = keyID;
keyDataObject.normalText = normalText; keyDataObject.normalText = normalText;
keyDataObject.shiftText = shiftText; keyDataObject.shiftText = shiftText;
@@ -150,9 +148,9 @@ class Keyboard {
keyDataObject.alignType = alignType; keyDataObject.alignType = alignType;
return keyDataObject; return keyDataObject;
} }
makeNextNormalKeyDataObject(keyID, prevKeyData, normalText, shiftText, handSide, fingerType) { Keyboard.prototype.makeNextNormalKeyDataObject = function(keyID, prevKeyData, normalText, shiftText, handSide, fingerType) {
return this.makeKeyDataObject( return this.makeKeyDataObject(
keyID, keyID,
normalText, normalText,
@@ -166,14 +164,14 @@ class Keyboard {
Keyboard.DEFAULT_KEY_SIZE_PX, Keyboard.DEFAULT_KEY_SIZE_PX,
KeyButton.NORMAL_KEY KeyButton.NORMAL_KEY
); );
} }
addFunctionKeyData(keyID, handSide, row, fingerType, x, y, width, height, type) { Keyboard.prototype.addFunctionKeyData = function(keyID, handSide, row, fingerType, x, y, width, height, type) {
let normalText = this.keyMapper.getNormalText(keyID, this.language); var normalText = this.keyMapper.getNormalText(keyID, this.language);
let shiftText = this.keyMapper.getShiftText(keyID, this.language); var shiftText = this.keyMapper.getShiftText(keyID, this.language);
let newKey = this.makeKeyDataObject( var newKey = this.makeKeyDataObject(
keyID, keyID,
normalText, shiftText, normalText, shiftText,
handSide, row, fingerType, handSide, row, fingerType,
@@ -183,14 +181,14 @@ class Keyboard {
); );
this.keyDataList[this.keyIndex] = newKey; this.keyDataList[this.keyIndex] = newKey;
this.keyIndex++; this.keyIndex++;
} }
addNextFunctionKeyData(keyID, handSide, fingerType, width, height, type) { Keyboard.prototype.addNextFunctionKeyData = function(keyID, handSide, fingerType, width, height, type) {
let prevKey = this.keyDataList[this.keyIndex - 1]; var prevKey = this.keyDataList[this.keyIndex - 1];
let normalText = this.keyMapper.getNormalText(keyID, this.language); var normalText = this.keyMapper.getNormalText(keyID, this.language);
let shiftText = this.keyMapper.getShiftText(keyID, this.language); var shiftText = this.keyMapper.getShiftText(keyID, this.language);
let newKey = this.makeKeyDataObject( var newKey = this.makeKeyDataObject(
keyID, keyID,
normalText, shiftText, normalText, shiftText,
handSide, prevKey.row, fingerType, handSide, prevKey.row, fingerType,
@@ -202,14 +200,14 @@ class Keyboard {
this.keyIndex++; this.keyIndex++;
// this.normalKeyHash[keyID] = newKey; // this.normalKeyHash[keyID] = newKey;
} }
addNextNormalKeyData(keyID, handSide, fingerType) { Keyboard.prototype.addNextNormalKeyData = function(keyID, handSide, fingerType) {
let prevKey = this.keyDataList[this.keyIndex - 1]; var prevKey = this.keyDataList[this.keyIndex - 1];
let normalText = this.keyMapper.getNormalText(keyID, this.language); var normalText = this.keyMapper.getNormalText(keyID, this.language);
let shiftText = this.keyMapper.getShiftText(keyID, this.language); var shiftText = this.keyMapper.getShiftText(keyID, this.language);
let newKey = this.makeNextNormalKeyDataObject( var newKey = this.makeNextNormalKeyDataObject(
keyID, keyID,
prevKey, prevKey,
normalText, shiftText, normalText, shiftText,
@@ -219,11 +217,11 @@ class Keyboard {
this.keyIndex++; this.keyIndex++;
this.normalKeyHash[keyID] = newKey; this.normalKeyHash[keyID] = newKey;
} }
initKeyData(keyMapper) { Keyboard.prototype.initKeyData = function(keyMapper) {
// row 1 // row 1
this.addFunctionKeyData( this.addFunctionKeyData(
"Backquote", "Backquote",
@@ -414,8 +412,6 @@ class Keyboard {
Keyboard.DEFAULT_KEY_SIZE_PX, Keyboard.DEFAULT_KEY_SIZE_PX,
KeyButton.RIGHT_FUNCTION_KEY KeyButton.RIGHT_FUNCTION_KEY
); );
}
} }
+11 -17
View File
@@ -1,17 +1,11 @@
///////////////////////////// var Loading = {
// Loading
// var x = 32; preload: function() {
// var y = 80;
class Loading {
preload() {
// this.game.load.image('loadingbar', './image/phaser.png'); // this.game.load.image('loadingbar', './image/phaser.png');
} },
create() { create: function() {
// let userID = sessionStorage.getItem("UserID"); // var userID = sessionStorage.getItem("UserID");
// console.log("userID : " + userID); // console.log("userID : " + userID);
// this.game.stage.backgroundColor = '#4d4d4d'; // this.game.stage.backgroundColor = '#4d4d4d';
@@ -30,9 +24,9 @@ class Loading {
this.game.load.onLoadComplete.add(this.loadComplete, this); this.game.load.onLoadComplete.add(this.loadComplete, this);
this.startLoading(); this.startLoading();
} },
startLoading() { startLoading: function() {
this.game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); this.game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
this.game.load.image('hand_palm', '../../../resources/image/ui/hand_palm.png'); this.game.load.image('hand_palm', '../../../resources/image/ui/hand_palm.png');
@@ -70,9 +64,9 @@ class Loading {
// this.game.load.image('medal_bronze', './image/medal_bronze.png'); // this.game.load.image('medal_bronze', './image/medal_bronze.png');
this.game.load.start(); this.game.load.start();
} },
fileComplete(progress, cacheKey, success, totalLoaded, totalFiles) { fileComplete: function(progress, cacheKey, success, totalLoaded, totalFiles) {
// this.preloadBar.alpha = progress / 100; // this.preloadBar.alpha = progress / 100;
// console.log('progress : ' + progress); // console.log('progress : ' + progress);
@@ -88,9 +82,9 @@ class Loading {
// x = 32; // x = 32;
// y += 332; // y += 332;
// } // }
} },
loadComplete(progress, cacheKey, success, totalLoaded, totalFiles) { loadComplete: function(progress, cacheKey, success, totalLoaded, totalFiles) {
// this.preloadBar.alpha = 1; // this.preloadBar.alpha = 1;
if(isDebugMode()) { if(isDebugMode()) {
+15 -19
View File
@@ -1,11 +1,8 @@
class StageTimer { function StageTimer(stageTimerSec, onTimeOver) {
constructor(stageTimerSec, onTimeOver) {
this.stageTimerSec = stageTimerSec; this.stageTimerSec = stageTimerSec;
this.onTimeOver = onTimeOver; this.onTimeOver = onTimeOver;
let fontStyle = StageTimer.DEFAULT_TEXT_FONT; var fontStyle = StageTimer.DEFAULT_TEXT_FONT;
fontStyle.align = "right"; fontStyle.align = "right";
fontStyle.boundsAlignH = "right"; fontStyle.boundsAlignH = "right";
@@ -23,25 +20,25 @@ class StageTimer {
// this.label.strokeThickness = 3; // this.label.strokeThickness = 3;
this.timerEvent = null; this.timerEvent = null;
}; };
start() { StageTimer.prototype.start = function() {
this.timeLeft = this.stageTimerSec; this.timeLeft = this.stageTimerSec;
this.printTime(); this.printTime();
if(this.timerEvent === null) if(this.timerEvent === null)
this.timerEvent = game.time.events.loop(Phaser.Timer.SECOND, this.updateTimer, this); this.timerEvent = game.time.events.loop(Phaser.Timer.SECOND, this.updateTimer, this);
} }
pause() { StageTimer.prototype.pause = function() {
} }
stop() { StageTimer.prototype.stop = function() {
if(this.timerEvent) if(this.timerEvent)
this.removeTimer(); this.removeTimer();
this.timerText.text = "시간 끝"; this.timerText.text = "시간 끝";
} }
updateTimer() { StageTimer.prototype.updateTimer = function() {
this.timeLeft--; this.timeLeft--;
if(this.timeLeft === 0) { if(this.timeLeft === 0) {
this.stop(); this.stop();
@@ -49,19 +46,18 @@ class StageTimer {
} else { } else {
this.printTime(); this.printTime();
} }
} }
printTime() { StageTimer.prototype.printTime = function() {
this.timerText.text = this.timeLeft.toString() + "초"; this.timerText.text = this.timeLeft.toString() + "초";
} }
removeTimer() { StageTimer.prototype.removeTimer = function() {
game.time.events.remove(this.timerEvent); game.time.events.remove(this.timerEvent);
this.timerEvent = null; this.timerEvent = null;
}
} }
StageTimer.FONT_HEIGHT_PX = 70; StageTimer.FONT_HEIGHT_PX = 70;
StageTimer.DEFAULT_TEXT_FONT = { StageTimer.DEFAULT_TEXT_FONT = {
+18 -21
View File
@@ -1,9 +1,7 @@
class TypingScore { function TypingScore() {
constructor() {
this.typingCount = 0; this.typingCount = 0;
let fontStyle = TypingScore.DEFAULT_TEXT_FONT; var fontStyle = TypingScore.DEFAULT_TEXT_FONT;
fontStyle.align = "right"; fontStyle.align = "right";
fontStyle.boundsAlignH = "right"; fontStyle.boundsAlignH = "right";
@@ -24,34 +22,33 @@ class TypingScore {
// this.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); // this.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// this.scoreText.stroke = '#000'; // this.scoreText.stroke = '#000';
// this.scoreText.strokeThickness = 3; // this.scoreText.strokeThickness = 3;
}; };
score() { TypingScore.prototype.score = function() {
return this.typingCount; return this.typingCount;
} }
increase() { TypingScore.prototype.increase = function() {
this.typingCount++; this.typingCount++;
this.print(this.typingCount); this.print(this.typingCount);
} }
reset() { TypingScore.prototype.reset = function() {
this.typingCount = 0; this.typingCount = 0;
this.print(this.typingCount); this.print(this.typingCount);
}
print(typingCount) {
this.scoreText.text = typingCount;
}
} }
TypingScore.prototype.print = function(typingCount) {
this.scoreText.text = typingCount;
}
TypingScore.SCORE_POS_Y = 35; TypingScore.SCORE_POS_Y = 35;
TypingScore.DEFAULT_TEXT_FONT = { TypingScore.DEFAULT_TEXT_FONT = {
font: "38px Arial", font: "38px Arial",
align: "center", align: "center",
boundsAlignH: "center", // left, center. right boundsAlignH: "center", // left, center. right
boundsAlignV: "middle", // top, middle, bottom boundsAlignV: "middle", // top, middle, bottom
fill: "#fff" fill: "#fff"
}; };
+5 -8
View File
@@ -1,7 +1,5 @@
class AverageTypingSpeed { function AverageTypingSpeed() {
var fontStyle = AverageTypingSpeed.DEFAULT_TEXT_FONT;
constructor() {
let fontStyle = AverageTypingSpeed.DEFAULT_TEXT_FONT;
fontStyle.align = "right"; fontStyle.align = "right";
fontStyle.boundsAlignH = "right"; fontStyle.boundsAlignH = "right";
@@ -22,14 +20,13 @@ class AverageTypingSpeed {
// this.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); // this.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// this.label.stroke = '#000'; // this.label.stroke = '#000';
// this.label.strokeThickness = 3; // this.label.strokeThickness = 3;
}; };
print(typingSpeed) { AverageTypingSpeed.prototype.print = function(typingSpeed) {
this.typingSpeedText.text = typingSpeed; this.typingSpeedText.text = typingSpeed;
}
} }
AverageTypingSpeed.FONT_HEIGHT_PX = 30; AverageTypingSpeed.FONT_HEIGHT_PX = 30;
AverageTypingSpeed.DEFAULT_TEXT_FONT = { AverageTypingSpeed.DEFAULT_TEXT_FONT = {
+39 -42
View File
@@ -1,13 +1,10 @@
///////////////////////////// var TypingTest = {
// TypingTest
class TypingTest { create: function() {
create() {
self = this; self = this;
this.initTypingData(); this.initTypingData();
sessionStorageManager.isNewBestRecrd = false; sessionStorageManager.setIsNewBestRecord(false);
game.stage.backgroundColor = '#4d4d4d'; game.stage.backgroundColor = '#4d4d4d';
@@ -105,14 +102,14 @@ class TypingTest {
// bottom ui // bottom ui
let screenBottomUI = new ScreenBottomUI(); let screenBottomUI = new ScreenBottomUI();
screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.bestRecord); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord());
screenBottomUI.printCenterText(sessionStorageManager.playingAppKoreanName); screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName());
screenBottomUI.printRightText(sessionStorageManager.playerName); screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
this.startGame(); this.startGame();
// this.countDown(); // this.countDown();
} },
/* /*
countDown() { countDown() {
@@ -145,30 +142,30 @@ class TypingTest {
} }
*/ */
startGame() { startGame: function() {
this.averageTypingSpeedText.print(0); this.averageTypingSpeedText.print(0);
this.showTypingTestContents(); this.showTypingTestContents();
this.showPlayingWordNumber(); this.showPlayingWordNumber();
} },
gameOver() { gameOver: function() {
let gameOverText = new GameOverText(); let gameOverText = new GameOverText();
this.animalOnTitle.stopAnimation(); this.animalOnTitle.stopAnimation();
game.time.events.add(Phaser.Timer.SECOND * 2, this.goResult, this); game.time.events.add(Phaser.Timer.SECOND * 2, this.goResult, this);
} },
goResult() { goResult: function() {
sessionStorageManager.record = this.typingRecordTotal; sessionStorageManager.setRecord(this.typingRecordTotal);
if(sessionStorageManager.record > sessionStorageManager.bestRecord) if(sessionStorageManager.getRecord() > sessionStorageManager.getBestRecord())
sessionStorageManager.bestRecord = sessionStorageManager.record; sessionStorageManager.setBestRecord(sessionStorageManager.record);
location.href = '../../web/client/result.html'; location.href = '../../web/client/result.html';
} },
initTypingData() { initTypingData: function() {
let typingTextMan = new TypingTextManager(); let typingTextMan = new TypingTextManager();
let typingPracticeContents = this.getTypingTestContents(); let typingPracticeContents = this.getTypingTestContents();
@@ -190,10 +187,10 @@ class TypingTest {
this.typingLetterCountTotal = 0; this.typingLetterCountTotal = 0;
this.typingRecordTotal = 0; this.typingRecordTotal = 0;
} },
getTypingTestContents() { getTypingTestContents: function() {
let typingTestContents = this.loadTestContent(); let typingTestContents = this.loadTestContent();
// console.log('playingStageData.language : ' + playingStageData.language); // console.log('playingStageData.language : ' + playingStageData.language);
// console.log('playingStageData.level : ' + playingStageData.level); // console.log('playingStageData.level : ' + playingStageData.level);
@@ -207,14 +204,14 @@ class TypingTest {
} }
return typingTestContents; return typingTestContents;
} },
loadTestContent() { loadTestContent: function() {
let appName = ""; let appName = "";
if(isTypingTestStage()) if(isTypingTestStage())
appName = sessionStorageManager.playingAppName.substring(5); appName = sessionStorageManager.getPlayingAppName().substring(5);
else if(isTypingPracticeStage()) else if(isTypingPracticeStage())
appName = sessionStorageManager.playingAppName.substring(9); appName = sessionStorageManager.getPlayingAppName().substring(9);
let testContent = []; let testContent = [];
switch(appName) { switch(appName) {
@@ -276,9 +273,9 @@ class TypingTest {
} }
return testContent; return testContent;
} },
showTypingTestContents() { showTypingTestContents: function() {
for(let i = 0; i < TypingTest.TYPING_CONTENT_DONE_COUNT; i++) { for(let i = 0; i < TypingTest.TYPING_CONTENT_DONE_COUNT; i++) {
let doneIndex = this.typingIndex - i - 1; let doneIndex = this.typingIndex - i - 1;
if(doneIndex < 0) { if(doneIndex < 0) {
@@ -304,15 +301,15 @@ class TypingTest {
else else
this.textTypingContentPreview[i].text = ""; this.textTypingContentPreview[i].text = "";
} }
} },
resetTypingContent() { resetTypingContent: function() {
this.textTypingContent.clearColors(); this.textTypingContent.clearColors();
this.textTypingContent.addColor(TypingTest.COLOR_CONTENT_INPUT, 0); this.textTypingContent.addColor(TypingTest.COLOR_CONTENT_INPUT, 0);
this.inputTextContent.canvasInput.value(''); this.inputTextContent.canvasInput.value('');
} },
checkTypingContents(evnet) { checkTypingContents: function(evnet) {
if(event.keyCode == Phaser.Keyboard.ENTER) { if(event.keyCode == Phaser.Keyboard.ENTER) {
// console.log("### enter ###"); // console.log("### enter ###");
let inputContent = this.inputTextContent.canvasInput.value(); let inputContent = this.inputTextContent.canvasInput.value();
@@ -336,9 +333,9 @@ class TypingTest {
this.showTypingContentHighlight(); this.showTypingContentHighlight();
} }
} },
showTypingContentHighlight() { showTypingContentHighlight: function() {
let typingContent = this.typingRandomContents[this.typingIndex]; let typingContent = this.typingRandomContents[this.typingIndex];
let inputContent = this.inputTextContent.canvasInput.value(); let inputContent = this.inputTextContent.canvasInput.value();
@@ -358,9 +355,9 @@ class TypingTest {
return; return;
} }
} }
} },
calculateTypingRecord(typingContent) { calculateTypingRecord: function(typingContent) {
// console.log('입력 단어 : ' + this.typingRandomContents[this.typingIndex]); // console.log('입력 단어 : ' + this.typingRandomContents[this.typingIndex]);
this.isTyping = false; this.isTyping = false;
@@ -404,20 +401,20 @@ class TypingTest {
this.animalOnTitle.tweenAnimation(Animal.ANIMATION_TYPE_CHANGE); this.animalOnTitle.tweenAnimation(Animal.ANIMATION_TYPE_CHANGE);
this.animalOnTitle.startAnimation(); this.animalOnTitle.startAnimation();
} },
playNextContent() { playNextContent: function() {
this.typingIndex++; this.typingIndex++;
this.showTypingTestContents(); this.showTypingTestContents();
this.showPlayingWordNumber(); this.showPlayingWordNumber();
this.resetTypingContent(); this.resetTypingContent();
} },
showPlayingWordNumber() { showPlayingWordNumber: function() {
this.contentProgressText.print(this.typingIndex + 1, this.typingContentLength); this.contentProgressText.print(this.typingIndex + 1, this.typingContentLength);
} },
setTimeTypingStart() { setTimeTypingStart: function() {
this.timeTypingStart = game.time.elapsedSince(0); this.timeTypingStart = game.time.elapsedSince(0);
let timeGap = this.timeTypingStart - this.timeTypingEnd; let timeGap = this.timeTypingStart - this.timeTypingEnd;
+12 -18
View File
@@ -1,17 +1,11 @@
///////////////////////////// var Loading = {
// Loading
// var x = 32; preload: function() {
// var y = 80;
class Loading {
preload() {
// this.game.load.image('loadingbar', './image/phaser.png'); // this.game.load.image('loadingbar', './image/phaser.png');
} },
create() { create: function() {
// let userID = sessionStorage.getItem("UserID"); // var userID = sessionStorage.getItem("UserID");
// console.log("userID : " + userID); // console.log("userID : " + userID);
// this.game.stage.backgroundColor = '#4d4d4d'; // this.game.stage.backgroundColor = '#4d4d4d';
@@ -30,9 +24,9 @@ class Loading {
this.game.load.onLoadComplete.add(this.loadComplete, this); this.game.load.onLoadComplete.add(this.loadComplete, this);
this.startLoading(); this.startLoading();
} },
startLoading() { startLoading: function() {
this.game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); this.game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
Animal.loadResources(); Animal.loadResources();
@@ -61,9 +55,9 @@ class Loading {
// this.game.load.image('medal_bronze', './image/medal_bronze.png'); // this.game.load.image('medal_bronze', './image/medal_bronze.png');
this.game.load.start(); this.game.load.start();
} },
fileComplete(progress, cacheKey, success, totalLoaded, totalFiles) { fileComplete: function(progress, cacheKey, success, totalLoaded, totalFiles) {
// this.preloadBar.alpha = progress / 100; // this.preloadBar.alpha = progress / 100;
// console.log('progress : ' + progress); // console.log('progress : ' + progress);
@@ -79,9 +73,9 @@ class Loading {
// x = 32; // x = 32;
// y += 332; // y += 332;
// } // }
} },
loadComplete(progress, cacheKey, success, totalLoaded, totalFiles) { loadComplete: function(progress, cacheKey, success, totalLoaded, totalFiles) {
// this.preloadBar.alpha = 1; // this.preloadBar.alpha = 1;
if(isDebugMode()) { if(isDebugMode()) {
@@ -93,5 +87,5 @@ class Loading {
// this.startMenu(); // this.startMenu();
// this.startTypingTestStage(); // this.startTypingTestStage();
// this.startTypingTestResult(); // this.startTypingTestResult();
} },
} }