Add: ResultFail

This commit is contained in:
2019-09-06 22:11:14 +09:00
parent 6f9e87fef2
commit 8d48b22e06
3 changed files with 293 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
/////////////////////////////
// Main game
var CONTENT_ID = "ResultFail";
var game = new Phaser.Game(
GAME_SCREEN_SIZE.x, GAME_SCREEN_SIZE.y,
Phaser.CANVAS, CONTENT_ID
);
game.state.add('ResultFail', Result);
game.state.start('ResultFail');
+205
View File
@@ -0,0 +1,205 @@
var ResultFail = {
preload: function() {
game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
if(isTypingPracticeApp() || isTypingTestApp() || isTypingExamApp())
Animal.loadResources();
RankingBoard.loadResources();
game.load.image('star', '../../../resources/image/ui/star_particle.png');
},
create: function() {
this.dbConnectManager = new DBConnectManager();
this.game.stage.backgroundColor = '#4d4d4d';
this.chartGraphics = game.add.graphics(100, game.world.height - 120);
// keyboard shortcut
this.keyboardShortcut = new KeyboardShortcut();
this.keyboardShortcut.addCallback(
Phaser.KeyCode.ESC, // keyCode
null, // keyDownHandler
(function() { this.back(); }).bind(this), // keyUpHandler
"result" // callerClassName
);
this.keyboardShortcut.addCallback(
Phaser.KeyCode.ENTER, // keyCode
null, // keyDownHandler
(function() { this.restartStage(); }).bind(this), // keyUpHandler
"result" // callerClassName
);
// top ui
var screenTopUI = new ScreenTopUI();
screenTopUI.makeBackButton( (function() { this.back(); }).bind(this) );
screenTopUI.makeFullScreenButton();
// contents
// this.printRecord();
this.printFailedMessage();
this.makeRestartButton();
if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account
var recordBoard = new RecordBoard(RecordBoard.TYPE_SAMPLE);
this.announceBox = new AnnounceBox(50, 648);
this.announceBox.drawBox("체험 계정에서는 기록이 저장되지 않습니다.");
} else {
// this.printTodayBestRecord();
var recordBoard = new RecordBoard(RecordBoard.TYPE_DB);
}
// bottom ui
var screenBottomUI = new ScreenBottomUI();
screenBottomUI.printLeftTextWithAppHighestRecord(sessionStorageManager.getAppHighestRecord());
screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName());
screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
},
back: function() {
location.href = '../../web/client/main_menu.html';
/*
if(isTypingExamApp())
location.href = '../../web/client/menu_typing_exam.html';
else if(isTypingPracticeApp())
location.href = '../../web/client/menu_typing_practice.html';
else if(isTypingTestApp())
location.href = '../../web/client/menu_typing_test.html';
else
location.href = '../../web/client/menu_app.html';
sessionStorageManager.resetPlayingAppData();
*/
},
printFailedMessage: function() {
var style = { font: "bold 38px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
var titleText = game.add.text(game.world.width / 2, 35, "결과", style);
titleText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
titleText.anchor.set(0.5);
var x = game.world.width / 2;
var y = 150;
if(sessionStorageManager.getRecord() === null)
sessionStorageManager.setRecord(0);
var record = sessionStorageManager.getRecord();
style.font = "80px Arial";
var scoreText = game.add.text(
x, y,
"도전 실패",
style
);
scoreText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
scoreText.anchor.set(0.5);
},
/*
printRecord: function() {
var style = { font: "bold 38px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
var titleText = game.add.text(game.world.width / 2, 35, "결과", style);
titleText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
titleText.anchor.set(0.5);
var x = game.world.width / 2;
var y = 150;
if(sessionStorageManager.getRecord() === null)
sessionStorageManager.setRecord(0);
if(isTypingPracticeApp() || isTypingTestApp() || isTypingExamApp()) {
var animalLevelID = 0;
if(isTypingPracticeApp())
animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.getRecord(), Animal.TYPE_PRACTICE);
else // Typing Test App
animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.getRecord(), Animal.TYPE_TEST);
var leftAnimal = new Animal(Animal.TYPE_ANIMATION, animalLevelID, game.world.centerX - 200, 150);
leftAnimal.startAnimation(Animal.SPECIES_DATA[animalLevelID]);
var rightAnimal = new Animal(Animal.TYPE_ANIMATION, animalLevelID, game.world.centerX + 200, 150);
rightAnimal.startAnimation(Animal.SPECIES_DATA[animalLevelID]);
}
var record = sessionStorageManager.getRecord();
style.font = "80px Arial";
var scoreText = game.add.text(
x, y,
RecordUtil.getRecordValueWithUnit(record, sessionStorageManager.getPlayingAppID()),
style
);
scoreText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
scoreText.anchor.set(0.5);
},
*/
printTodayBestRecord: function() {
// console.log(sessionStorageManager.getAppHighestRecord());
// console.log(sessionStorageManager.getRecord());
/*
var appHighestRecord = sessionStorageManager.getAppHighestRecord();
var prevRecord = sessionStorageManager.getRecord();
if(appHighestRecord == 'undefined' || appHighestRecord == null) {
this.showHighestRecordEffect(prevRecord);
return;
}
if(this.isHighestRecordPreferApp()) {
if(prevRecord > appHighestRecord)
this.showHighestRecordEffect(prevRecord);
} else {
if(appHighestRecord == 0)
this.showHighestRecordEffect(prevRecord);
else if(prevRecord < appHighestRecord)
this.showHighestRecordEffect(prevRecord);
}
*/
},
showHighestRecordEffect: function(record) {
sessionStorageManager.setAppHighestRecord(record);
var newRecordEmitter = game.add.emitter(game.world.centerX, 140, 300);
newRecordEmitter.makeParticles('star');
newRecordEmitter.gravity = 300;
var style = { font: "32px Arial", fill: "#ff0", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };
var bestRecordText = game.add.text(game.world.centerX, 220, "", style);
bestRecordText.anchor.set(0.5);
bestRecordText.stroke = "#333";
bestRecordText.strokeThickness = 5;
bestRecordText.text = "! : . 최고 기록 경신 . : !";
newRecordEmitter.start(true, 2000, null, 20);
},
isHighestRecordPreferApp: function() {
if(sessionStorageManager.getPlayingAppID() == 105)
return false;
return true;
},
makeRestartButton: function() {
var setting = new RoundRectButtonSetting(game.world.centerX, game.world.height / 2 - 70, 200, 100);
setting.fontStyle.fontWeight = "bold";
var startButton = new RoundRectButton(setting, RoundRectButton.NONE_ICON, "다시 시작", this.restartStage);
startButton.addShortcutText("Enter");
},
restartStage: function() {
location.href = "../../web/client/" + getGameAppName() + ".html";
}
}