mirror of
https://github.com/photonstorm/phaser
synced 2025-02-16 22:18:29 +00:00
Lots of Math component exports added.
Restructured Phaser export file, finally removing it out of the Boot folder. Fixed several broken math functions.
This commit is contained in:
parent
dc5ddec256
commit
6585297fbf
21 changed files with 221 additions and 63 deletions
|
@ -4,35 +4,27 @@
|
|||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
var Device = require('../device');
|
||||
var Config = require('./Config');
|
||||
var DebugHeader = require('./DebugHeader');
|
||||
var CreateRenderer = require('./CreateRenderer');
|
||||
var Device = require('../device');
|
||||
|
||||
var AddToDOM = require('../dom/AddToDOM');
|
||||
var RequestAnimationFrame = require('../dom/RequestAnimationFrame');
|
||||
var DOMContentLoaded = require('../dom/DOMContentLoaded');
|
||||
|
||||
var CreateRenderer = require('./CreateRenderer');
|
||||
var RandomDataGenerator = require('../math/random-data-generator/RandomDataGenerator');
|
||||
var StateManager = require('../state/StateManager');
|
||||
var FactoryContainer = require('../gameobjects/FactoryContainer');
|
||||
var GameObjects = require('../gameobjects/');
|
||||
var TextureManager = require ('../textures/TextureManager');
|
||||
var AddToDOM = require('../dom/AddToDOM');
|
||||
|
||||
var Game = function (config)
|
||||
{
|
||||
this.config = new Config(config);
|
||||
|
||||
// Decide which of the following should be Game properties, or placed elsewhere ...
|
||||
|
||||
this.renderer = null;
|
||||
this.canvas = null;
|
||||
this.context = null;
|
||||
|
||||
/**
|
||||
* @property {string|HTMLElement} parent - The Games DOM parent.
|
||||
* @default
|
||||
*/
|
||||
this.parent = parent;
|
||||
|
||||
this.isBooted = false;
|
||||
this.isRunning = false;
|
||||
|
||||
|
@ -45,17 +37,12 @@ var Game = function (config)
|
|||
/**
|
||||
* @property {Phaser.TextureManager} textures - Reference to the Phaser Texture Manager.
|
||||
*/
|
||||
this.textures = new TextureManager(this);
|
||||
|
||||
/**
|
||||
* @property {Phaser.UpdateManager} updates - Reference to the Phaser Update Manager.
|
||||
*/
|
||||
this.updates = null;
|
||||
this.textures = new TextureManager();
|
||||
|
||||
/**
|
||||
* @property {Phaser.Cache} cache - Reference to the assets cache.
|
||||
*/
|
||||
this.cache = null;
|
||||
// this.cache = new Cache();
|
||||
|
||||
/**
|
||||
* @property {Phaser.Input} input - Reference to the input manager
|
||||
|
@ -72,7 +59,7 @@ var Game = function (config)
|
|||
*/
|
||||
this.device = Device;
|
||||
|
||||
// More this somewhere else? Math perhaps? Doesn't need to be a Game level system.
|
||||
// Move this somewhere else? Math perhaps? Doesn't need to be a Game level system.
|
||||
this.rnd;
|
||||
|
||||
// Wait for the DOM Ready event, then call boot.
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
module.exports = {
|
||||
|
||||
// Doing this makes it available under Phaser.Game
|
||||
Game: require('./Game'),
|
||||
|
||||
Event: require('../events/Event'),
|
||||
EventDispatcher: require('../events/EventDispatcher'),
|
||||
|
||||
Loader: {
|
||||
ImageFile: require('../loader/filetypes/ImageFile')
|
||||
}
|
||||
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
var CHECKSUM = {
|
||||
build: '3ccb42b0-c0bb-11e6-b4bc-27e9a3360164'
|
||||
build: 'a4ceb980-c14e-11e6-a2dd-3f0865028f71'
|
||||
};
|
||||
module.exports = CHECKSUM;
|
36
v3/src/gameobjects/container/Container.js
Normal file
36
v3/src/gameobjects/container/Container.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2016 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
var CONST = require('../../const');
|
||||
var GameObject = require('../GameObject');
|
||||
var ContainerWebGLRenderer = require('./ContainerWebGLRenderer');
|
||||
var Children = require('../../components/Children');
|
||||
|
||||
var Container = function (state, parent, x, y)
|
||||
{
|
||||
GameObject.call(this, state, x, y, null, null, parent);
|
||||
|
||||
this.type = CONST.CONTAINER;
|
||||
|
||||
this.render = ContainerWebGLRenderer;
|
||||
|
||||
this.children = new Children(this);
|
||||
};
|
||||
|
||||
Container.prototype = Object.create(GameObject.prototype);
|
||||
Container.prototype.constructor = Container;
|
||||
|
||||
Container.prototype.preUpdate = function ()
|
||||
{
|
||||
if (this.parent)
|
||||
{
|
||||
this.color.worldAlpha = this.parent.color.worldAlpha;
|
||||
}
|
||||
|
||||
this.children.preUpdate();
|
||||
};
|
||||
|
||||
module.exports = Container;
|
28
v3/src/gameobjects/container/ContainerFactory.js
Normal file
28
v3/src/gameobjects/container/ContainerFactory.js
Normal file
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2016 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
var Container = require('./Container');
|
||||
var FactoryContainer = require('../../gameobjects/FactoryContainer');
|
||||
|
||||
var ContainerFactory = {
|
||||
|
||||
KEY: 'container',
|
||||
|
||||
add: function (parent, x, y)
|
||||
{
|
||||
if (group === undefined) { group = this.state; }
|
||||
|
||||
return group.children.add(new Container(this.state, parent, x, y));
|
||||
},
|
||||
|
||||
make: function (parent, x, y)
|
||||
{
|
||||
return new Container(this.state, parent, x, y);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
module.exports = FactoryContainer.register(ContainerFactory);
|
23
v3/src/gameobjects/container/ContainerWebGLRenderer.js
Normal file
23
v3/src/gameobjects/container/ContainerWebGLRenderer.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
var ContainerWebGLRenderer = function (renderer, src, interpolationPercentage)
|
||||
{
|
||||
var frame = src.frame;
|
||||
var alpha = src.color.worldAlpha * 255 << 24;
|
||||
|
||||
// Skip rendering?
|
||||
|
||||
if (src.skipRender || !src.visible || alpha === 0 || src.children.list.length === 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Render children
|
||||
for (var i = 0; i < src.children.list.length; i++)
|
||||
{
|
||||
var child = src.children.list[i];
|
||||
|
||||
child.render(renderer, child);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = ContainerWebGLRenderer;
|
|
@ -1,5 +1,4 @@
|
|||
// Include all of the Game Object Factories
|
||||
//
|
||||
// This file should be linked to the specific build of Phaser, i.e. Phaser Nano won't require all GOs
|
||||
|
||||
require('./image/ImageFactory');
|
||||
require('./container/ContainerFactory');
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
var Average = function ()
|
||||
var Average = function (values)
|
||||
{
|
||||
var sum = 0;
|
||||
var len = arguments.length;
|
||||
|
||||
for (var i = 0; i < len; i++)
|
||||
for (var i = 0; i < values.length; i++)
|
||||
{
|
||||
sum += (+arguments[i]);
|
||||
sum += (+values[i]);
|
||||
}
|
||||
|
||||
return sum / len;
|
||||
return sum / values.length;
|
||||
};
|
||||
|
||||
module.exports = Average;
|
||||
|
|
|
@ -3,4 +3,4 @@ var Between = function (x1, y1, x2, y2)
|
|||
return Math.atan2(y2 - y1, x2 - x1);
|
||||
};
|
||||
|
||||
export.module = Between;
|
||||
module.exports = Between;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
var MathWrap from '../Wrap';
|
||||
var Wrap = require('../Wrap');
|
||||
|
||||
var WrapDegrees (angle)
|
||||
var WrapDegrees = function (angle)
|
||||
{
|
||||
return MathWrap(angle, -180, 180);
|
||||
return Wrap(angle, -180, 180);
|
||||
};
|
||||
|
||||
module.exports = WrapDegrees;
|
||||
|
|
7
v3/src/math/distance/index.js
Normal file
7
v3/src/math/distance/index.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = {
|
||||
|
||||
Between: require('./DistanceBetween'),
|
||||
Power: require('./DistancePower'),
|
||||
Squared: require('./DistanceSquared')
|
||||
|
||||
};
|
15
v3/src/math/easing/index.js
Normal file
15
v3/src/math/easing/index.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
module.exports = {
|
||||
|
||||
Back: require('./Back'),
|
||||
Bounce: require('./Bounce'),
|
||||
Circular: require('./Circular'),
|
||||
Cubic: require('./Cubic'),
|
||||
Elastic: require('./Elastic'),
|
||||
Expo: require('./Expo'),
|
||||
Linear: require('./Linear'),
|
||||
Quadratic: require('./Quadratic'),
|
||||
Quartic: require('./Quartic'),
|
||||
Quintic: require('./Quintic'),
|
||||
Sine: require('./Sine')
|
||||
|
||||
};
|
39
v3/src/math/index.js
Normal file
39
v3/src/math/index.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
module.exports = {
|
||||
|
||||
// Collections of functions
|
||||
Angle: require('./angle/'),
|
||||
Distance: require('./distance/'),
|
||||
Easing: require('./easing/'),
|
||||
Fuzzy: require('./fuzzy/'),
|
||||
Interpolation: require('./interpolation/'),
|
||||
Pow2: require('./pow2/'),
|
||||
Snap: require('./snap/'),
|
||||
|
||||
// Single functions
|
||||
Average: require('./Average'),
|
||||
Bernstein: require('./Bernstein'),
|
||||
Between: require('./Between'),
|
||||
CatmullRom: require('./CatmullRom'),
|
||||
CeilTo: require('./CeilTo'),
|
||||
Clamp: require('./Clamp'),
|
||||
DegToRad: require('./DegToRad'),
|
||||
Difference: require('./Difference'),
|
||||
Factorial: require('./Factorial'),
|
||||
FloatBetween: require('./FloatBetween'),
|
||||
FloorTo: require('./FloorTo'),
|
||||
Linear: require('./Linear'),
|
||||
MaxAdd: require('./MaxAdd'),
|
||||
MinSub: require('./MinSub'),
|
||||
Percent: require('./Percent'),
|
||||
RadToDeg: require('./RadToDeg'),
|
||||
Rotate: require('./Rotate'),
|
||||
RotateAround: require('./RotateAround'),
|
||||
RoundAwayFromZero: require('./RoundAwayFromZero'),
|
||||
RoundTo: require('./RoundTo'),
|
||||
SinCosTableGenerator: require('./SinCosTableGenerator'),
|
||||
SmootherStep: require('./SmootherStep'),
|
||||
SmoothStep: require('./SmoothStep'),
|
||||
Within: require('./Within'),
|
||||
Wrap: require('./Wrap')
|
||||
|
||||
};
|
7
v3/src/math/interpolation/index.js
Normal file
7
v3/src/math/interpolation/index.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = {
|
||||
|
||||
Bezier: require('./BezierInterpolation'),
|
||||
CatmullRom: require('./CatmullRomInterpolation'),
|
||||
Linear: require('./LinearInterpolation')
|
||||
|
||||
};
|
|
@ -1,6 +1,6 @@
|
|||
// Takes value and returns the nearest power of 2
|
||||
|
||||
var GetPowerOfTwo (value)
|
||||
var GetPowerOfTwo = function (value)
|
||||
{
|
||||
// Math.log(2)
|
||||
var index = Math.log(value) / 0.6931471805599453;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Is value a power of 2?
|
||||
|
||||
var IsValuePowerOfTwo (value)
|
||||
var IsValuePowerOfTwo = function (value)
|
||||
{
|
||||
return (value > 0 && (value & (value - 1)) === 0);
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
module.export = {
|
||||
|
||||
GetNext: require('./GetPowerOfTwo'),
|
||||
IsValue: require('./IsValuePowerOfTwo'),
|
||||
IsSize: require('./IsSizePowerOfTwo')
|
||||
IsSize: require('./IsSizePowerOfTwo'),
|
||||
IsValue: require('./IsValuePowerOfTwo')
|
||||
|
||||
};
|
||||
|
|
|
@ -1,7 +1,37 @@
|
|||
require('./polyfills');
|
||||
|
||||
var boot = require('./boot');
|
||||
// This object is exported globally
|
||||
|
||||
module.exports = boot;
|
||||
var Phaser = {
|
||||
|
||||
global.Phaser = boot;
|
||||
Game: require('./boot/Game'),
|
||||
|
||||
Event: require('./events/Event'),
|
||||
EventDispatcher: require('./events/EventDispatcher'),
|
||||
|
||||
Math: require('./math'),
|
||||
|
||||
GameObjects: {
|
||||
|
||||
Factory: require('./gameobjects/FactoryContainer'),
|
||||
|
||||
},
|
||||
|
||||
Loader: {
|
||||
|
||||
ImageFile: require('./loader/filetypes/ImageFile')
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// Required, but don't need Phaser level exports
|
||||
|
||||
require('./gameobjects/image/ImageFactory');
|
||||
require('./gameobjects/container/ContainerFactory');
|
||||
|
||||
// Export it
|
||||
|
||||
module.exports = Phaser;
|
||||
|
||||
global.Phaser = Phaser;
|
||||
|
|
|
@ -31,17 +31,18 @@ Map.prototype = {
|
|||
{
|
||||
this.entries[key] = value;
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
delete: function (value)
|
||||
delete: function (key)
|
||||
{
|
||||
var index = this.entries.indexOf(value);
|
||||
|
||||
if (index > -1)
|
||||
if (this.entries.hasOwnProperty(key))
|
||||
{
|
||||
this.entries.splice(index, 1);
|
||||
delete this.entries[key];
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
keys: function ()
|
||||
|
|
4
v3/src/structs/index.js
Normal file
4
v3/src/structs/index.js
Normal file
|
@ -0,0 +1,4 @@
|
|||
module.exports = {
|
||||
Set: require('./Set'),
|
||||
Map: require('./Map')
|
||||
};
|
|
@ -17,13 +17,9 @@ var Texture = require('./Texture');
|
|||
*
|
||||
* @class Phaser.TextureManager
|
||||
* @constructor
|
||||
* @param {Phaser.Game} game
|
||||
*/
|
||||
var TextureManager = function (game)
|
||||
var TextureManager = function ()
|
||||
{
|
||||
// Required? Remove if not
|
||||
this.game = game;
|
||||
|
||||
this.list = {};
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue