672 lines
19 KiB
JavaScript
672 lines
19 KiB
JavaScript
MainMenu.prototype = Object.create(Phaser.State.prototype);
|
|
MainMenu.constructor = MainMenu;
|
|
|
|
function MainMenu() {
|
|
}
|
|
|
|
MainMenu.prototype.preload = function() {
|
|
game.load.image('tile_choco', '../../../resources/image/background/tile_choco.png');
|
|
game.load.image('home', '../../../resources/image/icon/home.png');
|
|
|
|
game.load.image('keyboard', '../../../resources/image/icon/keyboard.png');
|
|
game.load.image('mouse', '../../../resources/image/icon/mouse.png');
|
|
|
|
Animal.loadResources();
|
|
|
|
game.load.script('webfont', '//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js');
|
|
}
|
|
|
|
// fontLoaded, create method for Google WebFonts test
|
|
/*
|
|
MainMenu.prototype.fontLoaded = function() {
|
|
console.log("fontLoaded");
|
|
|
|
// this.loadingImage.alpha = 0;
|
|
|
|
// this.text.font = 'Nanum Gothic';
|
|
// text2.font = 'Nanum Brush Script';
|
|
// this.text3.font = 'Nanum Brush Script';
|
|
}
|
|
|
|
MainMenu.prototype.create = function() {
|
|
console.log("create");
|
|
|
|
game.stage.backgroundColor = '#4d4d4d';
|
|
|
|
this.loadingImage = game.add.sprite(GAME_SCREEN_SIZE.x / 2, GAME_SCREEN_SIZE.y / 2, "tile_choco");
|
|
this.text = game.add.text(game.world.centerX, game.world.centerY - 150, "- phaser -\n나눔 고딕 웹 폰트\ngoogle web fonts");
|
|
this.text.anchor.setTo(0.5);
|
|
this.text.fontSize = 60;
|
|
|
|
this.text2 = game.add.text(game.world.centerX, game.world.centerY, "기본 default 글꼴");
|
|
this.text2.anchor.setTo(0.5);
|
|
this.text2.fontSize = 60;
|
|
|
|
this.text3 = game.add.text(game.world.centerX, game.world.centerY + 150, "- phaser -\n나눔 브러시 스크립트 웹 폰트\ngoogle web fonts");
|
|
this.text3.anchor.setTo(0.5);
|
|
this.text3.fontSize = 60;
|
|
}
|
|
*/
|
|
|
|
MainMenu.prototype.create = function() {
|
|
this.dbService = new DBService();
|
|
this.dbService.setMaestroID(sessionStorageManager.getMaestroID());
|
|
this.dbService.setPlayerID(sessionStorageManager.getPlayerID());
|
|
|
|
// bg
|
|
var graphics = game.add.graphics();
|
|
graphics.beginFill(MainColor.LIGHT_CHOCO_HEX, 1);
|
|
graphics.drawRect(0, 0,GAME_SCREEN_SIZE.x, GAME_SCREEN_SIZE.y);
|
|
// graphics.beginFill(MainColor.BLACK_HEX, 1);
|
|
graphics.beginFill(MainColor.CHOCO_HEX, 1);
|
|
graphics.drawRect(0, 0, GAME_SCREEN_SIZE.x, MainMenu.MAIN_MENU_HEIGHT);
|
|
|
|
this.appGroupTabLayout = null;
|
|
this.languageTabLayout = null;
|
|
|
|
this.typingAppButtons = new Array();
|
|
this.makeTypingAppButtons();
|
|
this.writingAppButtons = new Array();
|
|
this.playAppButtons = new Array();
|
|
this.makePlayAppButtons();
|
|
|
|
// this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE;
|
|
this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PLAY;
|
|
this.selectedLanguage = MainMenu.LANGUAGE_KOREAN;
|
|
// this.animalRecordList.printScore(Animal.TYPE_PRACTICE);
|
|
}
|
|
|
|
MainMenu.prototype.fontLoaded = function() {
|
|
|
|
// keyboard shortcut
|
|
this.keyboardShortcut = new KeyboardShortcut();
|
|
this.keyboardShortcut.addCallback(
|
|
Phaser.KeyCode.ESC, // keyCode
|
|
null, // keyDownHandler
|
|
(function() { this.back(); }).bind(this), // keyUpHandler
|
|
"menu_app" // callerClassName
|
|
);
|
|
|
|
// 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.appGroupTabLayout.applyLoadedFont();
|
|
this.animalRecordList.applyLoadedFont();
|
|
this.languageTabLayout.applyLoadedFont();
|
|
|
|
// welcome message
|
|
new WelcomePlayerText(sessionStorageManager.getPlayerName());
|
|
if(isExperiencePlayerAccount()) {
|
|
game.time.events.add(Phaser.Timer.SECOND * 2.5,
|
|
(function() { new NoticeExperiencePlayerText(); } ),
|
|
this
|
|
);
|
|
}
|
|
|
|
this.loadAppData();
|
|
}
|
|
|
|
MainMenu.prototype.back = function() {
|
|
sessionStorageManager.clear();
|
|
location.href = '../../web/client/login.html';
|
|
}
|
|
|
|
MainMenu.prototype.loadAllowEditEnterCode = function(screenTopUI) {
|
|
/*
|
|
var dbConnectManager = new DBConnectManager();
|
|
dbConnectManager.requestAllowEditEnterCode(
|
|
sessionStorageManager.getMaestroID(),
|
|
|
|
(function(replyJSON) {
|
|
if(replyJSON["AllowEditEnterCode"] == "1") {
|
|
screenTopUI.makeSetupButton( (function() {
|
|
console.log("setup");
|
|
location.href = '../../web/client/setup.html';
|
|
}).bind(this) );
|
|
}
|
|
}).bind(this),
|
|
|
|
(function(replyJSON) {
|
|
this.loadFailed(replyJSON);
|
|
}).bind(this)
|
|
);
|
|
*/
|
|
}
|
|
|
|
MainMenu.prototype.loadAppData = function() {
|
|
this.dbService.requestMainMenuAppData(
|
|
this.selectedAppGroup,
|
|
this.selectedLanguage,
|
|
(function(replyJSON) {
|
|
// this.updateAppGroupTab(replyJSON.appGroupData);
|
|
this.updateAppButtons(replyJSON.appGroup, replyJSON.appData);
|
|
// this.updateLanguageTab(replyJSON.appGroup);
|
|
}).bind(this),
|
|
(function(replyJSON) {
|
|
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;
|
|
var offsetY = 110;
|
|
|
|
var buttonHalfWidth = TypingAppButton.WIDTH / 2;
|
|
for(var i = 0; i < MainMenu.TYPING_APP_COUNT; i++) {
|
|
var x = (i % 2) === 0 ? buttonHalfWidth + offsetX : GAME_SCREEN_SIZE.x - buttonHalfWidth - offsetX;
|
|
var y = startY + Math.floor(i / 2) * offsetY;
|
|
|
|
var button = new TypingAppButton(x, y);
|
|
button.setActive(false);
|
|
this.typingAppButtons.push(button);
|
|
}
|
|
}
|
|
|
|
MainMenu.prototype.makePlayAppButtons = function() {
|
|
var startX = 150;
|
|
var startY = 300;
|
|
var offsetX = PlayAppButton.WIDTH + 30;
|
|
var offsetY = 250;
|
|
|
|
var buttonHalfWidth = TypingAppButton.WIDTH / 2;
|
|
for(var i = 0; i < MainMenu.PLAY_APP_COUNT; i++) {
|
|
var x = startX + (i % 5) * offsetX;
|
|
var y = Math.floor(i / 5) === 0 ? startY : startY + offsetY;
|
|
|
|
var button = new PlayAppButton(x, y);
|
|
button.setActive(false);
|
|
this.playAppButtons.push(button);
|
|
}
|
|
}
|
|
|
|
MainMenu.prototype.hideAllButtons = function() {
|
|
// hide all buttons
|
|
|
|
for(var i = 0; i < MainMenu.TYPING_APP_COUNT; i++) {
|
|
this.typingAppButtons[i].setActive(false);
|
|
}
|
|
|
|
for(var i = 0; i < MainMenu.PLAY_APP_COUNT; i++) {
|
|
this.playAppButtons[i].setActive(false);
|
|
}
|
|
}
|
|
|
|
MainMenu.prototype.updateAppButtons = function(appGroup, appData) {
|
|
this.hideAllButtons();
|
|
|
|
switch(parseInt(appGroup)) {
|
|
case MainMenu.APP_GROUP_TYPING_PRACTICE:
|
|
this.updateTypingPracticeAppButtons(appGroup, appData);
|
|
break;
|
|
|
|
case MainMenu.APP_GROUP_TYPING_TEST:
|
|
this.updateTypingTestAppButtons(appGroup, appData);
|
|
break;
|
|
|
|
case MainMenu.APP_GROUP_TYPING_EXAM:
|
|
this.updateTypingExamAppButtons(appData);
|
|
break;
|
|
|
|
case MainMenu.APP_GROUP_TYPING_PLAY:
|
|
this.updatePlayAppButtons(appData);
|
|
// this.updateTypingPlayAppButtons(appData);
|
|
break;
|
|
|
|
case MainMenu.APP_GROUP_MOUSE_PLAY:
|
|
this.updatePlayAppButtons(appData);
|
|
// this.updateMousePlayAppButtons(appData);
|
|
break;
|
|
|
|
default:
|
|
console.log(appGroup);
|
|
}
|
|
}
|
|
|
|
MainMenu.prototype.isActivatedApp = function(appID, activeAppList) {
|
|
var count = activeAppList.length;
|
|
for(var i = 0; i < count; i++) {
|
|
if(appID === activeAppList[i].appID)
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
MainMenu.prototype.getAppHighestRecord = function(appID, highestRecordList) {
|
|
var count = highestRecordList.length;
|
|
for(var i = 0; i < count; i++) {
|
|
if(appID === highestRecordList[i].appID)
|
|
return highestRecordList[i].highestRecord;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
MainMenu.prototype.makeTypingPracticeAppDataList = function(appGroup, appData) {
|
|
var appDataList = new Array();
|
|
|
|
var appList = appData.appList;
|
|
if(appList.length === 0)
|
|
return [];
|
|
|
|
var count = appList.length;
|
|
for(var appDataIndex = 0; appDataIndex < count; appDataIndex++) {
|
|
var data = {};
|
|
data["appGroup"] = appGroup;
|
|
data["appID"] = appList[appDataIndex].appID;
|
|
data["appName"] = appList[appDataIndex].appName;
|
|
data["koreanName"] = appList[appDataIndex].koreanName;
|
|
data["activated"] = this.isActivatedApp(appList[appDataIndex].appID, appData.activeAppList);
|
|
data["highestRecord"] = this.getAppHighestRecord(appList[appDataIndex].appID, appData.highestRecordList);
|
|
appDataList.push(data);
|
|
}
|
|
|
|
return appDataList;
|
|
}
|
|
|
|
MainMenu.prototype.makePlayAppDataList = function(appData) {
|
|
var appDataList = new Array();
|
|
|
|
var appList = appData.appList;
|
|
if(appList.length === 0)
|
|
return [];
|
|
|
|
var count = appList.length;
|
|
for(var appDataIndex = 0; appDataIndex < count; appDataIndex++) {
|
|
var data = {};
|
|
data["appID"] = appList[appDataIndex].appID;
|
|
data["appName"] = appList[appDataIndex].appName;
|
|
data["koreanName"] = appList[appDataIndex].koreanName;
|
|
data["activated"] = this.isActivatedApp(appList[appDataIndex].appID, appData.activeAppList);
|
|
// data["highestRecord"] = this.getAppHighestRecord(appList[appDataIndex].appID, appData.highestRecordList);
|
|
appDataList.push(data);
|
|
}
|
|
|
|
return appDataList;
|
|
}
|
|
|
|
MainMenu.prototype.updateTypingPracticeAppButtons = function(appGroup, appData) {
|
|
console.log("updateTypingPracticeAppButtons");
|
|
|
|
var buttonIndex = 0;
|
|
var appDataList = this.makeTypingPracticeAppDataList(appGroup, appData);
|
|
var count = appDataList.length;
|
|
for(var i = 0; i < MainMenu.TYPING_APP_COUNT; i++) {
|
|
var button = this.typingAppButtons[i];
|
|
if(i < count) {
|
|
button.setActive(true);
|
|
button.updateAppData(appDataList[i]);
|
|
} else {
|
|
button.setActive(true);
|
|
button.showEmptyDisabled();
|
|
}
|
|
}
|
|
}
|
|
|
|
MainMenu.prototype.updateTypingTestAppButtons = function(appGroup, appData) {
|
|
console.log("updateTypingTestAppButtons");
|
|
|
|
var buttonIndex = 0;
|
|
var appDataList = this.makeTypingPracticeAppDataList(appGroup, appData);
|
|
var count = appDataList.length;
|
|
for(var i = 0; i < MainMenu.TYPING_APP_COUNT; i++) {
|
|
var button = this.typingAppButtons[i];
|
|
if(i < count) {
|
|
button.setActive(true);
|
|
button.updateAppData(appDataList[i]);
|
|
} else {
|
|
button.setActive(true);
|
|
button.showEmptyDisabled();
|
|
}
|
|
}
|
|
}
|
|
|
|
MainMenu.prototype.updateTypingExamAppButtons = function(appData) {
|
|
console.log("updateTypingExamAppButtons");
|
|
console.log(appData);
|
|
}
|
|
|
|
MainMenu.prototype.updatePlayAppButtons = function(appData) {
|
|
console.log("updatePlayAppButtons");
|
|
|
|
var buttonIndex = 0;
|
|
var appDataList = this.makePlayAppDataList(appData);
|
|
var count = appDataList.length;
|
|
for(var i = 0; i < MainMenu.PLAY_APP_COUNT; i++) {
|
|
var button = this.playAppButtons[i];
|
|
if(i < count) {
|
|
button.setActive(true);
|
|
button.updateAppData(appDataList[i]);
|
|
} else {
|
|
button.setActive(true);
|
|
button.showEmptyDisabled();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
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)
|
|
);
|
|
|
|
this.settingButton = new SettingButton(
|
|
(function() { console.log("setting"); }).bind(this)
|
|
);
|
|
}
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
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.appGroupTabLayout.createTabs();
|
|
|
|
|
|
// typingPracticeGroupTab.setInputEnabled(false);
|
|
// typingTestGroupTab.setInputEnabled(false);
|
|
// typingExamGroupTab.setInputEnabled(false);
|
|
// typingPlayGroupTab.setInputEnabled(false);
|
|
// mousePlayGroupTab.setInputEnabled(false);
|
|
}
|
|
|
|
MainMenu.prototype.makeAnimalRecordList = function() {
|
|
this.animalRecordList = new AnimalRecordList(AnimalRecordList.TYPE_MENU);
|
|
this.animalRecordList.printScore(Animal.TYPE_PRACTICE);
|
|
}
|
|
|
|
MainMenu.prototype.makeLanguageTab = function() {
|
|
var languageTabHeight = 48;
|
|
// 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(
|
|
(function() {
|
|
console.log("Language : Korean");
|
|
this.selectedLanguage = MainMenu.LANGUAGE_KOREAN;
|
|
this.loadAppData();
|
|
}).bind(this)
|
|
);
|
|
koreanTab.reserveMainText("한글");
|
|
this.languageTabLayout.add(koreanTab);
|
|
|
|
var englishTab = new LanguageTab(
|
|
(function() {
|
|
console.log("Language : English");
|
|
this.selectedLanguage = MainMenu.LANGUAGE_ENGLISH;
|
|
this.loadAppData();
|
|
}).bind(this)
|
|
);
|
|
englishTab.reserveMainText("영어");
|
|
this.languageTabLayout.add(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));
|
|
}
|
|
|
|
|
|
MainMenu.MAIN_MENU_HEIGHT = 70;
|
|
|
|
MainMenu.APP_GROUP_TYPING_PRACTICE = 0;
|
|
MainMenu.APP_GROUP_TYPING_TEST = 1;
|
|
MainMenu.APP_GROUP_TYPING_EXAM = 2;
|
|
MainMenu.APP_GROUP_TYPING_PLAY = 3;
|
|
MainMenu.APP_GROUP_MOUSE_PLAY = 4;
|
|
|
|
MainMenu.LANGUAGE_KOREAN = 0;
|
|
MainMenu.LANGUAGE_ENGLISH = 1;
|
|
|
|
MainMenu.TYPING_APP_COUNT = 10;
|
|
MainMenu.PLAY_APP_COUNT = 10; |