diff --git a/dev/lib/game/main.js b/dev/lib/game/main.js index a627109..47a0c4d 100755 --- a/dev/lib/game/main.js +++ b/dev/lib/game/main.js @@ -15,7 +15,9 @@ ig.module( .defines(function(){ RunningGame = ig.Game.extend({ font: new ig.Font( 'media/04b03.font.png' ), - score: {'ai': 10, 'human': 10}, + statsBackground: new ig.Image('media/stats_screen.png'), + score: {'ai': 1, 'human': 1}, + showStats: false, init: function() { ig.input.bind(ig.KEY.ESC, 'mainmenu'); @@ -25,20 +27,49 @@ ig.module( ig.input.bind(ig.KEY.K, 'up'); ig.input.bind(ig.KEY.J, 'down'); + ig.input.bind(ig.KEY.SPACE, 'endgame'); + // Load the level - this.loadLevel( LevelLevel1 ); + this.loadLevel(LevelLevel1); }, update: function() { - if (this.score.ai == 0 || this.score.human == 0 || ig.input.pressed('mainmenu')) + // The user is in the game stats menu, next stop: main menu + if (this.showStats) { + if (ig.input.state('endgame')) { + this.showStats = false; ig.system.setGame(StartScreen); - this.parent(); // Update entries and background + //this.parent(); + } + return; + } + + // One player has won the game + if (this.score.ai == 0 || this.score.human == 0) { + this.showStats = true; + } + + // The User want back to the main menu inside a running game + if (ig.input.pressed('mainmenu')) { + ig.system.setGame(StartScreen); + } + + // The game is running + if (!this.showStats) { + this.parent(); // Update entries and background + } }, draw: function() { this.parent(); // Draw entries and background this.font.draw(this.score.ai, 270, 25, ig.Font.ALIGN.CENTER); this.font.draw(this.score.human, 350, 25, ig.Font.ALIGN.CENTER); + + if (this.showStats) { + this.statsBackground.draw(0, 0); + this.font.draw('You ' + (this.score.ai == 0 ? 'won!' : 'loose!'), 200, 50, ig.Font.ALIGN.CENTER); + this.font.draw('Press [SPACE] to move to the main menu', 200, 100, ig.Font.ALIGN.CENTER); + } } }); @@ -47,7 +78,7 @@ ig.module( init: function() { ig.input.bind(ig.KEY.ENTER, 'start'); - ig.input.bind(ig.KEY.SPACE, 'start'); + //ig.input.bind(ig.KEY.SPACE, 'start'); // FIXME: collides with the stats screen }, update: function() { diff --git a/dev/media/stats_screen.png b/dev/media/stats_screen.png new file mode 100644 index 0000000..98e375e Binary files /dev/null and b/dev/media/stats_screen.png differ