Fix: typing app menu

This commit is contained in:
2018-06-07 08:57:10 +09:00
parent 26b47536dc
commit 670d48cbc7
8 changed files with 110 additions and 103 deletions
+76 -76
View File
@@ -23,8 +23,7 @@ class MenuTypingPractice {
let screenBottom = new ScreenBottom();
screenBottom.makeBottomLine();
// screenBottom.printBottomLeftText("게임 진행 정보");
let playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.playingAppName);
screenBottom.printBottomCenterText(playingAppName);
screenBottom.printBottomCenterText("타자 연습");
screenBottom.printBottomRightText(sessionStorageManager.playerName);
@@ -43,96 +42,97 @@ class MenuTypingPractice {
}
loginSucceeded(replyJSON) {
console.log(replyJSON);
// console.log(replyJSON);
let buttonWidthGap = MenuTypingPractice.BUTTON_WIDTH + MenuTypingPractice.BUTTON_GAP;
let buttonWidthGap = TypingPracticeButton.BUTTON_WIDTH + MenuTypingPractice.BUTTON_GAP;
let koreanTypingPracticeAppCount = self.getAppCount(replyJSON, MenuTypingPractice.TYPE_KOREAN);
let englishTypingPracticeAppCount = self.getAppCount(replyJSON, MenuTypingPractice.TYPE_ENGLISH);
let koreanTypingPracticeAppCount = Object.keys(replyJSON.Korean).length;
let englishTypingPracticeAppCount = Object.keys(replyJSON.English).length;
let startX = game.world.width / 2 - (buttonWidthGap * koreanTypingPracticeAppCount / 2) - (buttonWidthGap / 2);
let koreanTypingPracticeAppIndex = 0;
for(let i = 0; i < replyJSON.length; i++) {
let activeApp = replyJSON[i];
if(self.isKoreanApp(activeApp)) {
koreanTypingPracticeAppIndex++;
console.log(activeApp);
new TypingPracticeButton(
startX + buttonWidthGap * koreanTypingPracticeAppIndex, 300,
TypingPracticeButton.TYPE_KOREAN,
TypingPracticeButton.NONE_ICON,
appInfoManager.getAppNameKorean(activeApp.AppName),
() => {
sessionStorageManager.playingAppID = activeApp.AppID;
sessionStorageManager.playingAppName = activeApp.AppName;
location.href = '../../web/client/start.html';
}
);
}
}
// let startX = game.world.width / 2 - (buttonWidthGap * koreanTypingPracticeAppCount / 2) - (buttonWidthGap / 2);
// let koreanTypingPracticeAppIndex = 0;
for(let i = 0; i < koreanTypingPracticeAppCount; i++) {
let activeApp = replyJSON.Korean[i];
startX = game.world.width / 2 - (buttonWidthGap * koreanTypingPracticeAppCount / 2) - (buttonWidthGap / 2);
let englishTypingPracticeAppIndex = 0;
for(let i = 0; i < replyJSON.length; i++) {
let activeApp = replyJSON[i];
if(!self.isKoreanApp(activeApp)) {
englishTypingPracticeAppIndex++;
console.log(activeApp);
new TypingPracticeButton(
startX + buttonWidthGap * englishTypingPracticeAppIndex, 500,
TypingPracticeButton.TYPE_ENGLISH,
TypingPracticeButton.NONE_ICON,
appInfoManager.getAppNameKorean(activeApp.AppName),
() => {
sessionStorageManager.playingAppID = activeApp.AppID;
sessionStorageManager.playingAppName = activeApp.AppName;
location.href = '../../web/client/start.html';
}
);
}
}
let posX = self.getButtonPosX(i, koreanTypingPracticeAppCount);
let posY = self.getButtonPosY(i, koreanTypingPracticeAppCount,
TypingPracticeButton.BUTTON_UPPER_POS_Y
);
/*
if(englishTypingPracticeAppCount > 0) {
new TypingPracticeButton(game.world.width / 2, 500, TypingPracticeButton.TYPE_KOREAN,
TypingPracticeButton.NONE_ICON, "검지 글쇠",
new TypingPracticeButton(
posX, posY, LANGUAGE_KOREAN,
TypingPracticeButton.NONE_ICON,
activeApp.KoreanName,
() => {
sessionStorageManager.playingAppID = activeApp.AppID;
sessionStorageManager.playingAppName = activeApp.AppName;
location.href = '../../web/client/start.html';
sessionStorageManager.playingAppID = activeApp.AppID;
sessionStorageManager.playingAppName = activeApp.AppName;
location.href = '../../web/client/start.html';
}
);
}
*/
}
isKoreanApp(app) {
if(app.AppType === MenuTypingPractice.TYPE_KOREAN)
return true;
// startX = game.world.width / 2 - (buttonWidthGap * englishTypingPracticeAppCount / 2) - (buttonWidthGap / 2);
for(let i = 0; i < englishTypingPracticeAppCount; i++) {
let activeApp = replyJSON.English[i];
return false;
}
let posX = self.getButtonPosX(i, englishTypingPracticeAppCount);
let posY = self.getButtonPosY(i, englishTypingPracticeAppCount,
TypingPracticeButton.BUTTON_LOWER_POS_Y
);
getAppCount(replyJSON, type) {
let appCount = 0;
for(let i = 0; i < replyJSON.length; i++) {
let activeApp = replyJSON[i];
if(activeApp.AppType === type)
appCount++;
new TypingPracticeButton(
posX, posY, LANGUAGE_ENGLISH,
TypingPracticeButton.NONE_ICON,
activeApp.KoreanName,
() => {
sessionStorageManager.playingAppID = activeApp.AppID;
sessionStorageManager.playingAppName = activeApp.AppName;
location.href = '../../web/client/start.html';
}
);
}
return appCount;
}
getButtonPosX(index, buttonCount) {
let gap = TypingPracticeButton.BUTTON_WIDTH + TypingPracticeButton.BUTTON_GAP;
let maxColumnNum = Math.floor( (game.world.width - TypingPracticeButton.MARGIN_VERTICAL) / gap );
// console.log("maxColumnNum : " + maxColumnNum);
let rowCount = Math.ceil(buttonCount / maxColumnNum);
// console.log("rowCount : " + rowCount);
let columnIndex = index % maxColumnNum;
// console.log("columnIndex : " + columnIndex);
let rowIndex = Math.floor(index / maxColumnNum);
// console.log("rowIndex : " + rowIndex);
let columnCountForThisRow = 0;
if(rowIndex < rowCount - 1)
columnCountForThisRow = maxColumnNum;
else
columnCountForThisRow = buttonCount - (maxColumnNum * rowIndex);
// console.log("columnCountForThisRow : " + columnCountForThisRow);
let startX = game.world.width / 2 - ( (gap / 2) * (columnCountForThisRow - 1) );
return startX + gap * columnIndex;
}
getButtonPosY(index, buttonCount, startPosY) {
let gap = TypingPracticeButton.BUTTON_HEIGHT + TypingPracticeButton.BUTTON_GAP;
let maxColumnNum = Math.floor( (game.world.width - TypingPracticeButton.MARGIN_VERTICAL) / gap );
// console.log("maxColumnNum : " + maxColumnNum);
let rowCount = Math.ceil(buttonCount / maxColumnNum);
// console.log("rowCount : " + rowCount);
let rowIndex = Math.floor(index / maxColumnNum);
// console.log("rowIndex : " + rowIndex);
let startY = startPosY - ( (gap / 2) * (rowCount - 1) );
return startY + gap * rowIndex;
}
loginFailed(replyJSON) {
console.log('login failed, jsonData : ' + JSON.stringify(replyJSON));
}
}
MenuTypingPractice.TYPE_KOREAN = 10;
MenuTypingPractice.TYPE_ENGLISH = 20;
MenuTypingPractice.BUTTON_WIDTH = 200;
MenuTypingPractice.BUTTON_GAP = 20;
}