mirror of
https://github.com/hexahigh/games.git
synced 2025-12-11 20:15:38 +01:00
111 lines
3.7 KiB
JavaScript
111 lines
3.7 KiB
JavaScript
game.GameOverScreen = me.ScreenObject.extend({
|
|
init: function() {
|
|
this.savedData = null;
|
|
this.handler = null;
|
|
},
|
|
|
|
onResetEvent: function() {
|
|
//save section
|
|
this.savedData = {
|
|
score: game.data.score,
|
|
steps: game.data.steps
|
|
};
|
|
me.save.add(this.savedData);
|
|
|
|
if (!me.save.topSteps) me.save.add({topSteps: game.data.steps});
|
|
if (game.data.steps > me.save.topSteps) {
|
|
me.save.topSteps = game.data.steps;
|
|
game.data.newHiScore = true;
|
|
}
|
|
me.input.bindKey(me.input.KEY.ENTER, "enter", true);
|
|
me.input.bindKey(me.input.KEY.SPACE, "enter", false)
|
|
me.input.bindPointer(me.input.pointer.LEFT, me.input.KEY.ENTER);
|
|
|
|
this.handler = me.event.subscribe(me.event.KEYDOWN,
|
|
function (action, keyCode, edge) {
|
|
if (action === "enter") {
|
|
me.state.change(me.state.MENU);
|
|
}
|
|
});
|
|
|
|
me.game.world.addChild(new me.Sprite(
|
|
me.game.viewport.width/2,
|
|
me.game.viewport.height/2 - 100,
|
|
{image: 'gameover'}
|
|
), 12);
|
|
|
|
var gameOverBG = new me.Sprite(
|
|
me.game.viewport.width/2,
|
|
me.game.viewport.height/2,
|
|
{image: 'gameoverbg'}
|
|
);
|
|
me.game.world.addChild(gameOverBG, 10);
|
|
|
|
me.game.world.addChild(new BackgroundLayer('bg', 1));
|
|
|
|
// ground
|
|
this.ground1 = me.pool.pull('ground', 0, me.game.viewport.height - 96);
|
|
this.ground2 = me.pool.pull('ground', me.game.viewport.width,
|
|
me.video.renderer.getHeight() - 96);
|
|
me.game.world.addChild(this.ground1, 11);
|
|
me.game.world.addChild(this.ground2, 11);
|
|
|
|
// add the dialog witht he game information
|
|
if (game.data.newHiScore) {
|
|
var newRect = new me.Sprite(
|
|
gameOverBG.width/2,
|
|
gameOverBG.height/2,
|
|
{image: 'new'}
|
|
);
|
|
me.game.world.addChild(newRect, 12);
|
|
}
|
|
|
|
this.dialog = new (me.Renderable.extend({
|
|
// constructor
|
|
init: function() {
|
|
this._super(me.Renderable, 'init',
|
|
[0, 0, me.game.viewport.width/2, me.game.viewport.height/2]
|
|
);
|
|
this.font = new me.Font('gamefont', 40, 'black', 'left');
|
|
this.steps = 'Steps: ' + game.data.steps.toString();
|
|
this.topSteps= 'Higher Step: ' + me.save.topSteps.toString();
|
|
},
|
|
|
|
draw: function (renderer) {
|
|
var stepsText = this.font.measureText(renderer, this.steps);
|
|
var topStepsText = this.font.measureText(renderer, this.topSteps);
|
|
var scoreText = this.font.measureText(renderer, this.score);
|
|
|
|
//steps
|
|
this.font.draw(
|
|
renderer,
|
|
this.steps,
|
|
me.game.viewport.width/2 - stepsText.width/2 - 60,
|
|
me.game.viewport.height/2
|
|
);
|
|
|
|
//top score
|
|
this.font.draw(
|
|
renderer,
|
|
this.topSteps,
|
|
me.game.viewport.width/2 - stepsText.width/2 - 60,
|
|
me.game.viewport.height/2 + 50
|
|
);
|
|
}
|
|
}));
|
|
me.game.world.addChild(this.dialog, 12);
|
|
},
|
|
|
|
onDestroyEvent: function() {
|
|
// unregister the event
|
|
me.event.unsubscribe(this.handler);
|
|
me.input.unbindKey(me.input.KEY.ENTER);
|
|
me.input.unbindKey(me.input.KEY.SPACE);
|
|
me.input.unbindPointer(me.input.pointer.LEFT);
|
|
this.ground1 = null;
|
|
this.ground2 = null;
|
|
this.font = null;
|
|
me.audio.stop("theme");
|
|
}
|
|
});
|