Introduced a separate stage.fullScreenScaleMode property that is used to decide scaling when fullscreen.

This commit is contained in:
John 2013-12-05 01:00:36 +00:00
parent c5c754725a
commit b978a2b73b
3 changed files with 46 additions and 11 deletions

View file

@ -13,6 +13,13 @@ function create() {
game.stage.backgroundColor = '#e3ed49';
// Stretch to fill
// game.stage.fullScreenScaleMode = Phaser.StageScaleMode.EXACT_FIT;
// Keep original size
// game.stage.fullScreenScaleMode = Phaser.StageScaleMode.NO_SCALE;
// Maintain aspect ratio
game.stage.fullScreenScaleMode = Phaser.StageScaleMode.NO_SCALE;
game.input.onDown.add(gofull, this);
}

View file

@ -52,6 +52,11 @@ Phaser.Stage = function (game, width, height) {
*/
this.scaleMode = Phaser.StageScaleMode.NO_SCALE;
/*
* @property {number} fullScreenScaleMode - Scale mode to be used in fullScreen
*/
this.fullScreenScaleMode = Phaser.StageScaleMode.NO_SCALE;
/**
* @property {Phaser.StageScaleMode} scale - The scale of the current running game.
*/

View file

@ -310,16 +310,25 @@ Phaser.StageScaleMode.prototype = {
if (this.isFullScreen)
{
this.game.stage.canvas.style['width'] = '100%';
this.game.stage.canvas.style['height'] = '100%';
if (this.game.stage.fullScreenScaleMode === Phaser.StageScaleMode.EXACT_FIT)
{
this.game.stage.canvas.style['width'] = '100%';
this.game.stage.canvas.style['height'] = '100%';
this.setMaximum();
this.setMaximum();
this.game.input.scale.setTo(this.game.width / this.width, this.game.height / this.height);
this.game.input.scale.setTo(this.game.width / this.width, this.game.height / this.height);
this.aspectRatio = this.width / this.height;
this.scaleFactor.x = this.game.width / this.width;
this.scaleFactor.y = this.game.height / this.height;
}
else if (this.game.stage.fullScreenScaleMode === Phaser.StageScaleMode.SHOW_ALL)
{
this.game.stage.scale.setShowAll();
this.game.stage.scale.refresh();
}
this.aspectRatio = this.width / this.height;
this.scaleFactor.x = this.game.width / this.width;
this.scaleFactor.y = this.game.height / this.height;
}
else
{
@ -560,13 +569,27 @@ Phaser.StageScaleMode.prototype = {
{
this.setMaximum();
}
else if (this.game.stage.scaleMode == Phaser.StageScaleMode.EXACT_FIT)
else if (!this.isFullScreen)
{
this.setExactFit();
if (this.game.stage.scaleMode == Phaser.StageScaleMode.EXACT_FIT)
{
this.setExactFit();
}
else if (this.game.stage.scaleMode == Phaser.StageScaleMode.SHOW_ALL)
{
this.setShowAll();
}
}
else if (this.game.stage.scaleMode == Phaser.StageScaleMode.SHOW_ALL)
else
{
this.setShowAll();
if (this.game.stage.fullScreenScaleMode == Phaser.StageScaleMode.EXACT_FIT)
{
this.setExactFit();
}
else if (this.game.stage.fullScreenScaleMode == Phaser.StageScaleMode.SHOW_ALL)
{
this.setShowAll();
}
}
this.setSize();