Fix: save and load appGroup and language in main menu

This commit is contained in:
2019-08-16 21:22:08 +09:00
parent 6e4836fff0
commit 753871c629
3 changed files with 183 additions and 258 deletions
+2
View File
@@ -60,6 +60,8 @@ function printSessionStorage() {
console.log("record : " + sessionStorageManager.getRecord());
console.log("appHighestRecord : " + sessionStorageManager.getAppHighestRecord());
console.log("writingID : " + sessionStorageManager.getWritingID());
console.log("appGroup : " + sessionStorageManager.getAppGroup());
console.log("language : " + sessionStorageManager.getLanguage());
}
function isLogin() {
+17
View File
@@ -115,6 +115,23 @@ SessionStorageManager.prototype.getWritingID = function() {
return sessionStorage.getItem("writingID");
}
// main menu
SessionStorageManager.prototype.setAppGroup = function(value) {
sessionStorage.setItem("appGroup", value);
}
SessionStorageManager.prototype.getAppGroup = function() {
return sessionStorage.getItem("appGroup");
}
SessionStorageManager.prototype.setLanguage = function(value) {
sessionStorage.setItem("language", value);
}
SessionStorageManager.prototype.getLanguage = function() {
return sessionStorage.getItem("language");
}
SessionStorageManager.prototype.resetPlayingAppData = function() {
this.removeItem("playingAppID");
this.removeItem("playingAppName");
+164 -258
View File
@@ -39,7 +39,15 @@ MainMenu.prototype.create = function() {
graphics.drawRect(0, 0, GAME_SCREEN_SIZE.x, MainMenu.MAIN_MENU_HEIGHT);
this.appGroupTabLayout = null;
this.typingPracticeGroupTab = null;
this.typingTestGroupTab = null;
this.typingExamGroupTab = null;
this.typingPlayGroupTab = null;
this.mousePlayGroupTab = null;
this.languageTabLayout = null;
this.koreanTab = null;
this.englishTab = null;
this.typingAppButtons = new Array();
this.makeTypingAppButtons();
@@ -48,10 +56,16 @@ MainMenu.prototype.create = function() {
this.playAppButtons = new Array();
this.makePlayAppButtons();
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE;
// this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_EXAM;
this.selectedLanguage = MainMenu.LANGUAGE_KOREAN;
// this.animalRecordList.printScore(Animal.TYPE_PRACTICE);
if(sessionStorageManager.getAppGroup() === null)
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE;
else
this.selectedAppGroup = parseInt(sessionStorageManager.getAppGroup());
if(sessionStorageManager.getLanguage() === null)
this.selectedLanguage = MainMenu.LANGUAGE_KOREAN;
else
this.selectedLanguage = parseInt(sessionStorageManager.getLanguage());
}
MainMenu.prototype.fontLoaded = function() {
@@ -67,20 +81,21 @@ MainMenu.prototype.fontLoaded = function() {
// top UI
this.makeButtons();
this.makeAppGroupTab();
// bottom UI
this.makeAnimalRecordList();
this.makeLanguageTab();
// this.animalRecordList.hide();
// this.languageTabLayout.hide();
this.backButton.applyLoadedFont();
this.settingButton.applyLoadedFont();
this.makeAppGroupTab();
this.makeLanguageTab();
this.appGroupTabLayout.applyLoadedFont();
this.animalRecordList.applyLoadedFont();
this.languageTabLayout.hide();
this.languageTabLayout.applyLoadedFont();
this.makeAnimalRecordList();
this.animalRecordList.hide();
this.animalRecordList.applyLoadedFont();
// welcome message
new WelcomePlayerText(sessionStorageManager.getPlayerName());
if(isExperiencePlayerAccount()) {
@@ -90,9 +105,15 @@ MainMenu.prototype.fontLoaded = function() {
);
}
this.loadAppData();
this.activeSavedAppGroupTab();
this.activeSavedLanguageTab();
// this.loadAppData();
}
MainMenu.prototype.back = function() {
sessionStorageManager.clear();
location.href = '../../web/client/login.html';
@@ -121,6 +142,9 @@ MainMenu.prototype.loadAllowEditEnterCode = function(screenTopUI) {
}
MainMenu.prototype.loadAppData = function() {
// this.activeSavedAppGroupTab();
// this.activeSavedLanguageTab();
this.dbService.requestMainMenuAppData(
this.selectedAppGroup,
this.selectedLanguage,
@@ -133,21 +157,10 @@ MainMenu.prototype.loadAppData = function() {
console.log(replyJSON);
}).bind(this)
);
/*
var dbConnectManager = new DBConnectManager();
dbConnectManager.requestMenuAppList(
sessionStorageManager.getMaestroID(),
(function(replyJSON) {
this.loadSucceeded(replyJSON);
}).bind(this),
(function(replyJSON) {
this.loadFailed(replyJSON);
}).bind(this)
);
*/
}
MainMenu.prototype.makeTypingAppButtons = function() {
var offsetX = 95;
var startY = 190;
@@ -175,7 +188,7 @@ MainMenu.prototype.makeTypingExamButtons = function() {
var y = startY + Math.floor(i / 2) * offsetY;
var button = new TypingExamButton(x, y);
// button.setActive(false);
button.setActive(false);
this.typingExamButtons.push(button);
}
}
@@ -420,32 +433,6 @@ MainMenu.prototype.updatePlayAppButtons = function(appData) {
}
/*
MainMenu.prototype.loadSucceeded = function(replyJSON) {
// console.log(replyJSON);
this.makeMouseAppButtons(
replyJSON.MouseAppList,
replyJSON.MouseActiveAppList
);
this.makeTypingButtons(
replyJSON.TypingPracticeAppCount,
replyJSON.TypingTestAppCount,
replyJSON.TypingAppList,
replyJSON.TypingActiveAppList
);
}
MainMenu.prototype.hasApp = function(appID, appList) {
for(var i = 0; i < appList.length; i++) {
if(appList[i].AppID === appID)
return true;
}
return false;
}
*/
MainMenu.prototype.makeButtons = function() {
this.backButton = new BackButton(
(function() { console.log("back"); }).bind(this)
@@ -456,85 +443,133 @@ MainMenu.prototype.makeButtons = function() {
);
}
MainMenu.prototype.activeSavedAppGroupTab = function() {
switch(this.selectedAppGroup) {
case MainMenu.APP_GROUP_TYPING_PRACTICE:
this.appGroupTabLayout.selectedTab(this.typingPracticeGroupTab);
this.onClickTypingPracticeGroupTab();
break;
case MainMenu.APP_GROUP_TYPING_TEST:
this.appGroupTabLayout.selectedTab(this.typingTestGroupTab);
this.onClickTypingTestGroupTab();
break;
case MainMenu.APP_GROUP_TYPING_EXAM:
this.appGroupTabLayout.selectedTab(this.typingExamGroupTab);
this.onClickTypingExamGroupTab();
break;
case MainMenu.APP_GROUP_TYPING_PLAY:
this.appGroupTabLayout.selectedTab(this.typingPlayGroupTab);
this.onClickTypingPlayGroupTab();
break;
case MainMenu.APP_GROUP_MOUSE_PLAY:
this.appGroupTabLayout.selectedTab(this.mousePlayGroupTab);
this.onClickMousePlayGroupTab();
break;
default:
// console.log("appGroup - default");
break;
}
}
MainMenu.prototype.activeSavedLanguageTab = function() {
switch(this.selectedLanguage) {
case MainMenu.LANGUAGE_KOREAN:
this.languageTabLayout.selectedTab(this.koreanTab);
break;
case MainMenu.LANGUAGE_ENGLISH:
this.languageTabLayout.selectedTab(this.englishTab);
break;
default:
// console.log("language - default");
break;
}
}
MainMenu.prototype.onClickTypingPracticeGroupTab = function() {
sessionStorageManager.setAppGroup(MainMenu.APP_GROUP_TYPING_PRACTICE);
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE;
this.animalRecordList.show();
this.animalRecordList.printScore(Animal.TYPE_PRACTICE);
this.languageTabLayout.show();
this.loadAppData();
}
MainMenu.prototype.onClickTypingTestGroupTab = function() {
sessionStorageManager.setAppGroup(MainMenu.APP_GROUP_TYPING_TEST);
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_TEST;
this.animalRecordList.show();
this.animalRecordList.printScore(Animal.TYPE_TEST);
this.languageTabLayout.show();
this.loadAppData();
}
MainMenu.prototype.onClickTypingExamGroupTab = function() {
sessionStorageManager.setAppGroup(MainMenu.APP_GROUP_TYPING_EXAM);
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_EXAM;
this.animalRecordList.show();
this.animalRecordList.printScore(Animal.TYPE_EXAM);
this.languageTabLayout.show();
this.loadAppData();
}
MainMenu.prototype.onClickTypingPlayGroupTab = function() {
sessionStorageManager.setAppGroup(MainMenu.APP_GROUP_TYPING_PLAY);
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PLAY;
this.animalRecordList.hide();
this.languageTabLayout.show();
this.loadAppData();
}
MainMenu.prototype.onClickMousePlayGroupTab = function() {
sessionStorageManager.setAppGroup(MainMenu.APP_GROUP_MOUSE_PLAY);
this.selectedAppGroup = MainMenu.APP_GROUP_MOUSE_PLAY;
this.animalRecordList.hide();
this.languageTabLayout.hide();
this.loadAppData();
}
MainMenu.prototype.makeAppGroupTab = function() {
this.appGroupTabLayout = new TabLayout(100, 0, 844, 70);
var typingPracticeGroupTab = new AppGroupTab(
(function() {
console.log("typing finger position");
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE;
this.animalRecordList.show();
this.animalRecordList.printScore(Animal.TYPE_PRACTICE);
this.languageTabLayout.show();
this.loadAppData();
}).bind(this)
);
typingPracticeGroupTab.reserveIcon("keyboard");
typingPracticeGroupTab.reserveSubText("손가락 연습");
this.appGroupTabLayout.add(typingPracticeGroupTab);
this.typingPracticeGroupTab = new AppGroupTab( (function() { this.onClickTypingPracticeGroupTab(); }).bind(this) );
this.typingPracticeGroupTab.reserveIcon("keyboard");
this.typingPracticeGroupTab.reserveSubText("손가락 연습");
this.appGroupTabLayout.add(this.typingPracticeGroupTab);
var typingTestGroupTab = new AppGroupTab(
(function() {
console.log("typing practice");
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_TEST;
this.animalRecordList.show();
this.animalRecordList.printScore(Animal.TYPE_TEST);
this.languageTabLayout.show();
this.loadAppData();
}).bind(this)
);
typingTestGroupTab.reserveIcon("keyboard");
typingTestGroupTab.reserveSubText("시험");
this.appGroupTabLayout.add(typingTestGroupTab);
this.typingTestGroupTab = new AppGroupTab( (function() { this.onClickTypingTestGroupTab(); }).bind(this) );
this.typingTestGroupTab.reserveIcon("keyboard");
this.typingTestGroupTab.reserveSubText("시험");
this.appGroupTabLayout.add(this.typingTestGroupTab);
var typingExamGroupTab = new AppGroupTab(
(function() {
console.log("typing exam");
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_EXAM;
this.animalRecordList.show();
this.animalRecordList.printScore(Animal.TYPE_EXAM);
this.languageTabLayout.show();
this.loadAppData();
}).bind(this)
);
typingExamGroupTab.reserveIcon("keyboard");
typingExamGroupTab.reserveSubText("검정");
this.appGroupTabLayout.add(typingExamGroupTab);
this.typingExamGroupTab = new AppGroupTab( (function() { this.onClickTypingExamGroupTab(); }).bind(this) );
this.typingExamGroupTab.reserveIcon("keyboard");
this.typingExamGroupTab.reserveSubText("검정");
this.appGroupTabLayout.add(this.typingExamGroupTab);
var typingPlayGroupTab = new AppGroupTab(
(function() {
console.log("typing play");
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PLAY;
this.animalRecordList.hide();
this.languageTabLayout.show();
this.loadAppData();
}).bind(this)
);
typingPlayGroupTab.reserveIcon("keyboard");
typingPlayGroupTab.reserveSubText("놀이");
this.appGroupTabLayout.add(typingPlayGroupTab);
this.typingPlayGroupTab = new AppGroupTab( (function() { this.onClickTypingPlayGroupTab(); }).bind(this) );
this.typingPlayGroupTab.reserveIcon("keyboard");
this.typingPlayGroupTab.reserveSubText("놀이");
this.appGroupTabLayout.add(this.typingPlayGroupTab);
var mousePlayGroupTab = new AppGroupTab(
(function() {
console.log("mouse play");
this.selectedAppGroup = MainMenu.APP_GROUP_MOUSE_PLAY;
this.animalRecordList.hide();
this.languageTabLayout.hide();
this.loadAppData();
}).bind(this)
);
mousePlayGroupTab.reserveIcon("mouse");
mousePlayGroupTab.reserveSubText("놀이");
this.appGroupTabLayout.add(mousePlayGroupTab);
this.mousePlayGroupTab = new AppGroupTab( (function() { this.onClickMousePlayGroupTab(); }).bind(this) );
this.mousePlayGroupTab.reserveIcon("mouse");
this.mousePlayGroupTab.reserveSubText("놀이");
this.appGroupTabLayout.add(this.mousePlayGroupTab);
this.appGroupTabLayout.createTabs();
// typingPracticeGroupTab.setInputEnabled(false);
// typingTestGroupTab.setInputEnabled(false);
// typingExamGroupTab.setInputEnabled(false);
// typingPlayGroupTab.setInputEnabled(false);
// mousePlayGroupTab.setInputEnabled(false);
// this.typingPracticeGroupTab.setInputEnabled(false);
// this.typingTestGroupTab.setInputEnabled(false);
// this.typingExamGroupTab.setInputEnabled(false);
// this.typingPlayGroupTab.setInputEnabled(false);
// this.mousePlayGroupTab.setInputEnabled(false);
}
MainMenu.prototype.makeAnimalRecordList = function() {
@@ -547,161 +582,32 @@ MainMenu.prototype.makeLanguageTab = function() {
// this.languageTabLayout = new TabLayout(0, GAME_SCREEN_SIZE.y - languageTabHeight, GAME_SCREEN_SIZE.x, languageTabHeight);
this.languageTabLayout = new TabLayout(0, 70, GAME_SCREEN_SIZE.x, languageTabHeight);
var koreanTab = new LanguageTab(
this.koreanTab = new LanguageTab(
(function() {
// console.log("Language : Korean");
sessionStorageManager.setLanguage(MainMenu.LANGUAGE_KOREAN);
this.selectedLanguage = MainMenu.LANGUAGE_KOREAN;
this.loadAppData();
}).bind(this)
);
koreanTab.reserveMainText("한글");
this.languageTabLayout.add(koreanTab);
this.koreanTab.reserveMainText("한글");
this.languageTabLayout.add(this.koreanTab);
var englishTab = new LanguageTab(
this.englishTab = new LanguageTab(
(function() {
// console.log("Language : English");
sessionStorageManager.setLanguage(MainMenu.LANGUAGE_ENGLISH);
this.selectedLanguage = MainMenu.LANGUAGE_ENGLISH;
this.loadAppData();
}).bind(this)
);
englishTab.reserveMainText("영어");
this.languageTabLayout.add(englishTab);
this.englishTab.reserveMainText("영어");
this.languageTabLayout.add(this.englishTab);
this.languageTabLayout.createTabs();
}
/*
MainMenu.prototype.makeMouseAppButtons = function(appList, activeAppList) {
// console.log(appList);
var mouseAppCount = Object.keys(appList).length;
for(var i = 0; i < mouseAppCount; i++) {
var posX = this.getButtonPosX(i, mouseAppCount);
var posY = this.getButtonPosY(i, mouseAppCount, GameAppButton.BUTTON_UPPER_POS_Y);
var app = appList[i];
var gameAppButton = new GameAppButton(
posX, posY,
GameAppButton.TYPE_MOUSE_APP,
RoundRectButton.NONE_ICON, app.KoreanName,
{
AppID: app.AppID,
AppName: app.AppName,
KoreanName: app.KoreanName
}
);
gameAppButton.text.font = "Nanum Brush Script";
if(!this.hasApp(app.AppID, activeAppList))
gameAppButton.setInputEnabled(false);
}
}
MainMenu.prototype.makeTypingButtons = function(typingPracticeAppCount, typingTestAppCount, appList, activeAppList) {
// console.log(typingPracticeAppCount);
// console.log(typingTestAppCount);
// console.log(appList);
var isTypingPracticeAppExist = typingPracticeAppCount > 0 ? true : false;
var isTypingTestAppExist = typingTestAppCount > 0 ? true : false;
var typingAppTotalCount = Object.keys(appList).length;
var typingAppIndex = 0;
// typing tab buttons
var typingPracticeTabButton = new TypingTabButton(
TypingTabButton.PRACTICE_BUTTON_POS_X, TypingTabButton.BUTTON_POS_Y,
"", "타자 시험",
(function() {
location.href = '../../web/client/menu_typing_practice.html';
})
);
if(typingPracticeAppCount === 0)
typingPracticeTabButton.setInputEnabled(false);
var typingTestTabButton = new TypingTabButton(
TypingTabButton.TEST_BUTTON_POS_X, TypingTabButton.BUTTON_POS_Y,
"", "타자 검정",
(function() {
location.href = '../../web/client/menu_typing_test.html';
})
);
if(typingTestAppCount === 0)
typingTestTabButton.setInputEnabled(false);
// typing app buttons
for(var typingButtonIndex = 0; typingButtonIndex < typingAppTotalCount; typingButtonIndex++) {
var posX = this.getButtonPosX(
typingButtonIndex, typingAppTotalCount
);
var posY = this.getButtonPosY(
typingButtonIndex, typingAppTotalCount, GameAppButton.BUTTON_LOWER_POS_Y
);
var app = appList[typingAppIndex];
var isKoreanTypingApp = app.AppID < 32 ? true : false;
var gameAppButton = new GameAppButton(
posX, posY, GameAppButton.TYPE_TYPING_APP,
RoundRectButton.NONE_ICON, // "icon_fullscreen",
// (isKoreanTypingApp ? "(한글)" : "(영문)") + "\n" + app.KoreanName,
app.KoreanName,
{
AppID: app.AppID,
AppName: app.AppName,
KoreanName: app.KoreanName
}
);
if(!this.hasApp(app.AppID, activeAppList))
gameAppButton.setInputEnabled(false);
typingAppIndex++;
}
}
MainMenu.prototype.getButtonPosX = function(index, buttonCount) {
var gap = GameAppButton.BUTTON_WIDTH + GameAppButton.BUTTON_GAP;
var maxColumnNum = Math.floor( (game.world.width - GameAppButton.MARGIN_VERTICAL) / gap );
// console.log("maxColumnNum : " + maxColumnNum);
var rowCount = Math.ceil(buttonCount / maxColumnNum);
// console.log("rowCount : " + rowCount);
var columnIndex = index % maxColumnNum;
// console.log("columnIndex : " + columnIndex);
var rowIndex = Math.floor(index / maxColumnNum);
// console.log("rowIndex : " + rowIndex);
var columnCountForThisRow = 0;
if(rowIndex < rowCount - 1)
columnCountForThisRow = maxColumnNum;
else
columnCountForThisRow = buttonCount - (maxColumnNum * rowIndex);
// console.log("columnCountForThisRow : " + columnCountForThisRow);
var startX = game.world.width / 2 - ( (gap / 2) * (columnCountForThisRow - 1) );
return startX + gap * columnIndex;
}
MainMenu.prototype.getButtonPosY = function(index, buttonCount, startPosY) {
var gap = GameAppButton.BUTTON_HEIGHT + GameAppButton.BUTTON_GAP;
var maxColumnNum = Math.floor( (game.world.width - GameAppButton.MARGIN_VERTICAL) / gap );
// console.log("maxColumnNum : " + maxColumnNum);
var rowCount = Math.ceil(buttonCount / maxColumnNum);
// console.log("rowCount : " + rowCount);
var rowIndex = Math.floor(index / maxColumnNum);
// console.log("rowIndex : " + rowIndex);
var startY = startPosY - ( (gap / 2) * (rowCount - 1) );
return startY + gap * rowIndex;
}
*/
MainMenu.prototype.loadFailed = function(replyJSON) {
// console.log('login failed, jsonData : ' + JSON.stringify(replyJSON));