Scene
Define a scene¶
Configuration of scene¶
var config = {
key: "",
// active: false,
// visible: true,
// pack: false,
// cameras: null,
// map: {},
// physics: {},
// loader: {},
// plugins: false,
// input: {}
};
key
: The unique key of this Scene. Must be unique within the entire Game instance.active
: Does the Scene start as active or not? An active Scene updates each step.visible
: Does the Scene start as visible or not? A visible Scene renders each step.pack
: An optional Loader Packfile to be loaded before the Scene begins.cameras
: An optional Camera configuration object.{ name: '', x: 0, y: 0, width: scene.sys.scale.width, height: scene.sys.scale.height, zoom: 1, rotation: 0, scrollX: 0, scrollY: 0, roundPixels: false, visible: true, backgroundColor: false, bounds: null, // {x, y, width, height} }
map
: Overwrites the default injection map for a scene.physics
: The physics configuration object for the Scene.{ default: 'arcade', // 'arcade', or 'matter' arcade: {...}, matter: {...} }
arcade
: Arcade Physics configuration.matter
: Matter Physics configuration.loader
: The loader configuration object for the Scene.{ baseURL: '', path: '', enableParallel: true, maxParallelDownloads: 4, crossOrigin: undefined, responseType: '', async: true, user: '', password: '', timeout: 0 }
plugins
: The plugin configuration object for the Scene.{ global: [ //{key, plugin, start} ], scene: [ // ... ] }
input
: The input configuration object for the Scene.{ keyboard: { target: window }, mouse: { target: null, capture: true }, activePointers: 1, touch: { target: null, capture: true }, smoothFactor: 0, gamepad: false, windowEvents: true, }
ES6 class¶
class MyScene extends Phaser.Scene {
constructor(config) {
super(config);
}
init(data) {}
preload() {}
create(data) {}
update(time, delta) {}
}
data
: Parameters passed from adding new scene, or starting scene
Class¶
var MyScene = new Phaser.Class({
Extends: Phaser.Scene,
initialize: function MyScene(config) {
Phaser.Scene.call(this, config);
},
init: function (data) {},
preload: function () {},
create: function (data) {},
update: function (time, delta) {},
});
data
: Parameters passed from adding new scene, or starting scene
var MyGame = {};
MyGame.Boot = function () {};
MyGame.Boot.prototype.constructor = MyGame.Boot;
MyGame.Boot.prototype = {
init: function (data) {},
preload: function () {},
create: function (data) {},
update: function (time, delta) {},
};
data
: Parameters passed from adding new scene, or starting scene
Override¶
var demo = new Phaser.Scene("Demo");
demo.init = function (data) {};
demo.preload = function () {};
demo.create = function (data) {};
demo.update = function (time, delta) {};
data
: Parameters passed from adding new scene, or starting scene
Flow chart¶
graph TB
subgraph Stop
SceneEventDestroy>"scene.events: destroy"]
Shutdown["Shutdown<br>Free game objects"]
end
subgraph Update
SceneUpdate["Run: Every tick<br>scene.update()"]
SceneEventPauseSleep>"scene.events: pause<br>scene.events: sleep"]
Pause["Pause: render but no update<br>Sleep: no update, no render"]
SceneEventResumeWake>"scene.events: resume<br>scene.events: wake"]
end
subgraph Create
SceneEventStart>"scene.events: start"]
SceneEventReady>"scene.events: ready"]
SceneInit["scene.init()"]
ScenePreLoad["Load assets<br>scene.preload()"]
SceneCreate["Create game objects<br>scene.create()"]
end
Start((Start)) --> SceneEventStart
SceneEventStart --> SceneEventReady
SceneEventReady --> SceneInit
SceneInit --> ScenePreLoad
ScenePreLoad --> SceneCreate
SceneCreate --> SceneUpdate
SceneUpdate --> SceneUpdate
SceneUpdate --> |"scene.scene.pause()<br>scene.scene.sleep()"|SceneEventPauseSleep
SceneEventPauseSleep --> Pause
Pause --> |"scene.scene.resume()<br>scene.scene.wake()"|SceneEventResumeWake
SceneEventResumeWake --> SceneUpdate
SceneUpdate --> |"scene.scene.stop()<br>scene.scene.restart()"|Stop
Pause --> |"scene.scene.stop()<br>scene.scene.restart()"|SceneEventDestroy
SceneEventDestroy --> Shutdown
Shutdown --> |"scene.scene.start()<br>scene.scene.launch()<br>scene.scene.restart()"|SceneEventStart
Run
: Update and renderPause
: Render but no updateSleep
: No update, no renderStop
: Shutdown
See also
Start¶
- Invoke
scene.preload()
- Invoke
scene.create()
scene.scene.restart()
is equal to
scene.scene.stop();
scene.scene.start();
Stop¶
- All game objects will be destroyed.
- Registered events on game objects will also be clear, too.
- Touch, keyboard and GamePad events will be clear.
- Cameras will be destroyed.
- Loader will be stopped.
- Assets will be stored in global cache.
- Events registered on scene plugin (
scene.events.on
) won't be clear.
Members¶
plugins
load
: Loaderevents
: Local eventsinput
: Touch, keyboardtweens
: Tween taskstime
: Timercameras
: Camerascene
: scenePluginanims
physics
: ArcadePhysicsmatter
: MatterPhysicsregistry
: Global data manager across all scenesscene.registry.set(key, value); var value = scene.registry.get(key);
data
: Local data managerscene.data.set(key, value); var value = scene.data.get(key);
sys
game
render
cache
sound
textures
add
make
children
: DisplayListscene.children.bringToTop(child); scene.children.sendToBack(child); scene.children.moveUp(child); scene.children.moveDown(child); scene.children.moveUp(child); scene.children.moveTo(child, index); scene.children.moveAbove(child1, child2); // Move child1 above child2 scene.children.moveBelow(child1, child2); // Move child1 below child2 scene.children.swap(child1, child2);
lights
Preserve word in a scene.
Events¶
- Start (Before
scene.init()
)scene.events.on("start", function () {});
- Ready (After
start
)scene.events.on("ready", function () {});
- Every tick
- Preupdate
scene.events.on("preupdate", function (time, delta) {});
- Update
scene.events.on("update", function (time, delta) {});
- Postupdate
scene.events.on("postupdate", function (time, delta) {});
- Render
scene.events.on("render", function () {});
- Preupdate
- State changed
- Pause (from
scene.scene.pause()
)scene.events.on("pause", function () {});
- Resume (from
scene.scene.resume()
)scene.events.on("resume", function () {});
- Sleep (from
scene.scene.sleep()
)scene.events.on("sleep", function () {});
- Wake (from
scene.scene.wake()
)scene.events.on("wake", function () {});
- Stop/shutdown (from
scene.scene.stop()
)scene.events.on("shutdown", function () {});
- Free-up any resources that may be in use by this scene
- Pause (from
- Destroy (from
scene.scene.remove()
)scene.events.on("destroy", function () {});
- Boot
scene.events.on("boot", function () {});
- Game object added to scene
- Add
scene.events.on("addedtoscene", function (gameObject, scene) {});
- Remove
scene.events.on("removedfromscene", function (gameObject, scene) {});
- Add