mirror of
https://github.com/wassname/phaser.git
synced 2026-07-20 12:30:48 +08:00
Updating all files to adhere to the JSHint settings and fixing lots of documentation errors on the way.
This commit is contained in:
+259
-310
@@ -1,3 +1,5 @@
|
||||
/* jshint newcap: false */
|
||||
|
||||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2013 Photon Storm Ltd.
|
||||
@@ -14,148 +16,117 @@
|
||||
*/
|
||||
Phaser.StateManager = function (game, pendingState) {
|
||||
|
||||
/**
|
||||
* A reference to the currently running game.
|
||||
* @property {Phaser.Game} game.
|
||||
*/
|
||||
this.game = game;
|
||||
/**
|
||||
* @property {Phaser.Game} game - A reference to the currently running game.
|
||||
*/
|
||||
this.game = game;
|
||||
|
||||
/**
|
||||
* Description.
|
||||
* @property {Description} states.
|
||||
*/
|
||||
this.states = {};
|
||||
/**
|
||||
* @property {Object} states - The object containing Phaser.States.
|
||||
*/
|
||||
this.states = {};
|
||||
|
||||
/**
|
||||
* @property {Phaser.State} _pendingState - The state to be switched to in the next frame.
|
||||
* @private
|
||||
*/
|
||||
this._pendingState = null;
|
||||
|
||||
if (pendingState !== null)
|
||||
{
|
||||
this._pendingState = pendingState;
|
||||
}
|
||||
|
||||
/**
|
||||
* @property {boolean} _created - Flag that sets if the State has been created or not.
|
||||
* @private
|
||||
*/
|
||||
this._created = false;
|
||||
|
||||
/**
|
||||
* @property {string} current - The current active State object (defaults to null).
|
||||
*/
|
||||
this.current = '';
|
||||
|
||||
/**
|
||||
* @property {function} onInitCallback - This will be called when the state is started (i.e. set as the current active state).
|
||||
*/
|
||||
this.onInitCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onPreloadCallback - This will be called when init states (loading assets...).
|
||||
*/
|
||||
this.onPreloadCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onCreateCallback - This will be called when create states (setup states...).
|
||||
*/
|
||||
this.onCreateCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onUpdateCallback - This will be called when State is updated, this doesn't happen during load (@see onLoadUpdateCallback).
|
||||
*/
|
||||
this.onUpdateCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onRenderCallback - This will be called when the State is rendered, this doesn't happen during load (see onLoadRenderCallback).
|
||||
*/
|
||||
this.onRenderCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onPreRenderCallback - This will be called before the State is rendered and before the stage is cleared.
|
||||
*/
|
||||
this.onPreRenderCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onLoadUpdateCallback - This will be called when the State is updated but only during the load process.
|
||||
*/
|
||||
this.onLoadUpdateCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onLoadRenderCallback - This will be called when the State is rendered but only during the load process.
|
||||
*/
|
||||
this.onLoadRenderCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onPausedCallback - This will be called when the state is paused.
|
||||
*/
|
||||
this.onPausedCallback = null;
|
||||
|
||||
/**
|
||||
* @property {function} onShutDownCallback - This will be called when the state is shut down (i.e. swapped to another state).
|
||||
*/
|
||||
this.onShutDownCallback = null;
|
||||
|
||||
if (pendingState !== null)
|
||||
{
|
||||
this._pendingState = pendingState;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Phaser.StateManager.prototype = {
|
||||
|
||||
/**
|
||||
* A reference to the currently running game.
|
||||
* @property {Phaser.Game} game.
|
||||
*/
|
||||
game: null,
|
||||
|
||||
/**
|
||||
* The state to be switched to in the next frame.
|
||||
* @property {State} _pendingState
|
||||
* @private
|
||||
*/
|
||||
_pendingState: null,
|
||||
/**
|
||||
* The Boot handler is called by Phaser.Game when it first starts up.
|
||||
* @method Phaser.StateManager#boot
|
||||
* @private
|
||||
*/
|
||||
boot: function () {
|
||||
|
||||
/**
|
||||
* Flag that sets if the State has been created or not.
|
||||
* @property {boolean}_created
|
||||
* @private
|
||||
*/
|
||||
_created: false,
|
||||
if (this._pendingState !== null)
|
||||
{
|
||||
if (typeof this._pendingState === 'string')
|
||||
{
|
||||
// State was already added, so just start it
|
||||
this.start(this._pendingState, false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.add('default', this._pendingState, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* The state to be switched to in the next frame.
|
||||
* @property {Description} states
|
||||
*/
|
||||
states: {},
|
||||
}
|
||||
|
||||
/**
|
||||
* The current active State object (defaults to null).
|
||||
* @property {string} current
|
||||
*/
|
||||
current: '',
|
||||
|
||||
/**
|
||||
* This will be called when the state is started (i.e. set as the current active state).
|
||||
* @property {function} onInitCallback
|
||||
*/
|
||||
onInitCallback: null,
|
||||
},
|
||||
|
||||
/**
|
||||
* This will be called when init states (loading assets...).
|
||||
* @property {function} onPreloadCallback
|
||||
*/
|
||||
onPreloadCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when create states (setup states...).
|
||||
* @property {function} onCreateCallback
|
||||
*/
|
||||
onCreateCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when State is updated, this doesn't happen during load (@see onLoadUpdateCallback).
|
||||
* @property {function} onUpdateCallback
|
||||
*/
|
||||
onUpdateCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when the State is rendered, this doesn't happen during load (see onLoadRenderCallback).
|
||||
* @property {function} onRenderCallback
|
||||
*/
|
||||
onRenderCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called before the State is rendered and before the stage is cleared.
|
||||
* @property {function} onPreRenderCallback
|
||||
*/
|
||||
onPreRenderCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when the State is updated but only during the load process.
|
||||
* @property {function} onLoadUpdateCallback
|
||||
*/
|
||||
onLoadUpdateCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when the State is rendered but only during the load process.
|
||||
* @property {function} onLoadRenderCallback
|
||||
*/
|
||||
onLoadRenderCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when states paused.
|
||||
* @property {function} onPausedCallback
|
||||
*/
|
||||
onPausedCallback: null,
|
||||
|
||||
/**
|
||||
* This will be called when the state is shut down (i.e. swapped to another state).
|
||||
* @property {function} onShutDownCallback
|
||||
*/
|
||||
onShutDownCallback: null,
|
||||
|
||||
/**
|
||||
* Description.
|
||||
* @method Phaser.StateManager#boot
|
||||
* @private
|
||||
*/
|
||||
boot: function () {
|
||||
|
||||
// console.log('Phaser.StateManager.boot');
|
||||
|
||||
if (this._pendingState !== null)
|
||||
{
|
||||
// console.log('_pendingState found');
|
||||
// console.log(typeof this._pendingState);
|
||||
|
||||
if (typeof this._pendingState === 'string')
|
||||
{
|
||||
// State was already added, so just start it
|
||||
this.start(this._pendingState, false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.add('default', this._pendingState, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Add a new State.
|
||||
* @method Phaser.StateManager#add
|
||||
* @param key {string} - A unique key you use to reference this state, i.e. "MainMenu", "Level1".
|
||||
@@ -166,78 +137,69 @@ Phaser.StateManager.prototype = {
|
||||
|
||||
if (typeof autoStart === "undefined") { autoStart = false; }
|
||||
|
||||
// console.log('Phaser.StateManager.addState', key);
|
||||
// console.log(typeof state);
|
||||
// console.log('autoStart?', autoStart);
|
||||
var newState;
|
||||
|
||||
var newState;
|
||||
if (state instanceof Phaser.State)
|
||||
{
|
||||
newState = state;
|
||||
}
|
||||
else if (typeof state === 'object')
|
||||
{
|
||||
newState = state;
|
||||
newState.game = this.game;
|
||||
}
|
||||
else if (typeof state === 'function')
|
||||
{
|
||||
newState = new state(this.game);
|
||||
}
|
||||
|
||||
if (state instanceof Phaser.State)
|
||||
{
|
||||
// console.log('Phaser.StateManager.addState: Phaser.State given');
|
||||
newState = state;
|
||||
}
|
||||
else if (typeof state === 'object')
|
||||
{
|
||||
// console.log('Phaser.StateManager.addState: Object given');
|
||||
newState = state;
|
||||
newState.game = this.game;
|
||||
}
|
||||
else if (typeof state === 'function')
|
||||
{
|
||||
// console.log('Phaser.StateManager.addState: Function given');
|
||||
newState = new state(this.game);
|
||||
}
|
||||
this.states[key] = newState;
|
||||
|
||||
this.states[key] = newState;
|
||||
if (autoStart)
|
||||
{
|
||||
if (this.game.isBooted)
|
||||
{
|
||||
this.start(key);
|
||||
}
|
||||
else
|
||||
{
|
||||
this._pendingState = key;
|
||||
}
|
||||
}
|
||||
|
||||
if (autoStart)
|
||||
{
|
||||
if (this.game.isBooted)
|
||||
{
|
||||
// console.log('Game is booted, so we can start the state now');
|
||||
this.start(key);
|
||||
}
|
||||
else
|
||||
{
|
||||
// console.log('Game is NOT booted, so set the current state as pending');
|
||||
this._pendingState = key;
|
||||
}
|
||||
}
|
||||
|
||||
return newState;
|
||||
return newState;
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Delete the given state.
|
||||
* @method Phaser.StateManager#remove
|
||||
* @param {string} key - A unique key you use to reference this state, i.e. "MainMenu", "Level1".
|
||||
*/
|
||||
remove: function (key) {
|
||||
|
||||
if (this.current == key)
|
||||
{
|
||||
this.callbackContext = null;
|
||||
if (this.current == key)
|
||||
{
|
||||
this.callbackContext = null;
|
||||
|
||||
this.onInitCallback = null;
|
||||
this.onShutDownCallback = null;
|
||||
this.onInitCallback = null;
|
||||
this.onShutDownCallback = null;
|
||||
|
||||
this.onPreloadCallback = null;
|
||||
this.onLoadRenderCallback = null;
|
||||
this.onLoadUpdateCallback = null;
|
||||
this.onCreateCallback = null;
|
||||
this.onUpdateCallback = null;
|
||||
this.onRenderCallback = null;
|
||||
this.onPausedCallback = null;
|
||||
this.onDestroyCallback = null;
|
||||
}
|
||||
this.onPreloadCallback = null;
|
||||
this.onLoadRenderCallback = null;
|
||||
this.onLoadUpdateCallback = null;
|
||||
this.onCreateCallback = null;
|
||||
this.onUpdateCallback = null;
|
||||
this.onRenderCallback = null;
|
||||
this.onPausedCallback = null;
|
||||
this.onDestroyCallback = null;
|
||||
}
|
||||
|
||||
delete this.states[key];
|
||||
delete this.states[key];
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Start the given state
|
||||
* @method Phaser.StateManager#start
|
||||
* @param {string} key - The key of the state you want to start.
|
||||
@@ -246,84 +208,75 @@ Phaser.StateManager.prototype = {
|
||||
*/
|
||||
start: function (key, clearWorld, clearCache) {
|
||||
|
||||
// console.log('Phaser.StateManager.start', key);
|
||||
// console.log(this);
|
||||
// console.log(this.callbackContext);
|
||||
|
||||
if (typeof clearWorld === "undefined") { clearWorld = true; }
|
||||
if (typeof clearCache === "undefined") { clearCache = false; }
|
||||
|
||||
if (this.game.isBooted == false)
|
||||
if (this.game.isBooted === false)
|
||||
{
|
||||
// console.log('Game is NOT booted, so set the requested state as pending');
|
||||
this._pendingState = key;
|
||||
return;
|
||||
this._pendingState = key;
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.checkState(key) == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Already got a state running?
|
||||
if (this.current)
|
||||
{
|
||||
this.onShutDownCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
if (this.checkState(key) === false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Already got a state running?
|
||||
if (this.current)
|
||||
{
|
||||
this.onShutDownCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
|
||||
if (clearWorld)
|
||||
{
|
||||
this.game.tweens.removeAll();
|
||||
if (clearWorld)
|
||||
{
|
||||
this.game.tweens.removeAll();
|
||||
|
||||
this.game.world.destroy();
|
||||
this.game.world.destroy();
|
||||
|
||||
if (clearCache == true)
|
||||
{
|
||||
this.game.cache.destroy();
|
||||
}
|
||||
}
|
||||
if (clearCache === true)
|
||||
{
|
||||
this.game.cache.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
this.setCurrentState(key);
|
||||
}
|
||||
this.setCurrentState(key);
|
||||
}
|
||||
|
||||
if (this.onPreloadCallback)
|
||||
{
|
||||
// console.log('Preload Callback found');
|
||||
this.game.load.reset();
|
||||
this.onPreloadCallback.call(this.callbackContext, this.game);
|
||||
|
||||
// Is the loader empty?
|
||||
if (this.game.load.queueSize == 0)
|
||||
if (this.game.load.queueSize === 0)
|
||||
{
|
||||
// console.log('Loader queue empty');
|
||||
this.game.loadComplete();
|
||||
}
|
||||
else
|
||||
{
|
||||
// console.log('Loader started');
|
||||
// Start the loader going as we have something in the queue
|
||||
this.game.load.start();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// console.log('Preload callback not found');
|
||||
// No init? Then there was nothing to load either
|
||||
this.game.loadComplete();
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Used by onInit and onShutdown when those functions don't exist on the state
|
||||
|
||||
/**
|
||||
* Used by onInit and onShutdown when those functions don't exist on the state
|
||||
* @method Phaser.StateManager#dummy
|
||||
* @private
|
||||
*/
|
||||
dummy: function () {
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Description.
|
||||
* @method Phaser.StateManager#checkState
|
||||
* @param {string} key - The key of the state you want to check.
|
||||
@@ -331,37 +284,37 @@ Phaser.StateManager.prototype = {
|
||||
*/
|
||||
checkState: function (key) {
|
||||
|
||||
if (this.states[key])
|
||||
{
|
||||
var valid = false;
|
||||
if (this.states[key])
|
||||
{
|
||||
var valid = false;
|
||||
|
||||
if (this.states[key]['preload']) { valid = true; }
|
||||
if (this.states[key]['preload']) { valid = true; }
|
||||
|
||||
if (valid == false && this.states[key]['loadRender']) { valid = true; }
|
||||
if (valid == false && this.states[key]['loadUpdate']) { valid = true; }
|
||||
if (valid == false && this.states[key]['create']) { valid = true; }
|
||||
if (valid == false && this.states[key]['update']) { valid = true; }
|
||||
if (valid == false && this.states[key]['preRender']) { valid = true; }
|
||||
if (valid == false && this.states[key]['render']) { valid = true; }
|
||||
if (valid == false && this.states[key]['paused']) { valid = true; }
|
||||
if (valid === false && this.states[key]['loadRender']) { valid = true; }
|
||||
if (valid === false && this.states[key]['loadUpdate']) { valid = true; }
|
||||
if (valid === false && this.states[key]['create']) { valid = true; }
|
||||
if (valid === false && this.states[key]['update']) { valid = true; }
|
||||
if (valid === false && this.states[key]['preRender']) { valid = true; }
|
||||
if (valid === false && this.states[key]['render']) { valid = true; }
|
||||
if (valid === false && this.states[key]['paused']) { valid = true; }
|
||||
|
||||
if (valid == false)
|
||||
{
|
||||
console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions.");
|
||||
return false;
|
||||
}
|
||||
if (valid === false)
|
||||
{
|
||||
console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
console.warn("Phaser.StateManager - No state found with the key: " + key);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
console.warn("Phaser.StateManager - No state found with the key: " + key);
|
||||
return false;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Links game properties to the State given by the key.
|
||||
* @method Phaser.StateManager#link
|
||||
* @param {string} key - State key.
|
||||
@@ -369,7 +322,6 @@ Phaser.StateManager.prototype = {
|
||||
*/
|
||||
link: function (key) {
|
||||
|
||||
// console.log('linked');
|
||||
this.states[key].game = this.game;
|
||||
this.states[key].add = this.game.add;
|
||||
this.states[key].camera = this.game.camera;
|
||||
@@ -388,19 +340,19 @@ Phaser.StateManager.prototype = {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Sets the current State. Should not be called directly (use StateManager.start)
|
||||
* @method Phaser.StateManager#setCurrentState
|
||||
* @param {string} key - State key.
|
||||
* @protected
|
||||
*/
|
||||
setCurrentState: function (key) {
|
||||
setCurrentState: function (key) {
|
||||
|
||||
this.callbackContext = this.states[key];
|
||||
|
||||
this.link(key);
|
||||
|
||||
// Used when the state is set as being the current active state
|
||||
// Used when the state is set as being the current active state
|
||||
this.onInitCallback = this.states[key]['init'] || this.dummy;
|
||||
|
||||
this.onPreloadCallback = this.states[key]['preload'] || null;
|
||||
@@ -412,102 +364,99 @@ Phaser.StateManager.prototype = {
|
||||
this.onRenderCallback = this.states[key]['render'] || null;
|
||||
this.onPausedCallback = this.states[key]['paused'] || null;
|
||||
|
||||
// Used when the state is no longer the current active state
|
||||
// Used when the state is no longer the current active state
|
||||
this.onShutDownCallback = this.states[key]['shutdown'] || this.dummy;
|
||||
|
||||
this.current = key;
|
||||
this._created = false;
|
||||
this.current = key;
|
||||
this._created = false;
|
||||
|
||||
this.onInitCallback.call(this.callbackContext, this.game);
|
||||
this.onInitCallback.call(this.callbackContext, this.game);
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* @method Phaser.StateManager#loadComplete
|
||||
/**
|
||||
* @method Phaser.StateManager#loadComplete
|
||||
* @protected
|
||||
*/
|
||||
*/
|
||||
loadComplete: function () {
|
||||
|
||||
// console.log('Phaser.StateManager.loadComplete');
|
||||
|
||||
if (this._created == false && this.onCreateCallback)
|
||||
if (this._created === false && this.onCreateCallback)
|
||||
{
|
||||
// console.log('Create callback found');
|
||||
this._created = true;
|
||||
this._created = true;
|
||||
this.onCreateCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
else
|
||||
{
|
||||
this._created = true;
|
||||
this._created = true;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* @method Phaser.StateManager#update
|
||||
/**
|
||||
* @method Phaser.StateManager#update
|
||||
* @protected
|
||||
*/
|
||||
*/
|
||||
update: function () {
|
||||
|
||||
if (this._created && this.onUpdateCallback)
|
||||
{
|
||||
this.onUpdateCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.onLoadUpdateCallback)
|
||||
{
|
||||
this.onLoadUpdateCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
}
|
||||
if (this._created && this.onUpdateCallback)
|
||||
{
|
||||
this.onUpdateCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.onLoadUpdateCallback)
|
||||
{
|
||||
this.onLoadUpdateCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* @method Phaser.StateManager#preRender
|
||||
/**
|
||||
* @method Phaser.StateManager#preRender
|
||||
* @protected
|
||||
*/
|
||||
*/
|
||||
preRender: function () {
|
||||
|
||||
if (this.onPreRenderCallback)
|
||||
{
|
||||
this.onPreRenderCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
if (this.onPreRenderCallback)
|
||||
{
|
||||
this.onPreRenderCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* @method Phaser.StateManager#render
|
||||
/**
|
||||
* @method Phaser.StateManager#render
|
||||
* @protected
|
||||
*/
|
||||
*/
|
||||
render: function () {
|
||||
|
||||
if (this._created && this.onRenderCallback)
|
||||
{
|
||||
if (this.game.renderType === Phaser.CANVAS)
|
||||
{
|
||||
this.game.context.save();
|
||||
this.game.context.setTransform(1, 0, 0, 1, 0, 0);
|
||||
}
|
||||
if (this._created && this.onRenderCallback)
|
||||
{
|
||||
if (this.game.renderType === Phaser.CANVAS)
|
||||
{
|
||||
this.game.context.save();
|
||||
this.game.context.setTransform(1, 0, 0, 1, 0, 0);
|
||||
}
|
||||
|
||||
this.onRenderCallback.call(this.callbackContext, this.game);
|
||||
this.onRenderCallback.call(this.callbackContext, this.game);
|
||||
|
||||
if (this.game.renderType === Phaser.CANVAS)
|
||||
{
|
||||
this.game.context.restore();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.onLoadRenderCallback)
|
||||
{
|
||||
this.onLoadRenderCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
}
|
||||
if (this.game.renderType === Phaser.CANVAS)
|
||||
{
|
||||
this.game.context.restore();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.onLoadRenderCallback)
|
||||
{
|
||||
this.onLoadRenderCallback.call(this.callbackContext, this.game);
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
/**
|
||||
* Nuke the entire game from orbit
|
||||
* @method Phaser.StateManager#destroy
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user