Fix: show typing speed and content progress

This commit is contained in:
2018-06-07 14:12:09 +09:00
parent 873b778960
commit 147f740622
6 changed files with 119 additions and 131 deletions
+34 -130
View File
@@ -6,44 +6,38 @@ class Test {
create() {
self = this;
this.game.stage.backgroundColor = '#4d4d4d';
this.initTypingData();
sessionStorageManager.isNewBestRecrd = false;
this.game.stage.backgroundColor = '#4d4d4d';
// top
let backButton = new BackButton( () => {
sessionStorageManager.resetPlayingAppData();
location.href = '../../web/client/menu_app.html';
});
this.averageTypingSpeedText = new AverageTypingSpeed();
this.contentProgressText = new ContentProgress();
// var scoreboardAreaPositionY = 2;
// this.textPlayingWordNumber = game.add.text(900, scoreboardAreaPositionY, "0", textStyleBasic)
// .setTextBounds(0, 0, 300, 80)
// .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
let fullscreenButton = new FullscreenButton(this.game);
// record
var scoreboardAreaPositionY = 2;
game.add.text(340 - Test.OFFSET_RIGHT_ALIGN, scoreboardAreaPositionY, "현재 타수 :", textStyleBasic)
.setTextBounds(0, 0, 200, 80)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
this.textTypingRecordTotal = game.add.text(540, scoreboardAreaPositionY, "", textStyleBasic)
.setTextBounds(0, 0, 200, 80)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
this.textPlayingWordNumber = game.add.text(900, scoreboardAreaPositionY, "0", textStyleBasic)
.setTextBounds(0, 0, 300, 80)
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
// typing content
var typingAreaPositionY = 260;
var bar = game.add.graphics();
bar.beginFill(0x000000, 0.2);
bar.drawRect(0, typingAreaPositionY, GAME_SCREEN_SIZE.x, 120);
// if(playingStageData.level == "10")
// textStyleBasic.font = "bold 48px Arial";
// else
// textStyleBasic.font = "bold 84px Arial";
if(this.isWordStage())
textStyleBasic.font = "bold 84px Arial";
else // Sentence stage
textStyleBasic.font = "bold 48px Arial";
this.textTypingContent = game.add.text(0, 2, "test", textStyleBasic)
.setTextBounds(0, typingAreaPositionY, GAME_SCREEN_SIZE.x, 120)
@@ -61,9 +55,9 @@ class Test {
.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2)
.addColor(textDoneColor[i], 0);
var scorePositionX = 600;
// if(playingStageData.level == "10")
// scorePositionX = 740;
var scorePositionX = 780;
if(this.isWordStage())
scorePositionX = 600;
this.textTypingRecordsDone[i] = game.add.text(0, 2, "", textStyleBasic)
.setTextBounds(scorePositionX, typingAreaPositionY - 50 - i * 50, 200, 40)
@@ -106,9 +100,6 @@ class Test {
// this.countDown();
}
initListeners() {
}
/*
countDown() {
const style = { font: "bold 200px Arial", fill: "#fff", boundsAlignH: "center", boundsAlignV: "middle" };
@@ -141,8 +132,6 @@ class Test {
*/
startGame() {
this.initTypingData();
this.initStage();
this.showTypingTestContents();
@@ -162,8 +151,10 @@ class Test {
initTypingData() {
this.typingTestContents = this.getTypingTestContents();
var randomContents = Phaser.ArrayUtils.shuffle(this.typingTestContents);
this.typingRandomContents = randomContents.slice(1, Test.WORD_COUNT_FOR_STAGE + 1); // start Num, end Num (not index)
console.log(this.typingRandomContents);
this.wordCountForStage = Test.WORD_COUNT_FOR_STAGE;
if(isDebugMode())
this.wordCountForStage = 3;
this.typingRandomContents = randomContents.slice(1, this.wordCountForStage + 1); // start Num, end Num (not index)
this.typingContentLength = this.typingTestContents.length;
this.typingIndex = 0;
@@ -172,14 +163,11 @@ class Test {
this.timeTypingEnd = 0;
this.typingLetterCountTotal = 0;
// this.typingRecordTotal = 0;
// bestRecord = 0;
}
initStage() {
// this.textBestRecord.text = Math.floor(sessionStorageManager.bestRecord);
this.textTypingRecordTotal.text = 0;
this.averageTypingSpeedText.print(0);
}
getTypingTestContents() {
@@ -216,96 +204,10 @@ class Test {
}
return testContent;
// if(playingStageData.language == LANGUAGE_KOREAN)
// return this.loadKoreanTestContent();
// else
// return this.loadEnglishTestContent();
}
loadKoreanTestContent() {
var testContent = [];
switch(Number(playingStageData.level)) {
case 1:
testContent = koreanBasicWordList;
break;
case 2:
testContent = koreanLeftUpperWordList;
break;
case 3:
testContent = koreanSecondFingerWordList;
break;
case 4:
testContent = koreanRightUpperWordList;
break;
case 5:
testContent = koreanLeftLowerWordList;
break;
case 6:
testContent = koreanRightLowerWordList;
break;
case 7:
testContent = koreanLeftUpperDoubleWordList;
break;
case 8:
testContent = koreanRightUpperDoubleWordList;
break;
case 9:
testContent = koreanWordList;
break;
case 10:
testContent = koreanSentenceList;
break;
default:
testContent = koreanBasicWordList;
}
return testContent;
}
loadEnglishTestContent() {
/*
var testContent = [
"보리밭 사잇길로 걸어가면",
"뉘 부르는 소리 있어",
"입에 들어가는 밥술도 제가",
"떠 넣어야 한다",
"큰 방죽도 개미 구멍으로 무너진다.",
];
*/
var testContent = [];
switch(Number(playingStageData.level)) {
case 1:
testContent = englishBasicWordList;
break;
case 2:
testContent = englishLeftUpperWordList;
break;
case 3:
testContent = englishSecondFingerWordList;
break;
case 4:
testContent = englishRightUpperWordList;
break;
case 5:
testContent = englishLeftLowerWordList;
break;
case 6:
testContent = englishRightLowerWordList;
break;
case 9:
testContent = englishWordList;
break;
case 10:
testContent = englishSentenceList;
break;
default:
testContent = englishBasicWordList;
}
return testContent;
isWordStage() {
return ( (sessionStorageManager.playingAppID % 10) === 0 );
}
showTypingTestContents() {
@@ -320,7 +222,7 @@ class Test {
}
}
if(this.typingIndex == Test.WORD_COUNT_FOR_STAGE) {
if(this.typingIndex == this.wordCountForStage) {
this.textTypingContent.text = "";
return;
}
@@ -352,7 +254,7 @@ class Test {
this.calculateTypingRecord(typingContent);
this.playNextContent();
if(this.typingIndex == Test.WORD_COUNT_FOR_STAGE)
if(this.typingIndex == this.wordCountForStage)
this.state.start('TypingTestResult');
}
}
@@ -419,7 +321,8 @@ class Test {
console.log(this.typingLetterCountTotal);
console.log(typingElapsedTimeTotal);
console.log(typingRecordTotal);
this.textTypingRecordTotal.text = Math.floor(typingRecordTotal);
// this.textTypingRecordTotal.text = Math.floor(typingRecordTotal);
this.averageTypingSpeedText.print(Math.floor(typingRecordTotal));
// console.log('-------------- total --------------');
// console.log('typingLetterCountTotal : ' + this.typingLetterCountTotal);
// console.log('typingElapsedTimeTotal : ' + typingElapsedTimeTotal);
@@ -435,7 +338,8 @@ class Test {
}
showPlayingWordNumber() {
this.textPlayingWordNumber.text = (this.typingIndex + 1) + " / " + Test.WORD_COUNT_FOR_STAGE;
// this.textPlayingWordNumber.text = (this.typingIndex + 1) + " / " + this.wordCountForStage;
this.contentProgressText.print(this.typingIndex + 1, this.wordCountForStage);
}
setTimeTypingStart() {
@@ -457,7 +361,7 @@ class Test {
Test.TYPING_CONTENT_PREVIEW_COUNT = 3;
Test.TYPING_CONTENT_DONE_COUNT = 3;
Test.TYPING_COUNT_PLUS_ENTER = 1;
Test.TYPING_COUNT_PLUS_ENTER = 1;
Test.OFFSET_RIGHT_ALIGN = 10;
@@ -465,7 +369,7 @@ Test.WORD_COUNT_FOR_STAGE = 10;
// if(isDebugMode())
// WORD_COUNT_FOR_STAGE = 3;
Test.COLOR_CONTENT_WRONG = "#aaaaaa";
Test.COLOR_CONTENT_RIGHT = "#ffff4d";
Test.COLOR_CONTENT_WRONG = "#aaaaaa";
Test.COLOR_CONTENT_RIGHT = "#ffff4d";