Phaser Class: Game

## Phaser. Game

#### new Game(width, height, renderer, parent, state, transparent, antialias, physicsConfig)

  This is where the magic happens. The Game object is the heart of your game,
  providing quick access to common functions and handling the boot process.

  "Hell, there are no rules here - we're trying to accomplish something."
  Thomas A. Edison

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `width` | number | string | <optional> | 800 | The width of your game in game pixels. If given as a string the value must be between 0 and 100 and will be used as the percentage width of the parent container, or the browser window if no parent is given.
  `height` | number | string | <optional> | 600 | The height of your game in game pixels. If given as a string the value must be between 0 and 100 and will be used as the percentage height of the parent container, or the browser window if no parent is given.
  `renderer` | number | <optional> | Phaser.AUTO | Which renderer to use: Phaser.AUTO will auto-detect, Phaser.WEBGL, Phaser.CANVAS or Phaser.HEADLESS (no rendering at all).
  `parent` | string | HTMLElement | <optional> | '' | The DOM element into which this games canvas will be injected. Either a DOM ID (string) or the element itself.
  `state` | object | <optional> | null | The default state object. A object consisting of Phaser.State functions (preload, create, update, render) or null.
  `transparent` | boolean | <optional> | false | Use a transparent canvas background or not.
  `antialias` | boolean | <optional> | true | Draw all image textures anti-aliased or not. The default is for smooth textures, but disable if your game features pixel art.
  `physicsConfig` | object | <optional> | null | A physics configuration object to pass to the Physics world on creation.

  Source - core/Game.js, line 25

### Members

#### add :Phaser.GameObjectFactory

  Reference to the Phaser.GameObjectFactory.

  Source - core/Game.js, line 156

#### antialias :boolean

  Anti-alias graphics. By default scaled images are smoothed in Canvas and WebGL, set anti-alias to false to disable this globally.

  Default Value:
    - true
  Source - core/Game.js, line 102

#### cache :Phaser.Cache

  Reference to the assets cache.

  Source - core/Game.js, line 166

#### camera :Phaser.Camera

  A handy reference to world.camera.

  Source - core/Game.js, line 241

#### canvas :HTMLCanvasElement

  A handy reference to renderer.view, the canvas that the game is being rendered in to.

  Source - core/Game.js, line 246

#### clearBeforeRender :boolean

  Clear the Canvas each frame before rendering the display list.
  You can set this to `false` to gain some performance if your game always contains a background that completely fills the display.

  Default Value:
    - true
  Source - core/Game.js, line 116

#### config :object

  The Phaser.Game configuration object.

  Source - core/Game.js, line 36

#### context :CanvasRenderingContext2D

  A handy reference to renderer.context (only set for CANVAS games, not WebGL)

  Source - core/Game.js, line 251

#### create :Phaser.Create

  The Asset Generator.

  Source - core/Game.js, line 266

#### <internal> currentUpdateID :integer

  The ID of the current/last logic update applied this render frame, starting from 0.
  The first update is `currentUpdateID === 0` and the last update is `currentUpdateID === updatesThisFrame.`

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 336

#### debug :Phaser.Utils.Debug

  A set of useful debug utilities.

  Source - core/Game.js, line 256

#### device :Phaser.Device

  Contains device information and capabilities.

  Source - core/Game.js, line 236

#### forceSingleUpdate :boolean

  Should the game loop force a logic update, regardless of the delta timer? Set to true if you know you need this. You can toggle it on the fly.

  Source - core/Game.js, line 380

#### fpsProblemNotifier :Phaser.Signal

  If the game is struggling to maintain the desired FPS, this signal will be dispatched.
  The desired/chosen FPS should probably be closer to the Phaser.Time#suggestedFps value.

  Source - core/Game.js, line 375

#### <readonly> height :integer

  The current Game Height in pixels.

  Do not modify this property directly: use Phaser.ScaleManager#setGameSize - eg. `game.scale.setGameSize(width, height)` - instead.

  Default Value:
    - 600
  Source - core/Game.js, line 69

#### <readonly> id :number

  Phaser Game ID (for when Pixi supports multiple instances).

  Source - core/Game.js, line 31

#### input :Phaser.Input

  Reference to the input manager

  Source - core/Game.js, line 171

#### <readonly> isBooted :boolean

  Whether the game engine is booted, aka available.

  Source - core/Game.js, line 139

#### <readonly> isRunning :boolean

  Is game running or paused?

  Source - core/Game.js, line 145

#### load :Phaser.Loader

  Reference to the assets loader.

  Source - core/Game.js, line 176

#### lockRender :boolean

  If `false` Phaser will automatically render the display list every update. If `true` the render loop will be skipped.
  You can toggle this value at run-time to gain exact control over when Phaser renders. This can be useful in certain types of game or application.
  Please note that if you don't render the display list then none of the game object transforms will be updated, so use this value carefully.

  Source - core/Game.js, line 275

#### make :Phaser.GameObjectCreator

  Reference to the GameObject Creator.

  Source - core/Game.js, line 161

#### math :Phaser.Math

  Reference to the math helper.

  Source - core/Game.js, line 181

#### net :Phaser.Net

  Reference to the network class.

  Source - core/Game.js, line 186

#### onBlur :Phaser.Signal

  This event is fired when the game no longer has focus (typically on page hide).

  Source - core/Game.js, line 311

#### onFocus :Phaser.Signal

  This event is fired when the game has focus (typically on page show).

  Source - core/Game.js, line 316

#### onPause :Phaser.Signal

  This event is fired when the game pauses.

  Source - core/Game.js, line 301

#### onResume :Phaser.Signal

  This event is fired when the game resumes from a paused state.

  Source - core/Game.js, line 306

#### parent :string|HTMLElement

  The Games DOM parent.

  ##### Type:

  - string | HTMLElement
  Source - core/Game.js, line 47

#### particles :Phaser.Particles

  The Particle Manager.

  Source - core/Game.js, line 261

#### paused :boolean

  The paused state of the Game. A paused game doesn't update any of its subsystems.
  When a game is paused the onPause event is dispatched. When it is resumed the onResume event is dispatched. Gets and sets the paused state of the Game.

  Source - core/Game.js, line 1154

#### <readonly> pendingStep :boolean

  An internal property used by enableStep, but also useful to query from your own game objects.

  Source - core/Game.js, line 289

#### physics :Phaser.Physics

  Reference to the physics manager.

  Source - core/Game.js, line 221

#### physicsConfig :object

  The Phaser.Physics.World configuration object.

  Source - core/Game.js, line 41

#### plugins :Phaser.PluginManager

  Reference to the plugin manager.

  Source - core/Game.js, line 226

#### preserveDrawingBuffer :boolean

  The value of the preserveDrawingBuffer flag affects whether or not the contents of the stencil buffer is retained after rendering.

  Source - core/Game.js, line 108

#### <internal> raf :Phaser.RequestAnimationFrame

  Automatically handles the core game loop via requestAnimationFrame or setTimeout

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 151

#### <internal> renderer :PIXI.CanvasRenderer|PIXI.WebGLRenderer

  The Pixi Renderer.

  ##### Type:

  - PIXI.CanvasRenderer | PIXI.WebGLRenderer
  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 122

#### <readonly> renderType :number

  The Renderer this game will use. Either Phaser.AUTO, Phaser.CANVAS, Phaser.WEBGL, or Phaser.HEADLESS.

  Source - core/Game.js, line 128

#### <readonly> resolution :integer

  The resolution of your game. This value is read only, but can be changed at start time it via a game configuration object.

  Default Value:
    - 1
  Source - core/Game.js, line 78

#### rnd :Phaser.RandomDataGenerator

  Instance of repeatable random data generator helper.

  Source - core/Game.js, line 231

#### scale :Phaser.ScaleManager

  The game scale manager.

  Source - core/Game.js, line 191

#### sound :Phaser.SoundManager

  Reference to the sound manager.

  Source - core/Game.js, line 196

#### stage :Phaser.Stage

  Reference to the stage.

  Source - core/Game.js, line 201

#### state :Phaser.StateManager

  The StateManager.

  Source - core/Game.js, line 133

#### <readonly> stepCount :number

  When stepping is enabled this contains the current step cycle.

  Source - core/Game.js, line 296

#### <readonly> stepping :boolean

  Enable core loop stepping with Game.enableStep().

  Source - core/Game.js, line 282

#### time :Phaser.Time

  Reference to the core game clock.

  Source - core/Game.js, line 206

#### transparent :boolean

  Use a transparent canvas background or not.

  Source - core/Game.js, line 96

#### tweens :Phaser.TweenManager

  Reference to the tween manager.

  Source - core/Game.js, line 211

#### <internal> updatesThisFrame :integer

  Number of logic updates expected to occur this render frame; will be 1 unless there are catch-ups required (and allowed).

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 343

#### <readonly> width :integer

  The current Game Width in pixels.

  Do not modify this property directly: use Phaser.ScaleManager#setGameSize - eg. `game.scale.setGameSize(width, height)` - instead.

  Default Value:
    - 800
  Source - core/Game.js, line 58

#### world :Phaser.World

  Reference to the world.

  Source - core/Game.js, line 216

### Methods

#### <internal> boot()

  Initialize engine sub modules and start the game.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 520

#### destroy()

  Nukes the entire game from orbit.

  Calls destroy on Game.state, Game.sound, Game.scale, Game.stage, Game.input, Game.physics and Game.plugins.

  Then sets all of those local handlers to null, destroys the renderer, removes the canvas from the DOM
  and resets the PIXI default renderer.

  Source - core/Game.js, line 1001

#### disableStep()

  Disables core game loop stepping.

  Source - core/Game.js, line 976

#### enableStep()

  Enable core game loop stepping. When enabled you must call game.step() directly (perhaps via a DOM button?)
  Calling step will advance the game loop by one frame. This is extremely useful for hard to track down errors!

  Source - core/Game.js, line 962

#### <internal> focusGain(event)

  Called by the Stage visibility handler.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `event` | object | The DOM event that caused the game to pause, if any.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 1132

#### <internal> focusLoss(event)

  Called by the Stage visibility handler.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `event` | object | The DOM event that caused the game to pause, if any.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 1114

#### <internal> gamePaused(event)

  Called by the Stage visibility handler.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `event` | object | The DOM event that caused the game to pause, if any.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 1048

#### <internal> gameResumed(event)

  Called by the Stage visibility handler.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `event` | object | The DOM event that caused the game to pause, if any.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 1080

#### <internal> parseConfig()

  Parses a Game configuration object.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 440

#### <internal> setUpRenderer()

  Checks if the device is capable of using the requested renderer and sets it up or an alternative if not.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 676

#### <internal> showDebugHeader()

  Displays a Phaser version debug header in the console.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 609

#### step()

  When stepping is enabled you must call this function directly (perhaps via a DOM button?) to advance the game loop by one frame.
  This is extremely useful to hard to track down errors! Use the internal stepCount property to monitor progress.

  Source - core/Game.js, line 988

#### <internal> update(time)

  The core game loop.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `time` | number | The current time as provided by RequestAnimationFrame.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 777

#### <internal> updateLogic(timeStep)

  Updates all logic subsystems in Phaser. Called automatically by Game.update.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `timeStep` | number | The current timeStep value as determined by Game.update.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 877

#### <internal> updateRender(elapsedTime)

  Runs the Render cycle.
  It starts by calling State.preRender. In here you can do any last minute adjustments of display objects as required.
  It then calls the renderer, which renders the entire display list, starting from the Stage object and working down.
  It then calls plugin.render on any loaded plugins, in the order in which they were enabled.
  After this State.render is called. Any rendering that happens here will take place on-top of the display list.
  Finally plugin.postRender is called on any loaded plugins, in the order in which they were enabled.
  This method is called automatically by Game.update, you don't need to call it directly.
  Should you wish to have fine-grained control over when Phaser renders then use the `Game.lockRender` boolean.
  Phaser will only render when this boolean is `false`.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `elapsedTime` | number | The time elapsed since the last update.

  Internal:
    - This member is internal (protected) and may be modified or removed in the future.
  Source - core/Game.js, line 925