mirror of
https://github.com/photonstorm/phaser
synced 2024-11-22 12:43:26 +00:00
Merge branch 'master' of https://github.com/photonstorm/phaser
This commit is contained in:
commit
8563c69879
62 changed files with 4091 additions and 411 deletions
|
@ -8,8 +8,18 @@ var ParseXMLBitmapFont = require('../gameobjects/bitmaptext/ParseXMLBitmapFont')
|
|||
var PluginManager = require('../plugins/PluginManager');
|
||||
var XHRSettings = require('./XHRSettings');
|
||||
|
||||
// Phaser.Loader.LoaderPlugin
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class LoaderPlugin
|
||||
* @extends Phaser.Loader.EventEmitter
|
||||
* @memberOf Phaser.Loader
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Scene} scene - [description]
|
||||
*/
|
||||
var LoaderPlugin = new Class({
|
||||
|
||||
Extends: EventEmitter,
|
||||
|
@ -20,8 +30,22 @@ var LoaderPlugin = new Class({
|
|||
{
|
||||
EventEmitter.call(this);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#scene
|
||||
* @type {Phaser.Scene}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.scene = scene;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#systems
|
||||
* @type {Phaser.Scenes.Systems}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.systems = scene.sys;
|
||||
|
||||
if (!scene.sys.settings.isBooted)
|
||||
|
@ -29,6 +53,15 @@ var LoaderPlugin = new Class({
|
|||
scene.sys.events.once('boot', this.boot, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#_multilist
|
||||
* @type {object}
|
||||
* @private
|
||||
* @default {}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this._multilist = {};
|
||||
|
||||
// Inject the available filetypes into the Loader
|
||||
|
@ -37,16 +70,55 @@ var LoaderPlugin = new Class({
|
|||
var gameConfig = this.systems.game.config;
|
||||
var sceneConfig = this.systems.settings.loader;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#path
|
||||
* @type {string}
|
||||
* @default ''
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.path = '';
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#baseURL
|
||||
* @type {string}
|
||||
* @default ''
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.baseURL = '';
|
||||
|
||||
this.setBaseURL(GetFastValue(sceneConfig, 'baseURL', gameConfig.loaderBaseURL));
|
||||
|
||||
this.setPath(GetFastValue(sceneConfig, 'path', gameConfig.loaderPath));
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#enableParallel
|
||||
* @type {boolean}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.enableParallel = GetFastValue(sceneConfig, 'enableParallel', gameConfig.loaderEnableParallel);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#maxParallelDownloads
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxParallelDownloads = GetFastValue(sceneConfig, 'maxParallelDownloads', gameConfig.loaderMaxParallelDownloads);
|
||||
|
||||
// xhr specific global settings (can be overridden on a per-file basis)
|
||||
/**
|
||||
* xhr specific global settings (can be overridden on a per-file basis)
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#xhr
|
||||
* @type {Phaser.Loader.XHRSettings}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.xhr = XHRSettings(
|
||||
GetFastValue(sceneConfig, 'responseType', gameConfig.loaderResponseType),
|
||||
GetFastValue(sceneConfig, 'async', gameConfig.loaderAsync),
|
||||
|
@ -55,20 +127,96 @@ var LoaderPlugin = new Class({
|
|||
GetFastValue(sceneConfig, 'timeout', gameConfig.loaderTimeout)
|
||||
);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#crossOrigin
|
||||
* @type {string}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.crossOrigin = GetFastValue(sceneConfig, 'crossOrigin', gameConfig.loaderCrossOrigin);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#totalToLoad
|
||||
* @type {number}
|
||||
* @default 0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.totalToLoad = 0;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#progress
|
||||
* @type {number}
|
||||
* @default 0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.progress = 0;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#list
|
||||
* @type {Phaser.Structs.Set}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.list = new CustomSet();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#inflight
|
||||
* @type {Phaser.Structs.Set}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.inflight = new CustomSet();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#failed
|
||||
* @type {Phaser.Structs.Set}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.failed = new CustomSet();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#queue
|
||||
* @type {Phaser.Structs.Set}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.queue = new CustomSet();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#storage
|
||||
* @type {Phaser.Structs.Set}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.storage = new CustomSet();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Loader.LoaderPlugin#state
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.state = CONST.LOADER_IDLE;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#boot
|
||||
* @since 3.0.0
|
||||
*/
|
||||
boot: function ()
|
||||
{
|
||||
var eventEmitter = this.systems.events;
|
||||
|
@ -77,6 +225,16 @@ var LoaderPlugin = new Class({
|
|||
eventEmitter.on('destroy', this.destroy, this);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#setBaseURL
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} url - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} This Loader object.
|
||||
*/
|
||||
setBaseURL: function (url)
|
||||
{
|
||||
if (url !== '' && url.substr(-1) !== '/')
|
||||
|
@ -89,6 +247,16 @@ var LoaderPlugin = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#setPath
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} path - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} This Loader object.
|
||||
*/
|
||||
setPath: function (path)
|
||||
{
|
||||
if (path !== '' && path.substr(-1) !== '/')
|
||||
|
@ -101,6 +269,16 @@ var LoaderPlugin = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#addFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Loader.File} file - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.File} [description]
|
||||
*/
|
||||
addFile: function (file)
|
||||
{
|
||||
if (!this.isReady())
|
||||
|
@ -115,22 +293,40 @@ var LoaderPlugin = new Class({
|
|||
return file;
|
||||
},
|
||||
|
||||
// Is the Loader actively loading (or processing loaded files)
|
||||
/**
|
||||
* Is the Loader actively loading (or processing loaded files)
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#isLoading
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {boolean} [description]
|
||||
*/
|
||||
isLoading: function ()
|
||||
{
|
||||
return (this.state === CONST.LOADER_LOADING || this.state === CONST.LOADER_PROCESSING);
|
||||
},
|
||||
|
||||
// Is the Loader ready to start a new load?
|
||||
/**
|
||||
* Is the Loader ready to start a new load?
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#isReady
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {boolean} [description]
|
||||
*/
|
||||
isReady: function ()
|
||||
{
|
||||
return (this.state === CONST.LOADER_IDLE || this.state === CONST.LOADER_COMPLETE || this.state === CONST.LOADER_FAILED);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#start
|
||||
* @since 3.0.0
|
||||
*/
|
||||
start: function ()
|
||||
{
|
||||
// console.log(this.scene.sys.settings.key, '- Loader start. Files to load:', this.list.size);
|
||||
|
||||
if (!this.isReady())
|
||||
{
|
||||
return;
|
||||
|
@ -161,21 +357,27 @@ var LoaderPlugin = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#updateProgress
|
||||
* @since 3.0.0
|
||||
*/
|
||||
updateProgress: function ()
|
||||
{
|
||||
this.progress = 1 - (this.list.size / this.totalToLoad);
|
||||
|
||||
// console.log(this.progress);
|
||||
|
||||
this.emit('progress', this.progress);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#processLoadQueue
|
||||
* @since 3.0.0
|
||||
*/
|
||||
processLoadQueue: function ()
|
||||
{
|
||||
// console.log('======== LoaderPlugin processLoadQueue');
|
||||
// console.log('List size', this.list.size);
|
||||
// console.log(this.inflight.size, 'items still in flight. Can load another', (this.maxParallelDownloads - this.inflight.size));
|
||||
|
||||
this.list.each(function (file)
|
||||
{
|
||||
if (file.state === CONST.FILE_POPULATED || (file.state === CONST.FILE_PENDING && this.inflight.size < this.maxParallelDownloads))
|
||||
|
@ -196,11 +398,16 @@ var LoaderPlugin = new Class({
|
|||
}, this);
|
||||
},
|
||||
|
||||
// private
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#loadFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Loader.File} file - [description]
|
||||
*/
|
||||
loadFile: function (file)
|
||||
{
|
||||
// console.log('LOADING', file.key);
|
||||
|
||||
// If the file doesn't have its own crossOrigin set,
|
||||
// we'll use the Loaders (which is undefined by default)
|
||||
if (!file.crossOrigin)
|
||||
|
@ -211,10 +418,17 @@ var LoaderPlugin = new Class({
|
|||
file.load(this);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#nextFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Loader.File} previousFile - [description]
|
||||
* @param {boolean} success - [description]
|
||||
*/
|
||||
nextFile: function (previousFile, success)
|
||||
{
|
||||
// console.log('LOADED:', previousFile.src, success);
|
||||
|
||||
// Move the file that just loaded from the inflight list to the queue or failed Set
|
||||
|
||||
if (success)
|
||||
|
@ -234,20 +448,22 @@ var LoaderPlugin = new Class({
|
|||
|
||||
if (this.list.size > 0)
|
||||
{
|
||||
// console.log('nextFile - still something in the list');
|
||||
this.processLoadQueue();
|
||||
}
|
||||
else if (this.inflight.size === 0)
|
||||
{
|
||||
// console.log('nextFile calling finishedLoading');
|
||||
this.finishedLoading();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#finishedLoading
|
||||
* @since 3.0.0
|
||||
*/
|
||||
finishedLoading: function ()
|
||||
{
|
||||
// console.log('---> LoaderPlugin.finishedLoading PROCESSING', this.queue.size, 'files');
|
||||
|
||||
if (this.state === CONST.LOADER_PROCESSING)
|
||||
{
|
||||
return;
|
||||
|
@ -268,17 +484,21 @@ var LoaderPlugin = new Class({
|
|||
{
|
||||
this.queue.each(function (file)
|
||||
{
|
||||
// console.log('%c Calling process on ' + file.key, 'color: #000000; background: #ffff00;');
|
||||
file.onProcess(this.processUpdate.bind(this));
|
||||
}, this);
|
||||
}
|
||||
},
|
||||
|
||||
// Called automatically by the File when it has finished processing
|
||||
/**
|
||||
* Called automatically by the File when it has finished processing.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#processUpdate
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Loader.File} file - [description]
|
||||
*/
|
||||
processUpdate: function (file)
|
||||
{
|
||||
// console.log('-> processUpdate', file.key, file.state);
|
||||
|
||||
// This file has failed to load, so move it to the failed Set
|
||||
if (file.state === CONST.FILE_ERRORED)
|
||||
{
|
||||
|
@ -317,6 +537,14 @@ var LoaderPlugin = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#removeFromQueue
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Loader.File} file - [description]
|
||||
*/
|
||||
removeFromQueue: function (file)
|
||||
{
|
||||
this.queue.delete(file);
|
||||
|
@ -328,10 +556,14 @@ var LoaderPlugin = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#processComplete
|
||||
* @since 3.0.0
|
||||
*/
|
||||
processComplete: function ()
|
||||
{
|
||||
// console.log(this.scene.sys.settings.key, '- Loader Complete. Loaded:', this.storage.size, 'Failed:', this.failed.size);
|
||||
|
||||
this.list.clear();
|
||||
this.inflight.clear();
|
||||
this.queue.clear();
|
||||
|
@ -345,7 +577,12 @@ var LoaderPlugin = new Class({
|
|||
this.removeAllListeners();
|
||||
},
|
||||
|
||||
// The Loader has finished
|
||||
/**
|
||||
* The Loader has finished.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#processCallback
|
||||
* @since 3.0.0
|
||||
*/
|
||||
processCallback: function ()
|
||||
{
|
||||
if (this.storage.size === 0)
|
||||
|
@ -545,11 +782,34 @@ var LoaderPlugin = new Class({
|
|||
this.storage.clear();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#saveJSON
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} data - [description]
|
||||
* @param {[type]} filename - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
saveJSON: function (data, filename)
|
||||
{
|
||||
return this.save(JSON.stringify(data), filename);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#save
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} data - [description]
|
||||
* @param {[type]} filename - [description]
|
||||
* @param {[type]} filetype - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} This Loader plugin.
|
||||
*/
|
||||
save: function (data, filename, filetype)
|
||||
{
|
||||
if (filename === undefined) { filename = 'file.json'; }
|
||||
|
@ -569,6 +829,12 @@ var LoaderPlugin = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#reset
|
||||
* @since 3.0.0
|
||||
*/
|
||||
reset: function ()
|
||||
{
|
||||
this.list.clear();
|
||||
|
@ -586,6 +852,16 @@ var LoaderPlugin = new Class({
|
|||
this.state = CONST.LOADER_IDLE;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#loadArray
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {array} files - [description]
|
||||
*
|
||||
* @return {boolean} [description]
|
||||
*/
|
||||
loadArray: function (files)
|
||||
{
|
||||
if (Array.isArray(files))
|
||||
|
@ -599,6 +875,16 @@ var LoaderPlugin = new Class({
|
|||
return (this.list.size > 0);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#file
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {object} file - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.File} [description]
|
||||
*/
|
||||
file: function (file)
|
||||
{
|
||||
var entry;
|
||||
|
@ -635,12 +921,24 @@ var LoaderPlugin = new Class({
|
|||
return entry;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#shutdown
|
||||
* @since 3.0.0
|
||||
*/
|
||||
shutdown: function ()
|
||||
{
|
||||
this.reset();
|
||||
this.state = CONST.LOADER_SHUTDOWN;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#destroy
|
||||
* @since 3.0.0
|
||||
*/
|
||||
destroy: function ()
|
||||
{
|
||||
this.reset();
|
||||
|
|
|
@ -31,8 +31,6 @@ var AnimationJSONFile = function (key, url, path, xhrSettings)
|
|||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
*
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#animation
|
||||
* @since 3.0.0
|
||||
|
|
|
@ -33,6 +33,25 @@ var AtlasJSONFile = function (key, textureURL, atlasURL, path, textureXhrSetting
|
|||
return { texture: image, data: data };
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds a Texture Atlas file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Atlas JSON File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#atlas
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - The key of the file within the loader.
|
||||
* @param {string} textureURL - The url to load the texture file from.
|
||||
* @param {string} atlasURL - The url to load the atlas file from.
|
||||
* @param {object} textureXhrSettings - Optional texture file specific XHR settings.
|
||||
* @param {object} atlasXhrSettings - Optional atlas file specific XHR settings.
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('atlas', function (key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings)
|
||||
{
|
||||
// Returns an object with two properties: 'texture' and 'data'
|
||||
|
|
|
@ -95,16 +95,6 @@ AudioFile.create = function (loader, key, urls, config, xhrSettings)
|
|||
var audioConfig = game.config.audio;
|
||||
var deviceAudio = game.device.audio;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} (audioConfig && audioConfig.noAudio) || (!deviceAudio.webAudio && !deviceAudio.audioData) - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
if ((audioConfig && audioConfig.noAudio) || (!deviceAudio.webAudio && !deviceAudio.audioData))
|
||||
{
|
||||
console.info('Skipping loading audio \'' + key + '\' since sounds are disabled.');
|
||||
|
@ -113,68 +103,44 @@ AudioFile.create = function (loader, key, urls, config, xhrSettings)
|
|||
|
||||
var url = AudioFile.findAudioURL(game, urls);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} !url - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
if (!url)
|
||||
{
|
||||
console.warn('No supported url provided for audio \'' + key + '\'!');
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} deviceAudio.webAudio && !(audioConfig && audioConfig.disableWebAudio) - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
if (deviceAudio.webAudio && !(audioConfig && audioConfig.disableWebAudio))
|
||||
{
|
||||
return new AudioFile(key, url, loader.path, xhrSettings, game.sound.context);
|
||||
}
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
else
|
||||
{
|
||||
return new HTML5AudioFile(key, url, loader.path, config, game.sound.locked);
|
||||
}
|
||||
};
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds an Audio file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Audio File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#audio
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string|string[]} urls - [description]
|
||||
* @param {object} config - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('audio', function (key, urls, config, xhrSettings)
|
||||
{
|
||||
var audioFile = AudioFile.create(this, key, urls, config, xhrSettings);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} audioFile - [description]
|
||||
*/
|
||||
if (audioFile)
|
||||
{
|
||||
this.addFile(audioFile);
|
||||
|
@ -229,29 +195,11 @@ FileTypesManager.register('audio', function (key, urls, config, xhrSettings)
|
|||
|
||||
AudioFile.findAudioURL = function (game, urls)
|
||||
{
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} urls.constructor !== Array - [description]
|
||||
*/
|
||||
if (urls.constructor !== Array)
|
||||
{
|
||||
urls = [ urls ];
|
||||
}
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Loader.FileTypes.AudioFile#
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} var i = 0; i < urls.length; i++ - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
for (var i = 0; i < urls.length; i++)
|
||||
{
|
||||
var url = GetFastValue(urls[i], 'uri', urls[i]);
|
||||
|
|
|
@ -3,8 +3,26 @@ var CONST = require('../const');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var JSONFile = require('./JSONFile.js');
|
||||
|
||||
// Phaser.Loader.FileTypes.AudioSprite
|
||||
|
||||
/**
|
||||
* Adds an Audio Sprite file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Audio Sprite File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#audioSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string|string[]} urls - [description]
|
||||
* @param {object} json - [description]
|
||||
* @param {object} config - [description]
|
||||
* @param {object} audioXhrSettings - Optional file specific XHR settings.
|
||||
* @param {object} jsonXhrSettings - Optional file specific XHR settings.
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('audioSprite', function (key, urls, json, config, audioXhrSettings, jsonXhrSettings)
|
||||
{
|
||||
var audioFile = AudioFile.create(this, key, urls, config, audioXhrSettings);
|
||||
|
|
|
@ -4,8 +4,21 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.BinaryFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class BinaryFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var BinaryFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -42,12 +55,23 @@ var BinaryFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds Binary file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Binary File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#binary
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('binary', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -2,6 +2,21 @@ var FileTypesManager = require('../FileTypesManager');
|
|||
var ImageFile = require('./ImageFile.js');
|
||||
var XMLFile = require('./XMLFile.js');
|
||||
|
||||
/**
|
||||
* An Bitmap Font File.
|
||||
*
|
||||
* @function Phaser.Loader.Filetypes.BitmapFontFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - The key of the file within the loader.
|
||||
* @param {string} textureURL - The url to load the texture file from.
|
||||
* @param {string} xmlURL - The url to load the atlas file from.
|
||||
* @param {string} path - The path of the file.
|
||||
* @param {object} textureXhrSettings - Optional texture file specific XHR settings.
|
||||
* @param {object} xmlXhrSettings - Optional atlas file specific XHR settings.
|
||||
*
|
||||
* @return {object} An object containing two File objects to be added to the loader.
|
||||
*/
|
||||
var BitmapFontFile = function (key, textureURL, xmlURL, path, textureXhrSettings, xmlXhrSettings)
|
||||
{
|
||||
var image = new ImageFile(key, textureURL, path, textureXhrSettings);
|
||||
|
@ -18,12 +33,25 @@ var BitmapFontFile = function (key, textureURL, xmlURL, path, textureXhrSettings
|
|||
return { texture: image, data: data };
|
||||
};
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Bitmap Font file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Bitmap Font File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#bitmapFont
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} textureURL - [description]
|
||||
* @param {string} xmlURL - [description]
|
||||
* @param {object} textureXhrSettings - [description]
|
||||
* @param {object} xmlXhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('bitmapFont', function (key, textureURL, xmlURL, textureXhrSettings, xmlXhrSettings)
|
||||
{
|
||||
// Returns an object with two properties: 'texture' and 'data'
|
||||
|
|
|
@ -4,8 +4,21 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.GLSLFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class GLSLFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var GLSLFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -42,12 +55,23 @@ var GLSLFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a GLSL file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the GLSL File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#glsl
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('glsl', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -3,8 +3,22 @@ var File = require('../File');
|
|||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var GetURL = require('../GetURL');
|
||||
|
||||
// Phaser.Loader.FileTypes.HTML5AudioFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class HTML5AudioFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} config - [description]
|
||||
* @param {boolean} locked - [description]
|
||||
*/
|
||||
var HTML5AudioFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
|
|
@ -4,8 +4,23 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.HTMLFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class HTMLFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var HTMLFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -96,12 +111,25 @@ var HTMLFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds an HTML file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the HTML File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#html
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('html', function (key, url, width, height, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -4,8 +4,22 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.ImageFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class ImageFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
* @param {object} config - [description]
|
||||
*/
|
||||
var ImageFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -79,25 +93,40 @@ var ImageFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds an Image file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Image File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#image
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('image', function (key, url, xhrSettings)
|
||||
{
|
||||
var urls;
|
||||
var fileA;
|
||||
var fileB;
|
||||
|
||||
if (Array.isArray(key))
|
||||
{
|
||||
for (var i = 0; i < key.length; i++)
|
||||
{
|
||||
// If it's an array it has to be an array of Objects, so we get everything out of the 'key' object
|
||||
var urls = GetFastValue(key[i], 'file', url);
|
||||
urls = GetFastValue(key[i], 'file', url);
|
||||
|
||||
if (Array.isArray(urls) && urls.length === 2)
|
||||
{
|
||||
var fileA = this.addFile(new ImageFile(key[i], urls[0], this.path, xhrSettings));
|
||||
var fileB = this.addFile(new ImageFile(key[i], urls[1], this.path, xhrSettings));
|
||||
fileA = this.addFile(new ImageFile(key[i], urls[0], this.path, xhrSettings));
|
||||
fileB = this.addFile(new ImageFile(key[i], urls[1], this.path, xhrSettings));
|
||||
|
||||
fileA.setLinkFile(fileB, 'dataimage');
|
||||
}
|
||||
|
@ -109,12 +138,12 @@ FileTypesManager.register('image', function (key, url, xhrSettings)
|
|||
}
|
||||
else
|
||||
{
|
||||
var urls = GetFastValue(key, 'file', url);
|
||||
urls = GetFastValue(key, 'file', url);
|
||||
|
||||
if (Array.isArray(urls) && urls.length === 2)
|
||||
{
|
||||
var fileA = this.addFile(new ImageFile(key, urls[0], this.path, xhrSettings));
|
||||
var fileB = this.addFile(new ImageFile(key, urls[1], this.path, xhrSettings));
|
||||
fileA = this.addFile(new ImageFile(key, urls[0], this.path, xhrSettings));
|
||||
fileB = this.addFile(new ImageFile(key, urls[1], this.path, xhrSettings));
|
||||
|
||||
fileA.setLinkFile(fileB, 'dataimage');
|
||||
}
|
||||
|
|
|
@ -4,8 +4,21 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.JSONFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class JSONFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var JSONFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -52,12 +65,23 @@ var JSONFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a JSON file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the JSON File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#json
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('json', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -3,8 +3,25 @@ var ImageFile = require('./ImageFile.js');
|
|||
var JSONFile = require('./JSONFile.js');
|
||||
var NumberArray = require('../../utils/array/NumberArray');
|
||||
|
||||
// Phaser.Loader.FileTypes.MultiAtlas
|
||||
|
||||
/**
|
||||
* Adds a Multi File Texture Atlas to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Multi Atlas File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#multiatlas
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string[]} textureURLs - [description]
|
||||
* @param {string[]} atlasURLs - [description]
|
||||
* @param {object} textureXhrSettings - [description]
|
||||
* @param {object} atlasXhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('multiatlas', function (key, textureURLs, atlasURLs, textureXhrSettings, atlasXhrSettings)
|
||||
{
|
||||
if (typeof textureURLs === 'number')
|
||||
|
|
|
@ -5,8 +5,21 @@ var FileTypesManager = require('../FileTypesManager');
|
|||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var PluginManager = require('../../plugins/PluginManager');
|
||||
|
||||
// Phaser.Loader.FileTypes.PluginFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class PluginFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var PluginFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -52,12 +65,23 @@ var PluginFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Plugin file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Plugin File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#plugin
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('plugin', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -4,8 +4,21 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.SVGFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class SVGFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var SVGFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -91,12 +104,23 @@ var SVGFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds an SVG file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the SVG File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#svg
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('svg', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -4,8 +4,21 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
|
||||
// Phaser.Loader.FileTypes.ScriptFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class ScriptFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var ScriptFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -48,12 +61,23 @@ var ScriptFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a JavaScript file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Script File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#script
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('script', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var ImageFile = require('./ImageFile.js');
|
||||
|
||||
// config can include: frameWidth, frameHeight, startFrame, endFrame, margin, spacing
|
||||
|
||||
var SpriteSheet = function (key, url, config, path, xhrSettings)
|
||||
{
|
||||
var image = new ImageFile(key, url, path, xhrSettings, config);
|
||||
|
||||
// Override the File type
|
||||
image.type = 'spritesheet';
|
||||
|
||||
return image;
|
||||
};
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
// config can include: frameWidth, frameHeight, startFrame, endFrame, margin, spacing
|
||||
FileTypesManager.register('spritesheet', function (key, url, config, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
{
|
||||
for (var i = 0; i < key.length; i++)
|
||||
{
|
||||
// If it's an array it has to be an array of Objects, so we get everything out of the 'key' object
|
||||
this.addFile(new SpriteSheet(key[i], url, null, this.path, xhrSettings));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.addFile(new SpriteSheet(key, url, config, this.path, xhrSettings));
|
||||
}
|
||||
|
||||
// For method chaining
|
||||
return this;
|
||||
});
|
||||
|
||||
module.exports = SpriteSheet;
|
65
src/loader/filetypes/SpriteSheetFile.js
Normal file
65
src/loader/filetypes/SpriteSheetFile.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var ImageFile = require('./ImageFile.js');
|
||||
|
||||
/**
|
||||
* A Sprite Sheet File.
|
||||
*
|
||||
* @function Phaser.Loader.Filetypes.SpriteSheetFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - The key of the file within the loader.
|
||||
* @param {string} url - The url to load the texture file from.
|
||||
* @param {object} config - Optional texture file specific XHR settings.
|
||||
* @param {string} path - Optional texture file specific XHR settings.
|
||||
* @param {object} xhrSettings - Optional atlas file specific XHR settings.
|
||||
*
|
||||
* @return {object} An object containing two File objects to be added to the loader.
|
||||
*/
|
||||
var SpriteSheetFile = function (key, url, config, path, xhrSettings)
|
||||
{
|
||||
var image = new ImageFile(key, url, path, xhrSettings, config);
|
||||
|
||||
// Override the File type
|
||||
image.type = 'spritesheet';
|
||||
|
||||
return image;
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds a Sprite Sheet file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Sprite Sheet File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#image
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} config - config can include: frameWidth, frameHeight, startFrame, endFrame, margin, spacing.
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('spritesheet', function (key, url, config, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
{
|
||||
for (var i = 0; i < key.length; i++)
|
||||
{
|
||||
// If it's an array it has to be an array of Objects, so we get everything out of the 'key' object
|
||||
this.addFile(new SpriteSheetFile(key[i], url, null, this.path, xhrSettings));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.addFile(new SpriteSheetFile(key, url, config, this.path, xhrSettings));
|
||||
}
|
||||
|
||||
// For method chaining
|
||||
return this;
|
||||
});
|
||||
|
||||
module.exports = SpriteSheetFile;
|
|
@ -3,8 +3,21 @@ var CONST = require('../const');
|
|||
var File = require('../File');
|
||||
var FileTypesManager = require('../FileTypesManager');
|
||||
|
||||
// Phaser.Loader.FileTypes.TextFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class TextFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var TextFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -39,12 +52,23 @@ var TextFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Text file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Text File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#text
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('text', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -4,8 +4,22 @@ var File = require('../File');
|
|||
var FileTypesManager = require('../FileTypesManager');
|
||||
var TILEMAP_FORMATS = require('../../tilemaps/Formats');
|
||||
|
||||
// Phaser.Loader.FileTypes.TilemapCSVFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class TilemapCSVFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {string} format - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var TilemapCSVFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -42,12 +56,23 @@ var TilemapCSVFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Tilemap CSV file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Tilemap CSV File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#tilemapCSV
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('tilemapCSV', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -2,8 +2,20 @@ var FileTypesManager = require('../FileTypesManager');
|
|||
var JSONFile = require('./JSONFile.js');
|
||||
var TILEMAP_FORMATS = require('../../tilemaps/Formats');
|
||||
|
||||
// Phaser.Loader.FileTypes.TilemapJSONFile
|
||||
|
||||
/**
|
||||
* A Tilemap File.
|
||||
*
|
||||
* @function Phaser.Loader.Filetypes.TilemapJSONFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {string} format - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {object} An object containing two File objects to be added to the loader.
|
||||
*/
|
||||
var TilemapJSONFile = function (key, url, path, format, xhrSettings)
|
||||
{
|
||||
var json = new JSONFile(key, url, path, xhrSettings);
|
||||
|
@ -16,12 +28,23 @@ var TilemapJSONFile = function (key, url, path, format, xhrSettings)
|
|||
return json;
|
||||
};
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Tilemap (Tiled JSON Format) file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Tilemap File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#tilemapTiledJSON
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('tilemapTiledJSON', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
@ -41,6 +64,23 @@ FileTypesManager.register('tilemapTiledJSON', function (key, url, xhrSettings)
|
|||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Adds a Tilemap (Weltmeister Format) file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Tilemap File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#tilemapWeltmeister
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('tilemapWeltmeister', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -2,6 +2,21 @@ var FileTypesManager = require('../FileTypesManager');
|
|||
var ImageFile = require('./ImageFile.js');
|
||||
var TextFile = require('./TextFile.js');
|
||||
|
||||
/**
|
||||
* An Atlas JSON File.
|
||||
*
|
||||
* @function Phaser.Loader.Filetypes.UnityAtlasFile
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - The key of the file within the loader.
|
||||
* @param {string} textureURL - The url to load the texture file from.
|
||||
* @param {string} atlasURL - The url to load the atlas file from.
|
||||
* @param {string} path - The path of the file.
|
||||
* @param {object} textureXhrSettings - Optional texture file specific XHR settings.
|
||||
* @param {object} atlasXhrSettings - Optional atlas file specific XHR settings.
|
||||
*
|
||||
* @return {object} An object containing two File objects to be added to the loader.
|
||||
*/
|
||||
var UnityAtlasFile = function (key, textureURL, atlasURL, path, textureXhrSettings, atlasXhrSettings)
|
||||
{
|
||||
var image = new ImageFile(key, textureURL, path, textureXhrSettings);
|
||||
|
@ -18,12 +33,25 @@ var UnityAtlasFile = function (key, textureURL, atlasURL, path, textureXhrSettin
|
|||
return { texture: image, data: data };
|
||||
};
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Unity Texture Atlas file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the Unity Atlas File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#unityAtlas
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - The key of the file within the loader.
|
||||
* @param {string} textureURL - The url to load the texture file from.
|
||||
* @param {string} atlasURL - The url to load the atlas file from.
|
||||
* @param {object} textureXhrSettings - Optional texture file specific XHR settings.
|
||||
* @param {object} atlasXhrSettings - Optional atlas file specific XHR settings.
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('unityAtlas', function (key, textureURL, atlasURL, textureXhrSettings, atlasXhrSettings)
|
||||
{
|
||||
// Returns an object with two properties: 'texture' and 'data'
|
||||
|
|
|
@ -5,8 +5,21 @@ var FileTypesManager = require('../FileTypesManager');
|
|||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var ParseOBJ = require('../../geom/mesh/ParseOBJ');
|
||||
|
||||
// Phaser.Loader.FileTypes.WavefrontFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class WavefrontFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var WavefrontFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -43,12 +56,23 @@ var WavefrontFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds a Wavefront OBK file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the file type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#obj
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('obj', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -5,8 +5,21 @@ var FileTypesManager = require('../FileTypesManager');
|
|||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var ParseXML = require('../../dom/ParseXML');
|
||||
|
||||
// Phaser.Loader.FileTypes.XMLFile
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class XMLFile
|
||||
* @extends Phaser.Loader.File
|
||||
* @memberOf Phaser.Loader.FileTypes
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {string} path - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*/
|
||||
var XMLFile = new Class({
|
||||
|
||||
Extends: File,
|
||||
|
@ -48,12 +61,23 @@ var XMLFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
//
|
||||
// this.scene - a reference to the Scene that owns the GameObjectFactory
|
||||
|
||||
/**
|
||||
* Adds an XML file to the current load queue.
|
||||
*
|
||||
* Note: This method will only be available if the XML File type has been built into Phaser.
|
||||
*
|
||||
* The file is **not** loaded immediately after calling this method.
|
||||
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
|
||||
*
|
||||
* @method Phaser.Loader.LoaderPlugin#xml
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string} key - [description]
|
||||
* @param {string} url - [description]
|
||||
* @param {object} xhrSettings - [description]
|
||||
*
|
||||
* @return {Phaser.Loader.LoaderPlugin} The Loader.
|
||||
*/
|
||||
FileTypesManager.register('xml', function (key, url, xhrSettings)
|
||||
{
|
||||
if (Array.isArray(key))
|
||||
|
|
|
@ -41,7 +41,7 @@ module.exports = {
|
|||
MultiAtlas: require('./MultiAtlas'),
|
||||
PluginFile: require('./PluginFile'),
|
||||
ScriptFile: require('./ScriptFile'),
|
||||
SpriteSheet: require('./SpriteSheet'),
|
||||
SpriteSheetFile: require('./SpriteSheetFile'),
|
||||
SVGFile: require('./SVGFile'),
|
||||
TextFile: require('./TextFile'),
|
||||
TilemapCSVFile: require('./TilemapCSVFile'),
|
||||
|
|
|
@ -59,10 +59,10 @@ var Body = new Class({
|
|||
this.enabled = true;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
* The ImpactBody, ImpactSprite or ImpactImage object that owns this Body, if any.
|
||||
*
|
||||
* @name Phaser.Physics.Impact.Body#parent
|
||||
* @type {null}
|
||||
* @type {Phaser.Physics.Impact.ImpactBody|Phaser.Physics.Impact.ImpactImage|Phaser.Physics.Impact.ImpactSprite|null}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.parent;
|
||||
|
@ -505,7 +505,7 @@ var Body = new Class({
|
|||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.Body#fromJSON
|
||||
* @todo
|
||||
* @todo Code it!
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {object} config - [description]
|
||||
|
|
|
@ -1,8 +1,18 @@
|
|||
// Phaser.Physics.Impact.CollisionMap
|
||||
|
||||
var Class = require('../../utils/Class');
|
||||
var DefaultDefs = require('./DefaultDefs');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class CollisionMap
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {integer} [tilesize=32] - [description]
|
||||
* @param {array} data - [description]
|
||||
*/
|
||||
var CollisionMap = new Class({
|
||||
|
||||
initialize:
|
||||
|
@ -11,18 +21,78 @@ var CollisionMap = new Class({
|
|||
{
|
||||
if (tilesize === undefined) { tilesize = 32; }
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.CollisionMap#tilesize
|
||||
* @type {integer}
|
||||
* @default 32
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.tilesize = tilesize;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.CollisionMap#data
|
||||
* @type {array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.data = (Array.isArray(data)) ? data : [];
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.CollisionMap#width
|
||||
* @type {number}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.width = (Array.isArray(data)) ? data[0].length : 0;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.CollisionMap#height
|
||||
* @type {number}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.height = (Array.isArray(data)) ? data.length : 0;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.CollisionMap#lastSlope
|
||||
* @type {integer}
|
||||
* @default 55
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.lastSlope = 55;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.CollisionMap#tiledef
|
||||
* @type {object}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.tiledef = DefaultDefs;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.CollisionMap#trace
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} vx - [description]
|
||||
* @param {number} vy - [description]
|
||||
* @param {number} objectWidth - [description]
|
||||
* @param {number} objectHeight - [description]
|
||||
*
|
||||
* @return {boolean} [description]
|
||||
*/
|
||||
trace: function (x, y, vx, vy, objectWidth, objectHeight)
|
||||
{
|
||||
// Set up the trace-result
|
||||
|
@ -77,6 +147,23 @@ var CollisionMap = new Class({
|
|||
return res;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.CollisionMap#step
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {object} res - [description]
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} vx - [description]
|
||||
* @param {number} vy - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {number} rvx - [description]
|
||||
* @param {number} rvy - [description]
|
||||
* @param {number} step - [description]
|
||||
*/
|
||||
step: function (res, x, y, vx, vy, width, height, rvx, rvy, step)
|
||||
{
|
||||
var t = 0;
|
||||
|
@ -191,6 +278,25 @@ var CollisionMap = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.CollisionMap#checkDef
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {object} res - [description]
|
||||
* @param {number} t - [description]
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} vx - [description]
|
||||
* @param {number} vy - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {number} tileX - [description]
|
||||
* @param {number} tileY - [description]
|
||||
*
|
||||
* @return {boolean} [description]
|
||||
*/
|
||||
checkDef: function (res, t, x, y, vx, vy, width, height, tileX, tileY)
|
||||
{
|
||||
var def = this.tiledef[t];
|
||||
|
|
|
@ -3,22 +3,71 @@ var ImpactBody = require('./ImpactBody');
|
|||
var ImpactImage = require('./ImpactImage');
|
||||
var ImpactSprite = require('./ImpactSprite');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* The Impact Physics Factory allows you to easily create Impact Physics enabled Game Objects.
|
||||
* Objects that are created by this Factory are automatically added to the physics world.
|
||||
*
|
||||
* @class Factory
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.World} world - [description]
|
||||
*/
|
||||
var Factory = new Class({
|
||||
|
||||
initialize:
|
||||
|
||||
function Factory (world)
|
||||
{
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.Factory#world
|
||||
* @type {Phaser.Physics.Impact.World}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.world = world;
|
||||
|
||||
/**
|
||||
* A reference to the Scene.Systems this Impact Physics instance belongs to.
|
||||
*
|
||||
* @name Phaser.Physics.Impact.Factory#sys
|
||||
* @type {Phaser.Scenes.Systems}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.sys = world.scene.sys;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.Factory#body
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.ImpactBody} The ImpactBody object that was created.
|
||||
*/
|
||||
body: function (x, y, width, height)
|
||||
{
|
||||
return new ImpactBody(this.world, x, y, width, height);
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds an Impact Physics Body to the given Game Object.
|
||||
*
|
||||
* @method Phaser.Physics.Impact.Factory#existing
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.GameObject} gameObject - [description]
|
||||
*
|
||||
* @return {Phaser.GameObjects.GameObject} The Game Object.
|
||||
*/
|
||||
existing: function (gameObject)
|
||||
{
|
||||
var x = gameObject.x - gameObject.frame.centerX;
|
||||
|
@ -34,6 +83,19 @@ var Factory = new Class({
|
|||
return gameObject;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.Factory#image
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} x - The horizontal position of this Game Object in the world.
|
||||
* @param {number} y - The vertical position of this Game Object in the world.
|
||||
* @param {string} texture - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager.
|
||||
* @param {string|integer} [frame] - An optional frame from the Texture this Game Object is rendering with.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.ImpactImage} The ImpactImage object that was created.
|
||||
*/
|
||||
image: function (x, y, key, frame)
|
||||
{
|
||||
var image = new ImpactImage(this.world, x, y, key, frame);
|
||||
|
@ -43,6 +105,19 @@ var Factory = new Class({
|
|||
return image;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.Factory#sprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} x - The horizontal position of this Game Object in the world.
|
||||
* @param {number} y - The vertical position of this Game Object in the world.
|
||||
* @param {string} texture - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager.
|
||||
* @param {string|integer} [frame] - An optional frame from the Texture this Game Object is rendering with.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.ImpactSprite} The ImpactSprite object that was created.
|
||||
*/
|
||||
sprite: function (x, y, key, frame)
|
||||
{
|
||||
var sprite = new ImpactSprite(this.world, x, y, key, frame);
|
||||
|
|
|
@ -1,5 +1,19 @@
|
|||
var Clamp = require('../../math/Clamp');
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @function Phaser.Physics.Impact.GetVelocity
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} delta - [description]
|
||||
* @param {number} vel - [description]
|
||||
* @param {number} accel - [description]
|
||||
* @param {number} friction - [description]
|
||||
* @param {number} max - [description]
|
||||
*
|
||||
* @return {number} [description]
|
||||
*/
|
||||
var GetVelocity = function (delta, vel, accel, friction, max)
|
||||
{
|
||||
if (accel)
|
||||
|
|
|
@ -1,7 +1,34 @@
|
|||
|
||||
var Class = require('../../utils/Class');
|
||||
var Components = require('./components');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class ImpactBody
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @extends Phaser.Physics.Impact.Components.Acceleration
|
||||
* @extends Phaser.Physics.Impact.Components.BodyScale
|
||||
* @extends Phaser.Physics.Impact.Components.BodyType
|
||||
* @extends Phaser.Physics.Impact.Components.Bounce
|
||||
* @extends Phaser.Physics.Impact.Components.CheckAgainst
|
||||
* @extends Phaser.Physics.Impact.Components.Collides
|
||||
* @extends Phaser.Physics.Impact.Components.Debug
|
||||
* @extends Phaser.Physics.Impact.Components.Friction
|
||||
* @extends Phaser.Physics.Impact.Components.Gravity
|
||||
* @extends Phaser.Physics.Impact.Components.Offset
|
||||
* @extends Phaser.Physics.Impact.Components.SetGameObject
|
||||
* @extends Phaser.Physics.Impact.Components.Velocity
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.World} world - [description]
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
*/
|
||||
var ImpactBody = new Class({
|
||||
|
||||
Mixins: [
|
||||
|
@ -21,19 +48,71 @@ var ImpactBody = new Class({
|
|||
|
||||
initialize:
|
||||
|
||||
// x/y is the top-left of the Body
|
||||
function ImpactBody (world, x, y, width, height)
|
||||
{
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#body
|
||||
* @type {Phaser.Physics.Impact.Body}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.body = world.create(x, y, width, height);
|
||||
|
||||
this.body.parent = this;
|
||||
|
||||
// Local references to the Body properties
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#size
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.size = this.body.size;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#offset
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.offset = this.body.offset;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#vel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vel = this.body.vel;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#accel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.accel = this.body.accel;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#friction
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.friction = this.body.friction;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactBody#maxVel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxVel = this.body.maxVel;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,55 @@
|
|||
|
||||
var Class = require('../../utils/Class');
|
||||
var Components = require('./components');
|
||||
var Image = require('../../gameobjects/image/Image');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* An Impact Physics Image Game Object.
|
||||
*
|
||||
* An Image is a light-weight Game Object useful for the display of static images in your game,
|
||||
* such as logos, backgrounds, scenery or other non-animated elements. Images can have input
|
||||
* events and physics bodies, or be tweened, tinted or scrolled. The main difference between an
|
||||
* Image and a Sprite is that you cannot animate an Image as they do not have the Animation component.
|
||||
*
|
||||
* @class ImpactImage
|
||||
* @extends Phaser.GameObjects.Image
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @extends Phaser.Physics.Impact.Components.Acceleration
|
||||
* @extends Phaser.Physics.Impact.Components.BodyScale
|
||||
* @extends Phaser.Physics.Impact.Components.BodyType
|
||||
* @extends Phaser.Physics.Impact.Components.Bounce
|
||||
* @extends Phaser.Physics.Impact.Components.CheckAgainst
|
||||
* @extends Phaser.Physics.Impact.Components.Collides
|
||||
* @extends Phaser.Physics.Impact.Components.Debug
|
||||
* @extends Phaser.Physics.Impact.Components.Friction
|
||||
* @extends Phaser.Physics.Impact.Components.Gravity
|
||||
* @extends Phaser.Physics.Impact.Components.Offset
|
||||
* @extends Phaser.Physics.Impact.Components.SetGameObject
|
||||
* @extends Phaser.Physics.Impact.Components.Velocity
|
||||
* @extends Phaser.GameObjects.Components.Alpha
|
||||
* @extends Phaser.GameObjects.Components.BlendMode
|
||||
* @extends Phaser.GameObjects.Components.Depth
|
||||
* @extends Phaser.GameObjects.Components.Flip
|
||||
* @extends Phaser.GameObjects.Components.GetBounds
|
||||
* @extends Phaser.GameObjects.Components.Origin
|
||||
* @extends Phaser.GameObjects.Components.Pipeline
|
||||
* @extends Phaser.GameObjects.Components.ScaleMode
|
||||
* @extends Phaser.GameObjects.Components.ScrollFactor
|
||||
* @extends Phaser.GameObjects.Components.Size
|
||||
* @extends Phaser.GameObjects.Components.Texture
|
||||
* @extends Phaser.GameObjects.Components.Tint
|
||||
* @extends Phaser.GameObjects.Components.Transform
|
||||
* @extends Phaser.GameObjects.Components.Visible
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.World} world - [description]
|
||||
* @param {number} x - The horizontal position of this Game Object in the world.
|
||||
* @param {number} y - The vertical position of this Game Object in the world.
|
||||
* @param {string} texture - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager.
|
||||
* @param {string|integer} [frame] - An optional frame from the Texture this Game Object is rendering with.
|
||||
*/
|
||||
var ImpactImage = new Class({
|
||||
|
||||
Extends: Image,
|
||||
|
@ -24,22 +71,74 @@ var ImpactImage = new Class({
|
|||
|
||||
initialize:
|
||||
|
||||
// x/y is the center of the Image / Body, just like other default Game Objects
|
||||
function ImpactImage (world, x, y, texture, frame)
|
||||
{
|
||||
Image.call(this, world.scene, x, y, texture, frame);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#body
|
||||
* @type {Phaser.Physics.Impact.Body}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.body = world.create(x - this.frame.centerX, y - this.frame.centerY, this.width, this.height);
|
||||
|
||||
this.body.parent = this;
|
||||
this.body.gameObject = this;
|
||||
|
||||
// Local references to the Body properties
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#size
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.size = this.body.size;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#offset
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.offset = this.body.offset;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#vel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vel = this.body.vel;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#accel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.accel = this.body.accel;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#friction
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.friction = this.body.friction;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactImage#maxVel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxVel = this.body.maxVel;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,17 +5,39 @@ var Merge = require('../../utils/object/Merge');
|
|||
var PluginManager = require('../../plugins/PluginManager');
|
||||
var World = require('./World');
|
||||
|
||||
// Phaser.Physics.Impact.ImpactPhysics
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class ImpactPhysics
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Scene} scene - [description]
|
||||
*/
|
||||
var ImpactPhysics = new Class({
|
||||
|
||||
initialize:
|
||||
|
||||
function ImpactPhysics (scene)
|
||||
{
|
||||
// The Scene that owns this plugin
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactPhysics#scene
|
||||
* @type {Phaser.Scene}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.scene = scene;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactPhysics#systems
|
||||
* @type {Phaser.Scenes.Systems}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.systems = scene.sys;
|
||||
|
||||
if (!scene.sys.settings.isBooted)
|
||||
|
@ -23,13 +45,42 @@ var ImpactPhysics = new Class({
|
|||
scene.sys.events.once('boot', this.boot, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactPhysics#config
|
||||
* @type {object}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.config = this.getConfig();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactPhysics#world
|
||||
* @type {Phaser.Physics.Impact.World}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.world;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactPhysics#add
|
||||
* @type {Phaser.Physics.Impact.Factory}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.add;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.ImpactPhysics#getConfig
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {object} [description]
|
||||
*/
|
||||
getConfig: function ()
|
||||
{
|
||||
var gameConfig = this.systems.game.config.physics;
|
||||
|
@ -43,6 +94,12 @@ var ImpactPhysics = new Class({
|
|||
return config;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.ImpactPhysics#boot
|
||||
* @since 3.0.0
|
||||
*/
|
||||
boot: function ()
|
||||
{
|
||||
this.world = new World(this.scene, this.config);
|
||||
|
@ -55,11 +112,49 @@ var ImpactPhysics = new Class({
|
|||
eventEmitter.on('destroy', this.destroy, this);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.ImpactPhysics#pause
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
pause: function ()
|
||||
{
|
||||
return this.world.pause();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.ImpactPhysics#resume
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
resume: function ()
|
||||
{
|
||||
return this.world.resume();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.ImpactPhysics#shutdown
|
||||
* @since 3.0.0
|
||||
*/
|
||||
shutdown: function ()
|
||||
{
|
||||
this.world.shutdown();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.ImpactPhysics#destroy
|
||||
* @since 3.0.0
|
||||
*/
|
||||
destroy: function ()
|
||||
{
|
||||
this.world.destroy();
|
||||
|
|
|
@ -1,8 +1,59 @@
|
|||
|
||||
var Class = require('../../utils/Class');
|
||||
var Components = require('./components');
|
||||
var Sprite = require('../../gameobjects/sprite/Sprite');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* An Impact Physics Sprite Game Object.
|
||||
*
|
||||
* A Sprite Game Object is used for the display of both static and animated images in your game.
|
||||
* Sprites can have input events and physics bodies. They can also be tweened, tinted, scrolled
|
||||
* and animated.
|
||||
*
|
||||
* The main difference between a Sprite and an Image Game Object is that you cannot animate Images.
|
||||
* As such, Sprites take a fraction longer to process and have a larger API footprint due to the Animation
|
||||
* Component. If you do not require animation then you can safely use Images to replace Sprites in all cases.
|
||||
*
|
||||
* @class ImpactSprite
|
||||
* @extends Phaser.GameObjects.Sprite
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @extends Phaser.Physics.Impact.Components.Acceleration
|
||||
* @extends Phaser.Physics.Impact.Components.BodyScale
|
||||
* @extends Phaser.Physics.Impact.Components.BodyType
|
||||
* @extends Phaser.Physics.Impact.Components.Bounce
|
||||
* @extends Phaser.Physics.Impact.Components.CheckAgainst
|
||||
* @extends Phaser.Physics.Impact.Components.Collides
|
||||
* @extends Phaser.Physics.Impact.Components.Debug
|
||||
* @extends Phaser.Physics.Impact.Components.Friction
|
||||
* @extends Phaser.Physics.Impact.Components.Gravity
|
||||
* @extends Phaser.Physics.Impact.Components.Offset
|
||||
* @extends Phaser.Physics.Impact.Components.SetGameObject
|
||||
* @extends Phaser.Physics.Impact.Components.Velocity
|
||||
* @extends Phaser.GameObjects.Components.Alpha
|
||||
* @extends Phaser.GameObjects.Components.Animation
|
||||
* @extends Phaser.GameObjects.Components.BlendMode
|
||||
* @extends Phaser.GameObjects.Components.Depth
|
||||
* @extends Phaser.GameObjects.Components.Flip
|
||||
* @extends Phaser.GameObjects.Components.GetBounds
|
||||
* @extends Phaser.GameObjects.Components.Origin
|
||||
* @extends Phaser.GameObjects.Components.Pipeline
|
||||
* @extends Phaser.GameObjects.Components.ScaleMode
|
||||
* @extends Phaser.GameObjects.Components.ScrollFactor
|
||||
* @extends Phaser.GameObjects.Components.Size
|
||||
* @extends Phaser.GameObjects.Components.Texture
|
||||
* @extends Phaser.GameObjects.Components.Tint
|
||||
* @extends Phaser.GameObjects.Components.Transform
|
||||
* @extends Phaser.GameObjects.Components.Visible
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.World} world - [description]
|
||||
* @param {number} x - The horizontal position of this Game Object in the world.
|
||||
* @param {number} y - The vertical position of this Game Object in the world.
|
||||
* @param {string} texture - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager.
|
||||
* @param {string|integer} [frame] - An optional frame from the Texture this Game Object is rendering with.
|
||||
*/
|
||||
var ImpactSprite = new Class({
|
||||
|
||||
Extends: Sprite,
|
||||
|
@ -24,22 +75,74 @@ var ImpactSprite = new Class({
|
|||
|
||||
initialize:
|
||||
|
||||
// x/y is the center of the Sprite / Body, just like other default Game Objects
|
||||
function ImpactSprite (world, x, y, texture, frame)
|
||||
{
|
||||
Sprite.call(this, world.scene, x, y, texture, frame);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#body
|
||||
* @type {Phaser.Physics.Impact.Body}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.body = world.create(x - this.frame.centerX, y - this.frame.centerY, this.width, this.height);
|
||||
|
||||
this.body.parent = this;
|
||||
this.body.gameObject = this;
|
||||
|
||||
// Local references to the Body properties
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#size
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.size = this.body.size;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#offset
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.offset = this.body.offset;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#vel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vel = this.body.vel;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#accel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.accel = this.body.accel;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#friction
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.friction = this.body.friction;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.ImpactSprite#maxVel
|
||||
* @type {{x: number, y: number}}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxVel = this.body.maxVel;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
var COLLIDES = require('./COLLIDES');
|
||||
var SeperateX = require('./SeperateX');
|
||||
var SeperateY = require('./SeperateY');
|
||||
var COLLIDES = require('./COLLIDES');
|
||||
|
||||
// Impact Physics Solver
|
||||
|
||||
/**
|
||||
* Impact Physics Solver
|
||||
*
|
||||
* @function Phaser.Physics.Impact.Solver
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.World} world - [description]
|
||||
* @param {Phaser.Physics.Impact.Body} bodyA - [description]
|
||||
* @param {Phaser.Physics.Impact.Body} bodyB - [description]
|
||||
*/
|
||||
var Solver = function (world, bodyA, bodyB)
|
||||
{
|
||||
var weak = null;
|
||||
|
|
|
@ -1,10 +1,17 @@
|
|||
// Set up the trace-result
|
||||
// var res = {
|
||||
// collision: {x: false, y: false, slope: false},
|
||||
// pos: {x: x, y: y},
|
||||
// tile: {x: 0, y: 0}
|
||||
// };
|
||||
|
||||
/**
|
||||
* Set up the trace-result
|
||||
* var res = {
|
||||
* collision: {x: false, y: false, slope: false},
|
||||
* pos: {x: x, y: y},
|
||||
* tile: {x: 0, y: 0}
|
||||
* };
|
||||
*
|
||||
* @function Phaser.Physics.Impact.UpdateMotion
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body} body - [description]
|
||||
* @param {object} res - [description]
|
||||
*/
|
||||
var UpdateMotion = function (body, res)
|
||||
{
|
||||
body.standing = false;
|
||||
|
|
|
@ -1,18 +1,28 @@
|
|||
// Phaser.Physics.Impact.World
|
||||
|
||||
var Body = require('./Body');
|
||||
var Class = require('../../utils/Class');
|
||||
var COLLIDES = require('./COLLIDES');
|
||||
var CollisionMap = require('./CollisionMap');
|
||||
var EventEmitter = require('eventemitter3');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var HasValue = require('../../utils/object/HasValue');
|
||||
var Set = require('../../structs/Set');
|
||||
var Solver = require('./Solver');
|
||||
var TYPE = require('./TYPE');
|
||||
var TILEMAP_FORMATS = require('../../tilemaps/Formats');
|
||||
var HasValue = require('../../utils/object/HasValue');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var TYPE = require('./TYPE');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class World
|
||||
* @extends Phaser.Physics.Impact.EventEmitter
|
||||
* @memberOf Phaser.Physics.Impact
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Scene} scene - [description]
|
||||
* @param {object} config - [description]
|
||||
*/
|
||||
var World = new Class({
|
||||
|
||||
Extends: EventEmitter,
|
||||
|
@ -23,30 +33,110 @@ var World = new Class({
|
|||
{
|
||||
EventEmitter.call(this);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#scene
|
||||
* @type {Phaser.Scene}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.scene = scene;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#bodies
|
||||
* @type {Phaser.Structs.Set}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.bodies = new Set();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#gravity
|
||||
* @type {number}
|
||||
* @default 0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.gravity = GetFastValue(config, 'gravity', 0);
|
||||
|
||||
// Spatial hash cell dimensions
|
||||
/**
|
||||
* Spatial hash cell dimensions
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#cellSize
|
||||
* @type {integer}
|
||||
* @default 64
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.cellSize = GetFastValue(config, 'cellSize', 64);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#collisionMap
|
||||
* @type {Phaser.Physics.Impact.CollisionMap}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.collisionMap = new CollisionMap();
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#timeScale
|
||||
* @type {float}
|
||||
* @default 1
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.timeScale = GetFastValue(config, 'timeScale', 1);
|
||||
|
||||
// Impacts maximum time step is 20 fps.
|
||||
/**
|
||||
* Impacts maximum time step is 20 fps.
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#maxStep
|
||||
* @type {number}
|
||||
* @default 0.05
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxStep = GetFastValue(config, 'maxStep', 0.05);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#enabled
|
||||
* @type {boolean}
|
||||
* @default true
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.enabled = true;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#drawDebug
|
||||
* @type {boolean}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.drawDebug = GetFastValue(config, 'debug', false);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#debugGraphic
|
||||
* @type {Phaser.GameObjects.Graphics}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.debugGraphic;
|
||||
|
||||
var _maxVelocity = GetFastValue(config, 'maxVelocity', 100);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#defaults
|
||||
* @type {object}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.defaults = {
|
||||
debugShowBody: GetFastValue(config, 'debugShowBody', true),
|
||||
debugShowVelocity: GetFastValue(config, 'debugShowVelocity', true),
|
||||
|
@ -60,12 +150,33 @@ var World = new Class({
|
|||
};
|
||||
|
||||
/**
|
||||
* @property {object} walls - An object containing the 4 wall bodies that bound the physics world.
|
||||
*/
|
||||
* An object containing the 4 wall bodies that bound the physics world.
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#walls
|
||||
* @type {object}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.walls = { left: null, right: null, top: null, bottom: null };
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#delta
|
||||
* @type {number}
|
||||
* @default 0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.delta = 0;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Physics.Impact.World#_lastId
|
||||
* @type {number}
|
||||
* @private
|
||||
* @default 0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this._lastId = 0;
|
||||
|
||||
if (GetFastValue(config, 'setBounds', false))
|
||||
|
@ -99,16 +210,20 @@ var World = new Class({
|
|||
},
|
||||
|
||||
/**
|
||||
* Sets the collision map for the world either from a Weltmeister JSON level in the cache or from
|
||||
* a 2D array. If loading from a Weltmeister level, the map must have a layer called "collision".
|
||||
*
|
||||
* @param {string|integer[][]} key - Either a string key that corresponds to a Weltmeister level
|
||||
* in the cache, or a 2D array of collision IDs.
|
||||
* @param {integer} tileSize - The size of a tile. This is optional if loading from a Weltmeister
|
||||
* level in the cache.
|
||||
* @return {CollisionMap|null} The newly created CollisionMap, or null if the method failed to
|
||||
* create the CollisionMap.
|
||||
*/
|
||||
* Sets the collision map for the world either from a Weltmeister JSON level in the cache or from
|
||||
* a 2D array. If loading from a Weltmeister level, the map must have a layer called "collision".
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setCollisionMap
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {string|integer[][]} key - Either a string key that corresponds to a Weltmeister level
|
||||
* in the cache, or a 2D array of collision IDs.
|
||||
* @param {integer} tileSize - The size of a tile. This is optional if loading from a Weltmeister
|
||||
* level in the cache.
|
||||
*
|
||||
* @return {CollisionMap|null} The newly created CollisionMap, or null if the method failed to
|
||||
* create the CollisionMap.
|
||||
*/
|
||||
setCollisionMap: function (key, tileSize)
|
||||
{
|
||||
if (typeof key === 'string')
|
||||
|
@ -149,24 +264,28 @@ var World = new Class({
|
|||
},
|
||||
|
||||
/**
|
||||
* Sets the collision map for the world from a tilemap layer. Only tiles that are marked as
|
||||
* colliding will be used. You can specify the mapping from tiles to slope IDs in a couple of
|
||||
* ways. The easiest is to use Tiled and the slopeTileProperty option. Alternatively, you can
|
||||
* manually create a slopeMap that stores the mapping between tile indices and slope IDs.
|
||||
*
|
||||
* @param {StaticTilemapLayer|DynamicTilemapLayer} tilemapLayer - The tilemap layer to use.
|
||||
* @param {object} [options] - Options for controlling the mapping from tiles to slope IDs.
|
||||
* @param {string} [options.slopeTileProperty=null] - Slope IDs can be stored on tiles directly
|
||||
* using Tiled's tileset editor. If a tile has a property with the given slopeTileProperty string
|
||||
* name, the value of that property for the tile will be used for its slope mapping. E.g. a 45
|
||||
* degree slope upward could be given a "slope" property with a value of 2.
|
||||
* @param {object} [options.slopeMap=null] - A tile index to slope definition map.
|
||||
* @param {integer} [options.defaultCollidingSlope=null] - If specified, the default slope ID to
|
||||
* assign to a colliding tile. If not specified, the tile's index is used.
|
||||
* @param {integer} [options.defaultNonCollidingSlope=0] - The default slope ID to assign to a
|
||||
* non-colliding tile.
|
||||
* @return {CollisionMap} The newly created CollisionMap.
|
||||
*/
|
||||
* Sets the collision map for the world from a tilemap layer. Only tiles that are marked as
|
||||
* colliding will be used. You can specify the mapping from tiles to slope IDs in a couple of
|
||||
* ways. The easiest is to use Tiled and the slopeTileProperty option. Alternatively, you can
|
||||
* manually create a slopeMap that stores the mapping between tile indices and slope IDs.
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setCollisionMapFromTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {StaticTilemapLayer|DynamicTilemapLayer} tilemapLayer - The tilemap layer to use.
|
||||
* @param {object} [options] - Options for controlling the mapping from tiles to slope IDs.
|
||||
* @param {string} [options.slopeTileProperty=null] - Slope IDs can be stored on tiles directly
|
||||
* using Tiled's tileset editor. If a tile has a property with the given slopeTileProperty string
|
||||
* name, the value of that property for the tile will be used for its slope mapping. E.g. a 45
|
||||
* degree slope upward could be given a "slope" property with a value of 2.
|
||||
* @param {object} [options.slopeMap=null] - A tile index to slope definition map.
|
||||
* @param {integer} [options.defaultCollidingSlope=null] - If specified, the default slope ID to
|
||||
* assign to a colliding tile. If not specified, the tile's index is used.
|
||||
* @param {integer} [options.defaultNonCollidingSlope=0] - The default slope ID to assign to a
|
||||
* non-colliding tile.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.CollisionMap} The newly created CollisionMap.
|
||||
*/
|
||||
setCollisionMapFromTilemapLayer: function (tilemapLayer, options)
|
||||
{
|
||||
if (options === undefined) { options = {}; }
|
||||
|
@ -219,23 +338,28 @@ var World = new Class({
|
|||
},
|
||||
|
||||
/**
|
||||
* Sets the bounds of the Physics world to match the given world pixel dimensions.
|
||||
* You can optionally set which 'walls' to create: left, right, top or bottom.
|
||||
* If none of the walls are given it will default to use the walls settings it had previously.
|
||||
* I.e. if you previously told it to not have the left or right walls, and you then adjust the world size
|
||||
* the newly created bounds will also not have the left and right walls.
|
||||
* Explicitly state them in the parameters to override this.
|
||||
*
|
||||
* @method Phaser.Physics.P2#setBounds
|
||||
* @param {number} x - The x coordinate of the top-left corner of the bounds.
|
||||
* @param {number} y - The y coordinate of the top-left corner of the bounds.
|
||||
* @param {number} width - The width of the bounds.
|
||||
* @param {number} height - The height of the bounds.
|
||||
* @param {boolean} [left=true] - If true will create the left bounds wall.
|
||||
* @param {boolean} [right=true] - If true will create the right bounds wall.
|
||||
* @param {boolean} [top=true] - If true will create the top bounds wall.
|
||||
* @param {boolean} [bottom=true] - If true will create the bottom bounds wall.
|
||||
*/
|
||||
* Sets the bounds of the Physics world to match the given world pixel dimensions.
|
||||
* You can optionally set which 'walls' to create: left, right, top or bottom.
|
||||
* If none of the walls are given it will default to use the walls settings it had previously.
|
||||
* I.e. if you previously told it to not have the left or right walls, and you then adjust the world size
|
||||
* the newly created bounds will also not have the left and right walls.
|
||||
* Explicitly state them in the parameters to override this.
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setBounds
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} [x] - The x coordinate of the top-left corner of the bounds.
|
||||
* @param {number} [y] - The y coordinate of the top-left corner of the bounds.
|
||||
* @param {number} [width] - The width of the bounds.
|
||||
* @param {number} [height] - The height of the bounds.
|
||||
* @param {number} [thickness=64] - [description]
|
||||
* @param {boolean} [left=true] - If true will create the left bounds wall.
|
||||
* @param {boolean} [right=true] - If true will create the right bounds wall.
|
||||
* @param {boolean} [top=true] - If true will create the top bounds wall.
|
||||
* @param {boolean} [bottom=true] - If true will create the bottom bounds wall.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setBounds: function (x, y, width, height, thickness, left, right, top, bottom)
|
||||
{
|
||||
if (x === undefined) { x = 0; }
|
||||
|
@ -256,7 +380,19 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
// position = 'left', 'right', 'top' or 'bottom'
|
||||
/**
|
||||
* position = 'left', 'right', 'top' or 'bottom'
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#updateWall
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {boolean} add - [description]
|
||||
* @param {string} position - [description]
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
*/
|
||||
updateWall: function (add, position, x, y, width, height)
|
||||
{
|
||||
var wall = this.walls[position];
|
||||
|
@ -286,11 +422,19 @@ var World = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#createDebugGraphic
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.GameObjects.Graphics} [description]
|
||||
*/
|
||||
createDebugGraphic: function ()
|
||||
{
|
||||
var graphic = this.scene.sys.add.graphics({ x: 0, y: 0 });
|
||||
|
||||
graphic.setZ(Number.MAX_VALUE);
|
||||
graphic.setDepth(Number.MAX_VALUE);
|
||||
|
||||
this.debugGraphic = graphic;
|
||||
|
||||
|
@ -299,11 +443,32 @@ var World = new Class({
|
|||
return graphic;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#getNextID
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {integer} [description]
|
||||
*/
|
||||
getNextID: function ()
|
||||
{
|
||||
return this._lastId++;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#create
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} x - [description]
|
||||
* @param {number} y - [description]
|
||||
* @param {number} sizeX - [description]
|
||||
* @param {number} sizeY - [description]
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.Body} The Body that was added to this World.
|
||||
*/
|
||||
create: function (x, y, sizeX, sizeY)
|
||||
{
|
||||
var body = new Body(this, x, y, sizeX, sizeY);
|
||||
|
@ -313,25 +478,62 @@ var World = new Class({
|
|||
return body;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#remove
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body} object - The Body to remove from this World.
|
||||
*/
|
||||
remove: function (object)
|
||||
{
|
||||
this.bodies.delete(object);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#pause
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
pause: function ()
|
||||
{
|
||||
this.enabled = false;
|
||||
|
||||
this.emit('pause');
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#resume
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
resume: function ()
|
||||
{
|
||||
this.enabled = true;
|
||||
|
||||
this.emit('resume');
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#update
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} time - [description]
|
||||
* @param {number} delta - [description]
|
||||
*/
|
||||
update: function (time, delta)
|
||||
{
|
||||
if (!this.enabled || this.bodies.size === 0)
|
||||
|
@ -394,7 +596,16 @@ var World = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
// Check the body against the spatial hash
|
||||
/**
|
||||
* Check the body against the spatial hash.
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#checkHash
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body} body - [description]
|
||||
* @param {object} hash - [description]
|
||||
* @param {number} size - [description]
|
||||
*/
|
||||
checkHash: function (body, hash, size)
|
||||
{
|
||||
var checked = {};
|
||||
|
@ -437,6 +648,15 @@ var World = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#checkBodies
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body} bodyA - [description]
|
||||
* @param {Phaser.Physics.Impact.Body} bodyB - [description]
|
||||
*/
|
||||
checkBodies: function (bodyA, bodyB)
|
||||
{
|
||||
// 2 fixed bodies won't do anything
|
||||
|
@ -462,10 +682,16 @@ var World = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
// ////////////
|
||||
// Helpers //
|
||||
// ////////////
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setCollidesNever
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the collides value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setCollidesNever: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -476,6 +702,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setLite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the collides value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setLite: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -486,6 +722,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setPassive
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the collides value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setPassive: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -496,6 +742,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setActive
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the collides value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setActive: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -506,6 +762,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setFixed
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the collides value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setFixed: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -516,6 +782,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setTypeNone
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setTypeNone: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -526,6 +802,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setTypeA
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setTypeA: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -536,6 +822,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setTypeB
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setTypeB: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -546,6 +842,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setAvsB
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setAvsB: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -557,6 +863,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setBvsA
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setBvsA: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -568,6 +884,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setCheckAgainstNone
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setCheckAgainstNone: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -578,6 +904,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setCheckAgainstA
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setCheckAgainstA: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -588,6 +924,16 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#setCheckAgainstB
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body[]} bodies - An Array of Impact Bodies to set the type value on.
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
*/
|
||||
setCheckAgainstB: function (bodies)
|
||||
{
|
||||
for (var i = 0; i < bodies.length; i++)
|
||||
|
@ -598,11 +944,23 @@ var World = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#shutdown
|
||||
* @since 3.0.0
|
||||
*/
|
||||
shutdown: function ()
|
||||
{
|
||||
this.removeAllListeners();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#destroy
|
||||
* @since 3.0.0
|
||||
*/
|
||||
destroy: function ()
|
||||
{
|
||||
this.removeAllListeners();
|
||||
|
|
|
@ -1,38 +1,212 @@
|
|||
var Class = require('../../utils/Class');
|
||||
var Utils = require('./Utils');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class WebGLPipeline
|
||||
* @memberOf Phaser.Renderer.WebGL
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {object} config - [description]
|
||||
*/
|
||||
var WebGLPipeline = new Class({
|
||||
|
||||
initialize:
|
||||
initialize:
|
||||
|
||||
function WebGLPipeline(config)
|
||||
function WebGLPipeline (config)
|
||||
{
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#name
|
||||
* @type {string}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.name = 'WebGLPipeline';
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#game
|
||||
* @type {Phaser.Game}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.game = config.game;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#view
|
||||
* @type {HTMLCanvasElement}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.view = config.game.canvas;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#resolution
|
||||
* @type {number}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.resolution = config.game.config.resolution;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#width
|
||||
* @type {number}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.width = config.game.config.width * this.resolution;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#height
|
||||
* @type {number}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.height = config.game.config.height * this.resolution;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#gl
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.gl = config.gl;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#vertexCount
|
||||
* @type {number}
|
||||
* @default 0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexCount = 0;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#vertexCapacity
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexCapacity = config.vertexCapacity;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#renderer
|
||||
* @type {Phaser.Renderer.WebGL.WebGLRenderer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.renderer = config.renderer;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#vertexData
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexData = (config.vertices ? config.vertices : new ArrayBuffer(config.vertexCapacity * config.vertexSize));
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#vertexBuffer
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexBuffer = this.renderer.createVertexBuffer((config.vertices ? config.vertices : this.vertexData.byteLength), this.gl.STREAM_DRAW);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#program
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.program = this.renderer.createProgram(config.vertShader, config.fragShader);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#attributes
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.attributes = config.attributes;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#vertexSize
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexSize = config.vertexSize;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#topology
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.topology = config.topology;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#bytes
|
||||
* @type {Uint8Array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.bytes = new Uint8Array(this.vertexData);
|
||||
// This will store the amount of components of 32 bit length
|
||||
|
||||
/**
|
||||
* This will store the amount of components of 32 bit length
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.WebGLPipeline#vertexComponentCount
|
||||
* @type {[type]}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexComponentCount = Utils.getComponentCount(config.attributes);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#shouldFlush
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {boolean} [description]
|
||||
*/
|
||||
shouldFlush: function ()
|
||||
{
|
||||
return this.vertexCount >= this.vertexCapacity;
|
||||
return (this.vertexCount >= this.vertexCapacity);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#resize
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {number} resolution - [description]
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
resize: function (width, height, resolution)
|
||||
{
|
||||
this.width = width * resolution;
|
||||
|
@ -40,6 +214,14 @@ var WebGLPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#bind
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
bind: function ()
|
||||
{
|
||||
var gl = this.gl;
|
||||
|
@ -71,30 +253,73 @@ var WebGLPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#onBind
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
onBind: function ()
|
||||
{
|
||||
// This is for updating uniform data it's called on each bind attempt.
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#onPreRender
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
onPreRender: function ()
|
||||
{
|
||||
// called once every frame
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#onRender
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Scene} scene - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
onRender: function (scene, camera)
|
||||
{
|
||||
// called for each camera
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#onPostRender
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
onPostRender: function ()
|
||||
{
|
||||
// called once every frame
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#flush
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
flush: function ()
|
||||
{
|
||||
var gl = this.gl;
|
||||
|
@ -114,6 +339,14 @@ var WebGLPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.WebGLPipeline#destroy
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.WebGLPipeline} [description]
|
||||
*/
|
||||
destroy: function ()
|
||||
{
|
||||
var gl = this.gl;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,16 +1,30 @@
|
|||
var Class = require('../../../utils/Class');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
var Utils = require('../Utils');
|
||||
var ShaderSourceVS = require('../shaders/BitmapMask.vert');
|
||||
var ShaderSourceFS = require('../shaders/BitmapMask.frag');
|
||||
var ShaderSourceVS = require('../shaders/BitmapMask.vert');
|
||||
var Utils = require('../Utils');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class BitmapMaskPipeline
|
||||
* @extends Phaser.Renderer.WebGL.WebGLPipeline
|
||||
* @memberOf Phaser.Renderer.WebGL
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Game} game - [description]
|
||||
* @param {[type]} gl - [description]
|
||||
* @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - [description]
|
||||
*/
|
||||
var BitmapMaskPipeline = new Class({
|
||||
|
||||
Extends: WebGLPipeline,
|
||||
|
||||
initialize:
|
||||
|
||||
function BitmapMaskPipeline(game, gl, renderer)
|
||||
function BitmapMaskPipeline (game, gl, renderer)
|
||||
{
|
||||
WebGLPipeline.call(this, {
|
||||
game: game,
|
||||
|
@ -39,11 +53,44 @@ var BitmapMaskPipeline = new Class({
|
|||
]
|
||||
});
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.BitmapMaskPipeline#vertexViewF32
|
||||
* @type {Float32Array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexViewF32 = new Float32Array(this.vertexData);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.BitmapMaskPipeline#maxQuads
|
||||
* @type {number}
|
||||
* @default 1
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxQuads = 1;
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.BitmapMaskPipeline#resolutionDirty
|
||||
* @type {boolean}
|
||||
* @default true
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.resolutionDirty = true;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.BitmapMaskPipeline#onBind
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.BitmapMaskPipeline} [description]
|
||||
*/
|
||||
onBind: function ()
|
||||
{
|
||||
WebGLPipeline.prototype.onBind.call(this);
|
||||
|
@ -62,6 +109,18 @@ var BitmapMaskPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.BitmapMaskPipeline#resize
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {number} resolution - [description]
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.BitmapMaskPipeline} [description]
|
||||
*/
|
||||
resize: function (width, height, resolution)
|
||||
{
|
||||
WebGLPipeline.prototype.resize.call(this, width, height, resolution);
|
||||
|
@ -69,6 +128,16 @@ var BitmapMaskPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.BitmapMaskPipeline#beginMask
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} mask - [description]
|
||||
* @param {[type]} maskedObject - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
beginMask: function (mask, maskedObject, camera)
|
||||
{
|
||||
var bitmapMask = mask.bitmapMask;
|
||||
|
@ -96,6 +165,14 @@ var BitmapMaskPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.BitmapMaskPipeline#endMask
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} mask - [description]
|
||||
*/
|
||||
endMask: function (mask)
|
||||
{
|
||||
var bitmapMask = mask.bitmapMask;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
var Class = require('../../../utils/Class');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
var Utils = require('../Utils');
|
||||
var Earcut = require('../../../geom/polygon/Earcut');
|
||||
var ShaderSourceVS = require('../shaders/FlatTint.vert');
|
||||
var ShaderSourceFS = require('../shaders/FlatTint.frag');
|
||||
var Commands = require('../../../gameobjects/graphics/Commands');
|
||||
var Earcut = require('../../../geom/polygon/Earcut');
|
||||
var ModelViewProjection = require('./components/ModelViewProjection');
|
||||
var ShaderSourceFS = require('../shaders/FlatTint.frag');
|
||||
var ShaderSourceVS = require('../shaders/FlatTint.vert');
|
||||
var Utils = require('../Utils');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
|
||||
var Point = function (x, y, width, rgb, alpha)
|
||||
{
|
||||
|
@ -28,6 +28,20 @@ var matrixStack = new Float32Array(6 * 1000);
|
|||
var matrixStackLength = 0;
|
||||
var pathArray = [];
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class FlatTintPipeline
|
||||
* @extends Phaser.Renderer.WebGL.WebGLPipeline
|
||||
* @memberOf Phaser.Renderer.WebGL
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Game} game - [description]
|
||||
* @param {[type]} gl - [description]
|
||||
* @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - [description]
|
||||
*/
|
||||
var FlatTintPipeline = new Class({
|
||||
|
||||
Extends: WebGLPipeline,
|
||||
|
@ -38,7 +52,7 @@ var FlatTintPipeline = new Class({
|
|||
|
||||
initialize:
|
||||
|
||||
function FlatTintPipeline(game, gl, renderer)
|
||||
function FlatTintPipeline (game, gl, renderer)
|
||||
{
|
||||
WebGLPipeline.call(this, {
|
||||
game: game,
|
||||
|
@ -71,18 +85,59 @@ var FlatTintPipeline = new Class({
|
|||
]
|
||||
});
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.FlatTintPipeline#vertexViewF32
|
||||
* @type {Float32Array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexViewF32 = new Float32Array(this.vertexData);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.FlatTintPipeline#vertexViewU32
|
||||
* @type {Uint32Array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexViewU32 = new Uint32Array(this.vertexData);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.FlatTintPipeline#tempTriangle
|
||||
* @type {array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.tempTriangle = [
|
||||
{x: 0, y: 0, width: 0, rgb: 0xFFFFFF, alpha: 1.0},
|
||||
{x: 0, y: 0, width: 0, rgb: 0xFFFFFF, alpha: 1.0},
|
||||
{x: 0, y: 0, width: 0, rgb: 0xFFFFFF, alpha: 1.0},
|
||||
{x: 0, y: 0, width: 0, rgb: 0xFFFFFF, alpha: 1.0}
|
||||
];
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.FlatTintPipeline#polygonCache
|
||||
* @type {array}
|
||||
* @default []
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.polygonCache = [];
|
||||
|
||||
this.mvpInit();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#onBind
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.FlatTintPipeline} [description]
|
||||
*/
|
||||
onBind: function ()
|
||||
{
|
||||
WebGLPipeline.prototype.onBind.call(this);
|
||||
|
@ -91,6 +146,18 @@ var FlatTintPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#resize
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {number} resolution - [description]
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.FlatTintPipeline} [description]
|
||||
*/
|
||||
resize: function (width, height, resolution)
|
||||
{
|
||||
WebGLPipeline.prototype.resize.call(this, width, height, resolution);
|
||||
|
@ -99,6 +166,32 @@ var FlatTintPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchFillRect
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcScaleX - [description]
|
||||
* @param {[type]} srcScaleY - [description]
|
||||
* @param {[type]} srcRotation - [description]
|
||||
* @param {[type]} x - [description]
|
||||
* @param {[type]} y - [description]
|
||||
* @param {[type]} width - [description]
|
||||
* @param {[type]} height - [description]
|
||||
* @param {[type]} fillColor - [description]
|
||||
* @param {[type]} fillAlpha - [description]
|
||||
* @param {[type]} a1 - [description]
|
||||
* @param {[type]} b1 - [description]
|
||||
* @param {[type]} c1 - [description]
|
||||
* @param {[type]} d1 - [description]
|
||||
* @param {[type]} e1 - [description]
|
||||
* @param {[type]} f1 - [description]
|
||||
* @param {[type]} currentMatrix - [description]
|
||||
* @param {[type]} roundPixels - [description]
|
||||
*/
|
||||
batchFillRect: function (srcX, srcY, srcScaleX, srcScaleY, srcRotation, x, y, width, height, fillColor, fillAlpha, a1, b1, c1, d1, e1, f1, currentMatrix, roundPixels)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -171,6 +264,34 @@ var FlatTintPipeline = new Class({
|
|||
this.vertexCount += 6;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchFillTriangle
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcScaleX - [description]
|
||||
* @param {[type]} srcScaleY - [description]
|
||||
* @param {[type]} srcRotation - [description]
|
||||
* @param {[type]} x0 - [description]
|
||||
* @param {[type]} y0 - [description]
|
||||
* @param {[type]} x1 - [description]
|
||||
* @param {[type]} y1 - [description]
|
||||
* @param {[type]} x2 - [description]
|
||||
* @param {[type]} y2 - [description]
|
||||
* @param {[type]} fillColor - [description]
|
||||
* @param {[type]} fillAlpha - [description]
|
||||
* @param {[type]} a1 - [description]
|
||||
* @param {[type]} b1 - [description]
|
||||
* @param {[type]} c1 - [description]
|
||||
* @param {[type]} d1 - [description]
|
||||
* @param {[type]} e1 - [description]
|
||||
* @param {[type]} f1 - [description]
|
||||
* @param {[type]} currentMatrix - [description]
|
||||
* @param {[type]} roundPixels - [description]
|
||||
*/
|
||||
batchFillTriangle: function (srcX, srcY, srcScaleX, srcScaleY, srcRotation, x0, y0, x1, y1, x2, y2, fillColor, fillAlpha, a1, b1, c1, d1, e1, f1, currentMatrix, roundPixels)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -228,9 +349,37 @@ var FlatTintPipeline = new Class({
|
|||
this.vertexCount += 3;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchStrokeTriangle
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcScaleX - [description]
|
||||
* @param {[type]} srcScaleY - [description]
|
||||
* @param {[type]} srcRotation - [description]
|
||||
* @param {[type]} x0 - [description]
|
||||
* @param {[type]} y0 - [description]
|
||||
* @param {[type]} x1 - [description]
|
||||
* @param {[type]} y1 - [description]
|
||||
* @param {[type]} x2 - [description]
|
||||
* @param {[type]} y2 - [description]
|
||||
* @param {[type]} lineWidth - [description]
|
||||
* @param {[type]} lineColor - [description]
|
||||
* @param {[type]} lineAlpha - [description]
|
||||
* @param {[type]} a - [description]
|
||||
* @param {[type]} b - [description]
|
||||
* @param {[type]} c - [description]
|
||||
* @param {[type]} d - [description]
|
||||
* @param {[type]} e - [description]
|
||||
* @param {[type]} f - [description]
|
||||
* @param {[type]} currentMatrix - [description]
|
||||
* @param {[type]} roundPixels - [description]
|
||||
*/
|
||||
batchStrokeTriangle: function (srcX, srcY, srcScaleX, srcScaleY, srcRotation, x0, y0, x1, y1, x2, y2, lineWidth, lineColor, lineAlpha, a, b, c, d, e, f, currentMatrix, roundPixels)
|
||||
{
|
||||
|
||||
var tempTriangle = this.tempTriangle;
|
||||
|
||||
tempTriangle[0].x = x0;
|
||||
|
@ -264,6 +413,29 @@ var FlatTintPipeline = new Class({
|
|||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchFillPath
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcScaleX - [description]
|
||||
* @param {[type]} srcScaleY - [description]
|
||||
* @param {[type]} srcRotation - [description]
|
||||
* @param {[type]} path - [description]
|
||||
* @param {[type]} fillColor - [description]
|
||||
* @param {[type]} fillAlpha - [description]
|
||||
* @param {[type]} a1 - [description]
|
||||
* @param {[type]} b1 - [description]
|
||||
* @param {[type]} c1 - [description]
|
||||
* @param {[type]} d1 - [description]
|
||||
* @param {[type]} e1 - [description]
|
||||
* @param {[type]} f1 - [description]
|
||||
* @param {[type]} currentMatrix - [description]
|
||||
* @param {[type]} roundPixels - [description]
|
||||
*/
|
||||
batchFillPath: function (srcX, srcY, srcScaleX, srcScaleY, srcRotation, path, fillColor, fillAlpha, a1, b1, c1, d1, e1, f1, currentMatrix, roundPixels)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -356,6 +528,31 @@ var FlatTintPipeline = new Class({
|
|||
polygonCache.length = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchStrokePath
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcScaleX - [description]
|
||||
* @param {[type]} srcScaleY - [description]
|
||||
* @param {[type]} srcRotation - [description]
|
||||
* @param {[type]} path - [description]
|
||||
* @param {[type]} lineWidth - [description]
|
||||
* @param {[type]} lineColor - [description]
|
||||
* @param {[type]} lineAlpha - [description]
|
||||
* @param {[type]} a - [description]
|
||||
* @param {[type]} b - [description]
|
||||
* @param {[type]} c - [description]
|
||||
* @param {[type]} d - [description]
|
||||
* @param {[type]} e - [description]
|
||||
* @param {[type]} f - [description]
|
||||
* @param {[type]} isLastPath - [description]
|
||||
* @param {[type]} currentMatrix - [description]
|
||||
* @param {[type]} roundPixels - [description]
|
||||
*/
|
||||
batchStrokePath: function (srcX, srcY, srcScaleX, srcScaleY, srcRotation, path, lineWidth, lineColor, lineAlpha, a, b, c, d, e, f, isLastPath, currentMatrix, roundPixels)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -424,9 +621,37 @@ var FlatTintPipeline = new Class({
|
|||
}
|
||||
|
||||
polylines.length = 0;
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchLine
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcScaleX - [description]
|
||||
* @param {[type]} srcScaleY - [description]
|
||||
* @param {[type]} srcRotation - [description]
|
||||
* @param {[type]} ax - [description]
|
||||
* @param {[type]} ay - [description]
|
||||
* @param {[type]} bx - [description]
|
||||
* @param {[type]} by - [description]
|
||||
* @param {[type]} aLineWidth - [description]
|
||||
* @param {[type]} bLineWidth - [description]
|
||||
* @param {[type]} aLineColor - [description]
|
||||
* @param {[type]} bLineColor - [description]
|
||||
* @param {[type]} lineAlpha - [description]
|
||||
* @param {[type]} a1 - [description]
|
||||
* @param {[type]} b1 - [description]
|
||||
* @param {[type]} c1 - [description]
|
||||
* @param {[type]} d1 - [description]
|
||||
* @param {[type]} e1 - [description]
|
||||
* @param {[type]} f1 - [description]
|
||||
* @param {[type]} currentMatrix - [description]
|
||||
* @param {[type]} roundPixels - [description]
|
||||
*/
|
||||
batchLine: function (srcX, srcY, srcScaleX, srcScaleY, srcRotation, ax, ay, bx, by, aLineWidth, bLineWidth, aLineColor, bLineColor, lineAlpha, a1, b1, c1, d1, e1, f1, currentMatrix, roundPixels)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -521,6 +746,15 @@ var FlatTintPipeline = new Class({
|
|||
];
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchGraphics
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Graphics} graphics - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchGraphics: function (graphics, camera)
|
||||
{
|
||||
if (graphics.commandBuffer.length <= 0) return;
|
||||
|
@ -877,42 +1111,132 @@ var FlatTintPipeline = new Class({
|
|||
|
||||
// Stubs
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#drawStaticTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tilemap - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
drawStaticTilemapLayer: function (tilemap, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#drawEmitterManager
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} emitterManager - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
drawEmitterManager: function (emitterManager, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#drawBlitter
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} blitter - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
drawBlitter: function (blitter, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} sprite - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchSprite: function (sprite, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchMesh
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} mesh - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchMesh: function (mesh, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchBitmapText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} bitmapText - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchBitmapText: function (bitmapText, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchDynamicBitmapText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} bitmapText - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchDynamicBitmapText: function (bitmapText, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} text - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchText: function (text, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchDynamicTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tilemapLayer - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchDynamicTilemapLayer: function (tilemapLayer, camera)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.FlatTintPipeline#batchTileSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tileSprite - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchTileSprite: function (tileSprite, camera)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -1,22 +1,44 @@
|
|||
|
||||
var Class = require('../../../utils/Class');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
var Utils = require('../Utils');
|
||||
var TextureTintPipeline = require('./TextureTintPipeline');
|
||||
var ShaderSourceFS = require('../shaders/ForwardDiffuse.frag');
|
||||
var TextureTintPipeline = require('./TextureTintPipeline');
|
||||
var Utils = require('../Utils');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
|
||||
var LIGHT_COUNT = 10;
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class ForwardDiffuseLightPipeline
|
||||
* @extends Phaser.Renderer.WebGL.TextureTintPipeline
|
||||
* @memberOf Phaser.Renderer.WebGL
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Game} game - [description]
|
||||
* @param {[type]} gl - [description]
|
||||
* @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - [description]
|
||||
*/
|
||||
var ForwardDiffuseLightPipeline = new Class({
|
||||
|
||||
Extends: TextureTintPipeline,
|
||||
|
||||
initialize:
|
||||
|
||||
function ForwardDiffuseLightPipeline(game, gl, renderer)
|
||||
function ForwardDiffuseLightPipeline (game, gl, renderer)
|
||||
{
|
||||
TextureTintPipeline.call(this, game, gl, renderer, ShaderSourceFS.replace('%LIGHT_COUNT%', LIGHT_COUNT.toString()));
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#onBind
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline} [description]
|
||||
*/
|
||||
onBind: function ()
|
||||
{
|
||||
TextureTintPipeline.prototype.onBind.call(this);
|
||||
|
@ -32,6 +54,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#onRender
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Scene} scene - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline} [description]
|
||||
*/
|
||||
onRender: function (scene, camera)
|
||||
{
|
||||
var lightManager = scene.lights;
|
||||
|
@ -75,6 +108,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#drawStaticTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tilemap - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
drawStaticTilemapLayer: function (tilemap, camera)
|
||||
{
|
||||
var normalTexture = tilemap.texture.dataSource[0];
|
||||
|
@ -90,6 +134,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#drawEmitterManager
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} emitterManager - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
drawEmitterManager: function (emitterManager, camera)
|
||||
{
|
||||
var normalTexture = emitterManager.texture.dataSource[0];
|
||||
|
@ -105,6 +160,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#drawBlitter
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Blitter} blitter - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
drawBlitter: function (blitter, camera)
|
||||
{
|
||||
var normalTexture = blitter.texture.dataSource[0];
|
||||
|
@ -120,6 +186,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Sprite} sprite - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchSprite: function (sprite, camera)
|
||||
{
|
||||
var normalTexture = sprite.texture.dataSource[0];
|
||||
|
@ -136,6 +213,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchMesh
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Mesh} mesh - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchMesh: function (mesh, camera)
|
||||
{
|
||||
var normalTexture = mesh.texture.dataSource[0];
|
||||
|
@ -153,6 +241,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchBitmapText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} bitmapText - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchBitmapText: function (bitmapText, camera)
|
||||
{
|
||||
var normalTexture = bitmapText.texture.dataSource[0];
|
||||
|
@ -168,6 +267,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchDynamicBitmapText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} bitmapText - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchDynamicBitmapText: function (bitmapText, camera)
|
||||
{
|
||||
var normalTexture = bitmapText.texture.dataSource[0];
|
||||
|
@ -183,6 +293,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} text - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchText: function (text, camera)
|
||||
{
|
||||
var normalTexture = text.texture.dataSource[0];
|
||||
|
@ -198,6 +319,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchDynamicTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tilemapLayer - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchDynamicTilemapLayer: function (tilemapLayer, camera)
|
||||
{
|
||||
var normalTexture = tilemapLayer.texture.dataSource[0];
|
||||
|
@ -213,6 +345,17 @@ var ForwardDiffuseLightPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.ForwardDiffuseLightPipeline#batchTileSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.TileSprite} tileSprite - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
batchTileSprite: function (tileSprite, camera)
|
||||
{
|
||||
var normalTexture = tileSprite.texture.dataSource[0];
|
||||
|
|
|
@ -1,10 +1,25 @@
|
|||
var Class = require('../../../utils/Class');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
var Utils = require('../Utils');
|
||||
var ShaderSourceVS = require('../shaders/TextureTint.vert');
|
||||
var ShaderSourceFS = require('../shaders/TextureTint.frag');
|
||||
var ModelViewProjection = require('./components/ModelViewProjection');
|
||||
var ShaderSourceFS = require('../shaders/TextureTint.frag');
|
||||
var ShaderSourceVS = require('../shaders/TextureTint.vert');
|
||||
var Utils = require('../Utils');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class TextureTintPipeline
|
||||
* @extends Phaser.Renderer.WebGL.WebGLPipeline
|
||||
* @memberOf Phaser.Renderer.WebGL
|
||||
* @constructor
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Game} game - [description]
|
||||
* @param {[type]} gl - [description]
|
||||
* @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - [description]
|
||||
* @param {boolean} overrideFragmentShader - [description]
|
||||
*/
|
||||
var TextureTintPipeline = new Class({
|
||||
|
||||
Extends: WebGLPipeline,
|
||||
|
@ -15,7 +30,7 @@ var TextureTintPipeline = new Class({
|
|||
|
||||
initialize:
|
||||
|
||||
function TextureTintPipeline(game, gl, renderer, overrideFragmentShader)
|
||||
function TextureTintPipeline (game, gl, renderer, overrideFragmentShader)
|
||||
{
|
||||
WebGLPipeline.call(this, {
|
||||
game: game,
|
||||
|
@ -56,12 +71,45 @@ var TextureTintPipeline = new Class({
|
|||
]
|
||||
});
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.TextureTintPipeline#vertexViewF32
|
||||
* @type {Float32Array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexViewF32 = new Float32Array(this.vertexData);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.TextureTintPipeline#vertexViewU32
|
||||
* @type {Uint32Array}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.vertexViewU32 = new Uint32Array(this.vertexData);
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.TextureTintPipeline#maxQuads
|
||||
* @type {integer}
|
||||
* @default 2000
|
||||
* @since 3.0.0
|
||||
*/
|
||||
this.maxQuads = 2000;
|
||||
|
||||
this.mvpInit();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#onBind
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.TextureTintPipeline} [description]
|
||||
*/
|
||||
onBind: function ()
|
||||
{
|
||||
WebGLPipeline.prototype.onBind.call(this);
|
||||
|
@ -70,14 +118,34 @@ var TextureTintPipeline = new Class({
|
|||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#resize
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {number} width - [description]
|
||||
* @param {number} height - [description]
|
||||
* @param {number} resolution - [description]
|
||||
*
|
||||
* @return {Phaser.Renderer.WebGL.TextureTintPipeline} [description]
|
||||
*/
|
||||
resize: function (width, height, resolution)
|
||||
{
|
||||
WebGLPipeline.prototype.resize.call(this, width, height, resolution);
|
||||
this.projOrtho(0, this.width, this.height, 0, -1000.0, 1000.0);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#drawStaticTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tilemap - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
drawStaticTilemapLayer: function (tilemap, camera)
|
||||
{
|
||||
if (tilemap.vertexCount > 0)
|
||||
|
@ -107,6 +175,15 @@ var TextureTintPipeline = new Class({
|
|||
this.modelIdentity();
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#drawEmitterManager
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} emitterManager - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
drawEmitterManager: function (emitterManager, camera)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -262,6 +339,15 @@ var TextureTintPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#drawBlitter
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Blitter} blitter - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
drawBlitter: function (blitter, camera)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -377,6 +463,15 @@ var TextureTintPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Sprite} sprite - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchSprite: function (sprite, camera)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -502,6 +597,15 @@ var TextureTintPipeline = new Class({
|
|||
this.vertexCount += 6;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchMesh
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.Mesh} mesh - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchMesh: function (mesh, camera)
|
||||
{
|
||||
var vertices = mesh.vertices;
|
||||
|
@ -589,6 +693,15 @@ var TextureTintPipeline = new Class({
|
|||
this.vertexCount += vertexCount;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchBitmapText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} bitmapText - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchBitmapText: function (bitmapText, camera)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -803,6 +916,15 @@ var TextureTintPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchDynamicBitmapText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} bitmapText - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchDynamicBitmapText: function (bitmapText, camera)
|
||||
{
|
||||
this.renderer.setPipeline(this);
|
||||
|
@ -1094,6 +1216,15 @@ var TextureTintPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchText
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} text - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchText: function (text, camera)
|
||||
{
|
||||
var getTint = Utils.getTintAppendFloatAlpha;
|
||||
|
@ -1119,6 +1250,15 @@ var TextureTintPipeline = new Class({
|
|||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchDynamicTilemapLayer
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} tilemapLayer - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchDynamicTilemapLayer: function (tilemapLayer, camera)
|
||||
{
|
||||
var renderTiles = tilemapLayer.culledTiles;
|
||||
|
@ -1166,6 +1306,15 @@ var TextureTintPipeline = new Class({
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchTileSprite
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.TileSprite} tileSprite - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchTileSprite: function (tileSprite, camera)
|
||||
{
|
||||
var getTint = Utils.getTintAppendFloatAlpha;
|
||||
|
@ -1192,6 +1341,41 @@ var TextureTintPipeline = new Class({
|
|||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchTexture
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.GameObjects.GameObject} gameObject - [description]
|
||||
* @param {[type]} texture - [description]
|
||||
* @param {[type]} textureWidth - [description]
|
||||
* @param {[type]} textureHeight - [description]
|
||||
* @param {[type]} srcX - [description]
|
||||
* @param {[type]} srcY - [description]
|
||||
* @param {[type]} srcWidth - [description]
|
||||
* @param {[type]} srcHeight - [description]
|
||||
* @param {[type]} scaleX - [description]
|
||||
* @param {[type]} scaleY - [description]
|
||||
* @param {[type]} rotation - [description]
|
||||
* @param {[type]} flipX - [description]
|
||||
* @param {[type]} flipY - [description]
|
||||
* @param {[type]} scrollFactorX - [description]
|
||||
* @param {[type]} scrollFactorY - [description]
|
||||
* @param {[type]} displayOriginX - [description]
|
||||
* @param {[type]} displayOriginY - [description]
|
||||
* @param {[type]} frameX - [description]
|
||||
* @param {[type]} frameY - [description]
|
||||
* @param {[type]} frameWidth - [description]
|
||||
* @param {[type]} frameHeight - [description]
|
||||
* @param {[type]} tintTL - [description]
|
||||
* @param {[type]} tintTR - [description]
|
||||
* @param {[type]} tintBL - [description]
|
||||
* @param {[type]} tintBR - [description]
|
||||
* @param {[type]} uOffset - [description]
|
||||
* @param {[type]} vOffset - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchTexture: function (
|
||||
gameObject,
|
||||
texture,
|
||||
|
@ -1317,6 +1501,15 @@ var TextureTintPipeline = new Class({
|
|||
this.vertexCount += 6;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.TextureTintPipeline#batchGraphics
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} graphics - [description]
|
||||
* @param {Phaser.Cameras.Scene2D.Camera} camera - [description]
|
||||
*/
|
||||
batchGraphics: function (graphics, camera)
|
||||
{
|
||||
// Stub
|
||||
|
|
|
@ -1,15 +1,94 @@
|
|||
|
||||
module.exports = {
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.PENDING
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PENDING: 0,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.INIT
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
INIT: 1,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.START
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
START: 2,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.LOADING
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
LOADING: 3,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.CREATING
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
CREATING: 4,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.RUNNING
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
RUNNING: 5,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.PAUSED
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PAUSED: 6,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.SLEEPING
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
SLEEPING: 7,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.SHUTDOWN
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
SHUTDOWN: 8,
|
||||
|
||||
/**
|
||||
* Scene state.
|
||||
*
|
||||
* @name Phaser.Scenes.DESTROYED
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
DESTROYED: 9
|
||||
|
||||
};
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
module.exports = {
|
||||
|
||||
Components: require('./components/'),
|
||||
Parsers: require('./parsers'),
|
||||
|
||||
Formats: require('./Formats'),
|
||||
ImageCollection: require('./ImageCollection'),
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
var Formats = require('../Formats');
|
||||
var Parse2DArray = require('./Parse2DArray');
|
||||
var ParseCSV = require('./ParseCSV');
|
||||
var ParseTiledJSON = require('./parsetiledjson/');
|
||||
var ParseWeltmister = require('./parseweltmeister/');
|
||||
var Formats = require('../Formats');
|
||||
var ParseTiledJSON = require('./tiled/');
|
||||
var ParseWeltmister = require('./impact/');
|
||||
|
||||
/**
|
||||
* Parses raw data of a given Tilemap format into a new MapData object. If no recognized data format
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
var MapData = require('../mapdata/MapData');
|
||||
var LayerData = require('../mapdata/LayerData');
|
||||
var Formats = require('../Formats');
|
||||
var LayerData = require('../mapdata/LayerData');
|
||||
var MapData = require('../mapdata/MapData');
|
||||
var Tile = require('../Tile');
|
||||
|
||||
/**
|
||||
|
|
14
src/tilemaps/parsers/index.js
Normal file
14
src/tilemaps/parsers/index.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* @namespace Phaser.Tilemaps.Parsers
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
|
||||
Parse: require('./Parse'),
|
||||
Parse2DArray: require('./Parse2DArray'),
|
||||
ParseCSV: require('./ParseCSV'),
|
||||
|
||||
Impact: require('./impact'),
|
||||
Tiled: require('./tiled')
|
||||
|
||||
};
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
var Pick = require('./Pick');
|
||||
var ParseGID = require('./ParseGID');
|
||||
|
|
@ -1,12 +1,24 @@
|
|||
var HasValue = require('../../../utils/object/HasValue');
|
||||
|
||||
var pick = function (object, keys)
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @function Phaser.Tilemaps.Parsers.Tiled.Pick
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {[type]} object - [description]
|
||||
* @param {[type]} keys - [description]
|
||||
*
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
var Pick = function (object, keys)
|
||||
{
|
||||
var obj = {};
|
||||
|
||||
for (var i = 0; i < keys.length; i++)
|
||||
{
|
||||
var key = keys[i];
|
||||
|
||||
if (HasValue(object, key))
|
||||
{
|
||||
obj[key] = object[key];
|
||||
|
@ -16,4 +28,4 @@ var pick = function (object, keys)
|
|||
return obj;
|
||||
};
|
||||
|
||||
module.exports = pick;
|
||||
module.exports = Pick;
|
|
@ -1,26 +1,158 @@
|
|||
var TWEEN_CONST = {
|
||||
|
||||
// TweenData:
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.CREATED
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
CREATED: 0,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.INIT
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
INIT: 1,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.OFFSET_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
DELAY: 2,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.OFFSET_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
OFFSET_DELAY: 3,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.PLAYING_FORWARD
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PENDING_RENDER: 4,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.PLAYING_FORWARD
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PLAYING_FORWARD: 5,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.PLAYING_BACKWARD
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PLAYING_BACKWARD: 6,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.HOLD_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
HOLD_DELAY: 7,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.REPEAT_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
REPEAT_DELAY: 8,
|
||||
|
||||
/**
|
||||
* TweenData state.
|
||||
*
|
||||
* @name Phaser.Tweens.COMPLETE
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
COMPLETE: 9,
|
||||
|
||||
// Tween specific (starts from 20 to cleanly allow extra TweenData consts in the future)
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.PENDING_ADD
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PENDING_ADD: 20,
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.LOOP_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PAUSED: 21,
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.LOOP_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
LOOP_DELAY: 22,
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.ACTIVE
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
ACTIVE: 23,
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.COMPLETE_DELAY
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
COMPLETE_DELAY: 24,
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.PENDING_REMOVE
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
PENDING_REMOVE: 25,
|
||||
|
||||
/**
|
||||
* Tween state.
|
||||
*
|
||||
* @name Phaser.Tweens.REMOVED
|
||||
* @type {integer}
|
||||
* @since 3.0.0
|
||||
*/
|
||||
REMOVED: 26
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue