diff --git a/src/game/typing/word_flyingsaucer/flyingsaucer.js b/src/game/typing/word_flyingsaucer/flyingsaucer.js index 7b2c53d..080a1fd 100644 --- a/src/game/typing/word_flyingsaucer/flyingsaucer.js +++ b/src/game/typing/word_flyingsaucer/flyingsaucer.js @@ -39,15 +39,19 @@ function FlyingSaucer(lineIndex) { this.wordText = game.add.text(0, 0, "text", style); this.wordText.anchor.set(0.5); - this.startAttack(); - - // this.setActive(true); + this.setActive(true); } FlyingSaucer.prototype.initVariables = function() { this.isActivated = false; + this.wordLevel = 0; this.speed = FlyingSaucer.DEFAULT_SPEED; + + this.heartManager = null; + this.wordManager = null; + this.gameLevelManager = null; + this.timerEvent = null; } @@ -84,24 +88,32 @@ FlyingSaucer.prototype.update = function() { this.wordText.y = this.y + FlyingSaucer.WORD_TEXT_OFFSET_Y; if(this.y > GAME_SCREEN_SIZE.y - 200) - this.moveInitialPos(); + this.crash(); } else { this.stop(); } } -FlyingSaucer.prototype.setup = function(wordLevel, speedLevel) { - this.wordLevel = wordLevel; - this.speedLevel = speedLevel; +FlyingSaucer.prototype.setHeartManager = function(heartManager) { + this.heartManager = heartManager; } +FlyingSaucer.prototype.setWordManager = function(wordManager) { + this.wordManager = wordManager; +} + +FlyingSaucer.prototype.setGameLevelManager = function(gameLevelManager) { + this.gameLevelManager = gameLevelManager; +} + + + + FlyingSaucer.prototype.setWord = function(wordText) { this.wordText.text = wordText; } - - FlyingSaucer.prototype.stop = function() { this.body.velocity.setTo(0, 0); } @@ -136,7 +148,13 @@ FlyingSaucer.prototype.moveInitialPos = function() { FlyingSaucer.prototype.startAttack = function() { this.moveInitialPos(); - this.setWord("text"); + console.log(this.wordManager); + console.log(this.gameLevelManager); + var wordLevel = this.gameLevelManager.getWordLevel(); + console.log(wordLevel); + var word = this.wordManager.getWord(wordLevel); + console.log(word); + this.setWord(word); this.setActive(true); } @@ -188,6 +206,15 @@ FlyingSaucer.prototype.explode = function(inputText) { this.timerEvent = game.time.events.add(Phaser.Timer.SECOND, this.startAttack, this); } +FlyingSaucer.prototype.crash = function() { + this.moveInitialPos(); + this.heartManager.breakHearts(1); +} + +FlyingSaucer.prototype.destroy = function() { + this.setActive(false); + this.setWord(""); +} FlyingSaucer.loadResource = function() { diff --git a/src/game/typing/word_flyingsaucer/game.js b/src/game/typing/word_flyingsaucer/game.js index e2c6f42..1b5388b 100644 --- a/src/game/typing/word_flyingsaucer/game.js +++ b/src/game/typing/word_flyingsaucer/game.js @@ -6,38 +6,14 @@ var WordFlyingSaucer = { sessionStorageManager.setIsNewAppHighestRecord(false); + this.initVariables(); + + var experienceAppTimer = new ExperienceAppTimer(); experienceAppTimer.setTimeOverListener( (function() { this.timeOver(); }).bind(this) ); - this.initVariables(); - - - - // game stage - this.game.stage.backgroundColor = "#000000"; // '#4d4d4d'; - var stars = game.add.group(); - for (var i = 0; i < 128; i++) { - var randomY = game.rnd.integerInRange(60, GAME_SCREEN_SIZE.y - 80); - stars.create(game.world.randomX, randomY, 'star'); - } - - this.flyingsaucers = []; - for(var i = 0; i < 2; i++) { - this.flyingsaucers[i] = new FlyingSaucer(i); - this.flyingsaucers[i].setup(this.wordLevel, this.speedLevel); - this.flyingsaucers[i].setActive(true); - } - - - - // top ui - var screenTopUI = new ScreenTopUI(); - screenTopUI.makeBackButton( (function() { this.back(); }).bind(this) ); - screenTopUI.makeFullScreenButton(); - - this.scoreManager = new ScoreManager(); this.scoreBoard = new ScoreBoard(); this.scoreManager.addOnChangeScoreListener( @@ -55,16 +31,41 @@ var WordFlyingSaucer = { }).bind(this) ); - var heartManager = new HeartManager(); - var heartGauge = new HeartGauge(heartManager); - heartManager.addOnChangeGameOverListener( + this.heartManager = new HeartManager(); + this.heartManager.addOnChangeGameOverListener( (function() { this.gameOver(); }).bind(this) ); + + + // game stage + this.game.stage.backgroundColor = "#000000"; // '#4d4d4d'; + var stars = game.add.group(); + for (var i = 0; i < 128; i++) { + var randomY = game.rnd.integerInRange(60, GAME_SCREEN_SIZE.y - 80); + stars.create(game.world.randomX, randomY, 'star'); + } + + this.flyingsaucers = []; + for(var i = 0; i < 2; i++) { + this.flyingsaucers[i] = new FlyingSaucer(i); + this.flyingsaucers[i].setHeartManager(this.heartManager); + this.flyingsaucers[i].setWordManager(this.wordManager); + this.flyingsaucers[i].setGameLevelManager(this.gameLevelManager); + this.flyingsaucers[i].setActive(true); + this.flyingsaucers[i].startAttack(); + } + + + + // top ui + var screenTopUI = new ScreenTopUI(); + screenTopUI.makeBackButton( (function() { this.back(); }).bind(this) ); + screenTopUI.makeFullScreenButton(); + + var heartGauge = new HeartGauge(this.heartManager); heartGauge.start(); - - // input text var INPUT_TEXT_Y = 680; this.inputText = new InputTypeText(game.world.centerX, INPUT_TEXT_Y); @@ -101,7 +102,9 @@ var WordFlyingSaucer = { initVariables: function() { - this.wordLevel = 0; + this.wordManager = new WordManager(); + this.gameLevelManager = new GameLevelManager(); + this.speedLevel = 0; }, @@ -133,6 +136,22 @@ var WordFlyingSaucer = { location.href = '../../web/client/result.html'; }, + gameOver: function() { + var gameOverText = new GameOverText(); + // this.updateResultRecord(); + this.stopAndGoResult(); + }, + + stopAndGoResult: function() { + // remove all flyingsaucers + var count = this.flyingsaucers.length; + for(var i = 0; i < count; i++) { + this.flyingsaucers[i].destroy(); + } + + game.time.events.add(Phaser.Timer.SECOND * 2, this.goResult, this); + }, + checkTypingContents: function(event) { var count = this.flyingsaucers.length; diff --git a/src/game/typing/word_flyingsaucer/game_level_manager.js b/src/game/typing/word_flyingsaucer/game_level_manager.js new file mode 100644 index 0000000..bfe79d6 --- /dev/null +++ b/src/game/typing/word_flyingsaucer/game_level_manager.js @@ -0,0 +1,9 @@ +function GameLevelManager() { +} + +GameLevelManager.prototype.getWordLevel = function() { + return 0; +} + + +// GameLevelManager.HEART_MAX_COUNT = 5; \ No newline at end of file diff --git a/src/game/typing/word_flyingsaucer/word_manager.js b/src/game/typing/word_flyingsaucer/word_manager.js new file mode 100644 index 0000000..2e70eb4 --- /dev/null +++ b/src/game/typing/word_flyingsaucer/word_manager.js @@ -0,0 +1,18 @@ +function WordManager() { + this.wordList = []; + + this.wordList[0] = "hello"; + this.wordList[1] = "world"; + + this.wordIndex = 0; +} + +WordManager.prototype.getWord = function(wordLevel) { + this.wordIndex = 1 - this.wordIndex; + return this.wordList[this.wordIndex]; +} + +WordManager.prototype.removeWord = function(wordLevel, word) { +} + + diff --git a/src/web/client/word_flyingsaucer.html b/src/web/client/word_flyingsaucer.html index f0cc7a6..07cd5c5 100644 --- a/src/web/client/word_flyingsaucer.html +++ b/src/web/client/word_flyingsaucer.html @@ -88,6 +88,8 @@ + +