Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Unified Diff: components/neterror/resources/offline.js

Issue 2955153002: Add arcade mode to chrome://dino (Closed)
Patch Set: Update positioning calculation Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/neterror/resources/neterror.css ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/neterror/resources/offline.js
diff --git a/components/neterror/resources/offline.js b/components/neterror/resources/offline.js
index ed3582f278dc2c95983dc03cb8070ae23cba0f60..e89c25dd6c3f170ac10577005db5bb4deb910e5f 100644
--- a/components/neterror/resources/offline.js
+++ b/components/neterror/resources/offline.js
@@ -22,7 +22,7 @@ function Runner(outerContainerId, opt_config) {
this.snackbarEl = null;
this.config = opt_config || Runner.config;
-
+ // Logical dimensions of the container.
this.dimensions = Runner.defaultDimensions;
this.canvas = null;
@@ -96,6 +96,9 @@ var IS_MOBILE = /Android/.test(window.navigator.userAgent) || IS_IOS;
/** @const */
var IS_TOUCH_ENABLED = 'ontouchstart' in window;
+/** @const */
+var ARCADE_MODE_URL = 'chrome://dino/';
+
/**
* Default game configuration.
* @enum {number}
@@ -121,7 +124,8 @@ Runner.config = {
MOBILE_SPEED_COEFFICIENT: 1.2,
RESOURCE_TEMPLATE_ID: 'audio-resources',
SPEED: 6,
- SPEED_DROP_COEFFICIENT: 3
+ SPEED_DROP_COEFFICIENT: 3,
+ ARCADE_MODE_TOP_POSITION_PERCENT: 0.1
};
@@ -140,6 +144,7 @@ Runner.defaultDimensions = {
* @enum {string}
*/
Runner.classes = {
+ ARCADE_MODE: 'arcade-mode',
CANVAS: 'runner-canvas',
CONTAINER: 'runner-container',
CRASHED: 'crashed',
@@ -225,7 +230,6 @@ Runner.events = {
LOAD: 'load'
};
-
Runner.prototype = {
/**
* Whether the easter egg has been disabled. CrOS enterprise enrolled devices.
@@ -418,6 +422,12 @@ Runner.prototype = {
boxStyles.paddingLeft.length - 2));
this.dimensions.WIDTH = this.outerContainerEl.offsetWidth - padding * 2;
+ if (this.isArcadeMode()) {
+ this.dimensions.WIDTH = Math.min(DEFAULT_WIDTH, this.dimensions.WIDTH);
+ if (this.activated) {
+ this.setArcadeModeContainerScale();
+ }
+ }
// Redraw the elements back onto the canvas.
if (this.canvas) {
@@ -486,6 +496,9 @@ Runner.prototype = {
* Update the game status to started.
*/
startGame: function() {
+ if (this.isArcadeMode()) {
+ this.setArcadeMode();
+ }
this.runningTime = 0;
this.playingIntro = false;
this.tRex.playingIntro = false;
@@ -825,6 +838,39 @@ Runner.prototype = {
}
},
+ /**
+ * Whether the game should go into arcade mode.
+ * @return {boolean}
+ */
+ isArcadeMode: function() {
+ return document.title == ARCADE_MODE_URL;
+ },
+
+ /**
+ * Hides offline messaging for a fullscreen game only experience.
+ */
+ setArcadeMode: function() {
+ document.body.classList.add(Runner.classes.ARCADE_MODE);
+ this.setArcadeModeContainerScale();
+ },
+
+ /**
+ * Sets the scaling for arcade mode.
+ */
+ setArcadeModeContainerScale: function() {
+ var windowHeight = window.innerHeight;
+ var scaleHeight = windowHeight / this.dimensions.HEIGHT;
+ var scaleWidth = window.innerWidth / this.dimensions.WIDTH;
+ var scale = Math.max(1, Math.min(scaleHeight, scaleWidth));
+ var scaledCanvasHeight = this.dimensions.HEIGHT * scale;
+ // Positions the game container at 10% of the available vertical window
+ // height minus the game container height.
+ var translateY = Math.max(0, (windowHeight - scaledCanvasHeight) *
+ Runner.config.ARCADE_MODE_TOP_POSITION_PERCENT);
+ this.containerEl.style.transform = 'scale(' + scale + ') translateY(' +
+ translateY + 'px)';
+ },
+
/**
* Pause the game if the tab is not in focus.
*/
« no previous file with comments | « components/neterror/resources/neterror.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698