···11111212### Changed
13131414+- Excalibur will now prompt for user input before starting the game to be inline with the new webaudio requirments from chrome/mobile browsers ([#1031](https://github.com/excaliburjs/Excalibur/issues/1031))
1515+1416### Deprecated
15171618### Fixed
···141141 suppressHiDPIScaling?: boolean;
142142143143 /**
144144+ * Suppress play button, it is not recommended users of excalibur switch this feature. Some browsers require a user gesture (like a click)
145145+ * for certain browser features to work like web audio.
146146+ */
147147+ suppressPlayButton?: boolean;
148148+149149+ /**
144150 * Specify how the game window is to be positioned when the [[DisplayMode.Position]] is chosen. This option MUST be specified
145151 * if the DisplayMode is set as [[DisplayMode.Position]]. The position can be either a string or an [[IAbsolutePosition]].
146152 * String must be in the format of css style background-position. The vertical position must precede the horizontal position in strings.
···309315 public displayMode: DisplayMode = DisplayMode.FullScreen;
310316311317 private _suppressHiDPIScaling: boolean = false;
318318+319319+ private _suppressPlayButton: boolean = false;
312320 /**
313321 * Returns the calculated pixel ration for use in rendering
314322 */
···434442 suppressConsoleBootMessage: null,
435443 suppressMinimumBrowserFeatureDetection: null,
436444 suppressHiDPIScaling: null,
445445+ suppressPlayButton: null,
437446 scrollPreventionMode: ScrollPreventionMode.Canvas,
438447 backgroundColor: Color.fromHex('#2185d0') // Excalibur blue
439448 };
···502511O|===|* >________________>\n\
503512 \\|');
504513 console.log('Visit', 'http://excaliburjs.com', 'for more information');
514514+ }
515515+516516+ // Suppress play button
517517+ if (options.suppressPlayButton) {
518518+ this._suppressPlayButton = true;
505519 }
506520507521 this._logger = Logger.getInstance();
···12671281 var loadingComplete: Promise<any>;
12681282 if (loader) {
12691283 this._loader = loader;
12841284+ this._loader.suppressPlayButton = this._suppressPlayButton;
12701285 this._loader.wireEngine(this);
12711286 loadingComplete = this.load(this._loader);
12721287 } else {
···13821397 this._isLoading = true;
1383139813841399 loader.load().then(() => {
13851385- setTimeout(() => {
14001400+ if (this._suppressPlayButton) {
14011401+ setTimeout(() => {
14021402+ this._isLoading = false;
14031403+ complete.resolve();
14041404+ // Delay is to give the logo a chance to show, otherwise don't delay
14051405+ }, 500);
14061406+ } else {
13861407 this._isLoading = false;
13871408 complete.resolve();
13881388- }, 500);
14091409+ }
13891410 });
1390141113911412 return complete;