diff --git a/resources/image/character/animal/animals_centerd_vertical.png b/resources/image/character/animal/animals_centerd_vertical.png new file mode 100755 index 0000000..237f144 Binary files /dev/null and b/resources/image/character/animal/animals_centerd_vertical.png differ diff --git a/resources/image/ui/keyboard/basic.png b/resources/image/ui/keyboard/basic.png new file mode 100644 index 0000000..e2a3626 Binary files /dev/null and b/resources/image/ui/keyboard/basic.png differ diff --git a/resources/image/ui/keyboard/key_position.sketch b/resources/image/ui/keyboard/key_position.sketch new file mode 100644 index 0000000..0985469 Binary files /dev/null and b/resources/image/ui/keyboard/key_position.sketch differ diff --git a/resources/image/ui/keyboard/keyboards.png b/resources/image/ui/keyboard/keyboards.png new file mode 100644 index 0000000..cd7ca17 Binary files /dev/null and b/resources/image/ui/keyboard/keyboards.png differ diff --git a/resources/image/ui/keyboard/left_lower.png b/resources/image/ui/keyboard/left_lower.png new file mode 100644 index 0000000..64aa50e Binary files /dev/null and b/resources/image/ui/keyboard/left_lower.png differ diff --git a/resources/image/ui/keyboard/left_upper.png b/resources/image/ui/keyboard/left_upper.png new file mode 100644 index 0000000..9b37fb7 Binary files /dev/null and b/resources/image/ui/keyboard/left_upper.png differ diff --git a/resources/image/ui/keyboard/left_upper_double.png b/resources/image/ui/keyboard/left_upper_double.png new file mode 100644 index 0000000..4ff4812 Binary files /dev/null and b/resources/image/ui/keyboard/left_upper_double.png differ diff --git a/resources/image/ui/keyboard/right_lower.png b/resources/image/ui/keyboard/right_lower.png new file mode 100644 index 0000000..a56dacb Binary files /dev/null and b/resources/image/ui/keyboard/right_lower.png differ diff --git a/resources/image/ui/keyboard/right_upper.png b/resources/image/ui/keyboard/right_upper.png new file mode 100644 index 0000000..39b3856 Binary files /dev/null and b/resources/image/ui/keyboard/right_upper.png differ diff --git a/resources/image/ui/keyboard/right_upper_double.png b/resources/image/ui/keyboard/right_upper_double.png new file mode 100644 index 0000000..6e91938 Binary files /dev/null and b/resources/image/ui/keyboard/right_upper_double.png differ diff --git a/resources/image/ui/keyboard/second_finger.png b/resources/image/ui/keyboard/second_finger.png new file mode 100644 index 0000000..81a3e62 Binary files /dev/null and b/resources/image/ui/keyboard/second_finger.png differ diff --git a/resources/image/ui/keyboard/sentence.png b/resources/image/ui/keyboard/sentence.png new file mode 100644 index 0000000..aefa5c3 Binary files /dev/null and b/resources/image/ui/keyboard/sentence.png differ diff --git a/resources/image/ui/keyboard/upper_lower.png b/resources/image/ui/keyboard/upper_lower.png new file mode 100644 index 0000000..234d0e5 Binary files /dev/null and b/resources/image/ui/keyboard/upper_lower.png differ diff --git a/resources/image/ui/keyboard/word.png b/resources/image/ui/keyboard/word.png new file mode 100644 index 0000000..a603b91 Binary files /dev/null and b/resources/image/ui/keyboard/word.png differ diff --git a/src/game/lib/animal.js b/src/game/lib/animal.js index 34af45a..cc3518c 100644 --- a/src/game/lib/animal.js +++ b/src/game/lib/animal.js @@ -143,6 +143,9 @@ Animal.typingCount = function(speciesData, gameType) { return speciesData.typingTestCount; } +Animal.getOffsetY = function(animalIndex) { + return Animal.SPECIES_DATA[animalIndex].offsetY; +} Animal.loadResources = function() { game.load.spritesheet('animals', '../../../resources/image/character/animal/animals.png', 50, 50); @@ -166,19 +169,19 @@ Animal.SPRITE_HEIGHT = 100; Animal.HIDE_POS_Y = 1000; Animal.SPECIES_DATA = [ - { "species" : "snail", "fps" : 1, "typingPracticeCount" : 0, "typingTestCount" : 0 }, - { "species" : "turtle", "fps" : 2, "typingPracticeCount" : 5, "typingTestCount" : 20 }, - { "species" : "chick", "fps" : 5, "typingPracticeCount" : 10, "typingTestCount" : 40 }, - { "species" : "mouse", "fps" : 12, "typingPracticeCount" : 15, "typingTestCount" : 70 }, - { "species" : "chicken", "fps" : 11, "typingPracticeCount" : 20, "typingTestCount" : 100 }, - { "species" : "pig", "fps" : 5, "typingPracticeCount" : 25, "typingTestCount" : 150 }, - { "species" : "cat", "fps" : 10, "typingPracticeCount" : 30, "typingTestCount" : 200 }, - { "species" : "deer", "fps" : 9, "typingPracticeCount" : 40, "typingTestCount" : 250 }, - { "species" : "kangaroo", "fps" : 4, "typingPracticeCount" : 50, "typingTestCount" : 300 }, - { "species" : "rabbit", "fps" : 12, "typingPracticeCount" : 60, "typingTestCount" : 350 }, - { "species" : "dog", "fps" : 9, "typingPracticeCount" : 70, "typingTestCount" : 400 }, - { "species" : "zebra", "fps" : 12, "typingPracticeCount" : 80, "typingTestCount" : 450 }, - { "species" : "ostrich", "fps" : 15, "typingPracticeCount" : 90, "typingTestCount" : 500 }, - { "species" : "lion", "fps" : 10, "typingPracticeCount" : 100, "typingTestCount" : 600 }, - { "species" : "cheetah", "fps" : 15, "typingPracticeCount" : 110, "typingTestCount" : 700 } + { "species" : "snail", "fps" : 1, "offsetY" : 15, "typingPracticeCount" : 0, "typingTestCount" : 0 }, + { "species" : "turtle", "fps" : 2, "offsetY" : 13, "typingPracticeCount" : 5, "typingTestCount" : 20 }, + { "species" : "chick", "fps" : 5, "offsetY" : 14, "typingPracticeCount" : 10, "typingTestCount" : 40 }, + { "species" : "mouse", "fps" : 12, "offsetY" : 15, "typingPracticeCount" : 15, "typingTestCount" : 70 }, + { "species" : "chicken", "fps" : 11, "offsetY" : 8, "typingPracticeCount" : 20, "typingTestCount" : 100 }, + { "species" : "pig", "fps" : 5, "offsetY" : 12, "typingPracticeCount" : 25, "typingTestCount" : 150 }, + { "species" : "cat", "fps" : 10, "offsetY" : 12, "typingPracticeCount" : 30, "typingTestCount" : 200 }, + { "species" : "deer", "fps" : 9, "offsetY" : 6, "typingPracticeCount" : 40, "typingTestCount" : 250 }, + { "species" : "kangaroo", "fps" : 4, "offsetY" : 6, "typingPracticeCount" : 50, "typingTestCount" : 300 }, + { "species" : "rabbit", "fps" : 12, "offsetY" : 13, "typingPracticeCount" : 60, "typingTestCount" : 350 }, + { "species" : "dog", "fps" : 9, "offsetY" : 10, "typingPracticeCount" : 70, "typingTestCount" : 400 }, + { "species" : "zebra", "fps" : 12, "offsetY" : 4, "typingPracticeCount" : 80, "typingTestCount" : 450 }, + { "species" : "ostrich", "fps" : 15, "offsetY" : 0, "typingPracticeCount" : 90, "typingTestCount" : 500 }, + { "species" : "lion", "fps" : 10, "offsetY" : 8, "typingPracticeCount" : 100, "typingTestCount" : 600 }, + { "species" : "cheetah", "fps" : 15, "offsetY" : 8, "typingPracticeCount" : 110, "typingTestCount" : 700 } ]; \ No newline at end of file diff --git a/src/game/lib/flat_button/typing_app_button.js b/src/game/lib/flat_button/typing_app_button.js index c2e0b1b..3480b4b 100644 --- a/src/game/lib/flat_button/typing_app_button.js +++ b/src/game/lib/flat_button/typing_app_button.js @@ -42,21 +42,115 @@ function TypingAppButton(x, y) { BasicButton.call(this, setting, this.clickEvent); + this.mainText.x = TypingAppButton.WIDTH / 2 + TypingAppButton.KEYBOARD_WIDTH / 4; // this.setMainText(""); // this.addIcon("tile_choco"); // this.setIconSize(40); // this.setShortcutText("[단축키]"); - this.animalSprite = new Animal( + this.keyboardSprite = game.add.sprite( + 80, + TypingAppButton.HEIGHT / 2, + "keyboards" + ); + this.keyboardSprite.anchor.set(0.5); + this.keyboardSprite.frame = 1; + this.keyboardSprite.width = 120; + this.keyboardSprite.height = 120; + this.buttonSprite.addChild(this.keyboardSprite); + + this.animal = new Animal( Animal.TYPE_ICON, 0, TypingAppButton.WIDTH - Animal.SPRITE_WIDTH / 2, TypingAppButton.HEIGHT / 2 ); - this.buttonSprite.addChild(this.animalSprite.sprite); + this.buttonSprite.addChild(this.animal.sprite); } -TypingAppButton.prototype.updateAnimalSprite = function(highestRecord) { +TypingAppButton.prototype.updateKeyboard = function(appID) { + switch(appID) { + case 1: + case 11: + case 21: + case 31: + this.keyboardSprite.frame = 0; + break; + + case 2: + case 12: + case 22: + case 32: + this.keyboardSprite.frame = 1; + break; + + case 3: + case 13: + case 23: + case 33: + this.keyboardSprite.frame = 2; + break; + + case 4: + case 14: + case 24: + case 34: + this.keyboardSprite.frame = 3; + break; + + case 5: + case 15: + case 25: + case 35: + this.keyboardSprite.frame = 4; + break; + + case 6: + case 16: + case 26: + case 36: + this.keyboardSprite.frame = 5; + break; + + case 7: + case 27: + case 37: + this.keyboardSprite.frame = 6; + break; + + case 17: + this.keyboardSprite.frame = 10; + break; + + case 8: + case 18: + case 28: + case 38: + this.keyboardSprite.frame = 7; + break; + + case 9: + case 19: + case 29: + case 39: + this.keyboardSprite.frame = 8; + break; + + case 10: + case 20: + case 30: + case 40: + this.keyboardSprite.frame = 9; + break; + + default: + this.keyboardSprite.frame = 0; + break; + } +} + +TypingAppButton.prototype.updateAnimal = function(highestRecord) { var animalIndex = Animal.animalIndexByRecord(highestRecord, this.appType); - this.animalSprite.chagneStandAnimation(animalIndex); + this.animal.chagneStandAnimation(animalIndex); + this.animal.sprite.y = TypingAppButton.HEIGHT / 2 - Animal.getOffsetY(animalIndex); } TypingAppButton.prototype.setInputEnabled = function(isEnabled) { @@ -65,10 +159,16 @@ TypingAppButton.prototype.setInputEnabled = function(isEnabled) { if(isEnabled === true) { this.mouseOut(); - this.animalSprite.sprite.tint = MainColor.WHITE_HEX; + // this.keyboardSprite.tint = MainColor.WHITE_HEX; + // this.animal.sprite.tint = MainColor.WHITE_HEX; + this.keyboardSprite.alpha = 1; + this.animal.sprite.alpha = 1; } else { this.buttonDisabled(); - this.animalSprite.sprite.tint = MainColor.DIM_GRAY_HEX; + // this.keyboardSprite.tint = MainColor.DIM_GRAY_HEX; + // this.animal.sprite.tint = MainColor.DIM_GRAY_HEX; + this.keyboardSprite.alpha = 0.3; + this.animal.sprite.alpha = 0.3; } } @@ -78,11 +178,11 @@ TypingAppButton.prototype.setActive = function(flag) { if(flag) { this.buttonSprite.alpha = 1; this.strokeSprite.alpha = 1; - this.animalSprite.sprite.alpha = 1; + this.animal.sprite.alpha = 1; } else { this.buttonSprite.alpha = 0; this.strokeSprite.alpha = 0; - this.animalSprite.sprite.alpha = 0; + this.animal.sprite.alpha = 0; } } @@ -92,7 +192,6 @@ TypingAppButton.prototype.showEmptyDisabled = function() { this.buttonSprite.alpha = 0; this.strokeSprite.alpha = 1; this.strokeSprite.tint = MainColor.SADDLE_BROWN_HEX; - this.animalSprite.sprite.alpha = 0; } TypingAppButton.prototype.updateAppData = function(appData) { @@ -105,9 +204,10 @@ TypingAppButton.prototype.updateAppData = function(appData) { this.appType = Animal.TYPE_TEST; // console.log(this.appData); + this.updateKeyboard(this.appData.appID); this.setMainText(this.appData.koreanName); this.setInputEnabled(this.appData.activated); - this.updateAnimalSprite(this.appData.highestRecord); + this.updateAnimal(this.appData.highestRecord); } TypingAppButton.prototype.clickEvent = function() { @@ -139,9 +239,16 @@ TypingAppButton.TYPING_APP_KOREAN_NAME = "타자검정"; */ +TypingAppButton.loadResources = function() { + game.load.spritesheet('keyboards', '../../../resources/image/ui/keyboard/keyboards.png', 120, 120); +} + + TypingAppButton.WIDTH = 400; TypingAppButton.HEIGHT = 80; +TypingAppButton.KEYBOARD_WIDTH = 120; + TypingAppButton.STROKE_COLOR_OUT_HEX = MainColor.DARK_CHOCO_HEX; TypingAppButton.STROKE_COLOR_OVER_HEX = MainColor.DARK_CHOCO_HEX; TypingAppButton.STROKE_COLOR_DOWN_HEX = MainColor.DARK_CHOCO_HEX; diff --git a/src/game/main_menu/main_menu.js b/src/game/main_menu/main_menu.js index 35a4ee1..b9abbc5 100644 --- a/src/game/main_menu/main_menu.js +++ b/src/game/main_menu/main_menu.js @@ -12,6 +12,7 @@ MainMenu.prototype.preload = function() { game.load.image('mouse', '../../../resources/image/icon/mouse.png'); Animal.loadResources(); + TypingAppButton.loadResources(); game.load.script('webfont', '//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'); } @@ -70,8 +71,8 @@ MainMenu.prototype.create = function() { this.playAppButtons = new Array(); this.makePlayAppButtons(); - // this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PRACTICE; - this.selectedAppGroup = MainMenu.APP_GROUP_TYPING_PLAY; + 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); }