2018-02-12 16:01:20 +00:00
|
|
|
/**
|
|
|
|
* @author Richard Davey <rich@photonstorm.com>
|
2020-01-15 12:07:09 +00:00
|
|
|
* @copyright 2020 Photon Storm Ltd.
|
2019-05-10 15:15:04 +00:00
|
|
|
* @license {@link https://opensource.org/licenses/MIT|MIT License}
|
2018-02-12 16:01:20 +00:00
|
|
|
*/
|
|
|
|
|
2017-08-15 23:30:12 +00:00
|
|
|
var Class = require('../../utils/Class');
|
2017-08-21 18:16:19 +00:00
|
|
|
var Components = require('./components');
|
2017-08-15 23:30:12 +00:00
|
|
|
|
2018-02-09 16:04:43 +00:00
|
|
|
/**
|
|
|
|
* @classdesc
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @class ImpactBody
|
2018-10-10 09:49:13 +00:00
|
|
|
* @memberof Phaser.Physics.Impact
|
2018-02-09 16:04:43 +00:00
|
|
|
* @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]
|
2018-10-19 11:32:43 +00:00
|
|
|
* @param {number} x - x - The horizontal position of this physics body in the world.
|
|
|
|
* @param {number} y - y - The vertical position of this physics body in the world.
|
|
|
|
* @param {number} width - The width of the physics body in the world.
|
2018-02-09 16:04:43 +00:00
|
|
|
* @param {number} height - [description]
|
|
|
|
*/
|
2017-08-15 23:30:12 +00:00
|
|
|
var ImpactBody = new Class({
|
|
|
|
|
|
|
|
Mixins: [
|
|
|
|
Components.Acceleration,
|
2017-08-17 05:00:38 +00:00
|
|
|
Components.BodyScale,
|
2017-08-15 23:30:12 +00:00
|
|
|
Components.BodyType,
|
|
|
|
Components.Bounce,
|
|
|
|
Components.CheckAgainst,
|
|
|
|
Components.Collides,
|
2017-08-16 18:31:59 +00:00
|
|
|
Components.Debug,
|
2017-08-17 02:48:39 +00:00
|
|
|
Components.Friction,
|
2017-08-15 23:30:12 +00:00
|
|
|
Components.Gravity,
|
2017-08-16 21:10:43 +00:00
|
|
|
Components.Offset,
|
2017-08-17 00:21:01 +00:00
|
|
|
Components.SetGameObject,
|
2017-08-15 23:30:12 +00:00
|
|
|
Components.Velocity
|
|
|
|
],
|
|
|
|
|
|
|
|
initialize:
|
|
|
|
|
|
|
|
function ImpactBody (world, x, y, width, height)
|
|
|
|
{
|
2018-02-09 16:04:43 +00:00
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#body
|
|
|
|
* @type {Phaser.Physics.Impact.Body}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-15 23:30:12 +00:00
|
|
|
this.body = world.create(x, y, width, height);
|
|
|
|
|
2017-08-17 01:32:08 +00:00
|
|
|
this.body.parent = this;
|
|
|
|
|
2018-02-09 16:04:43 +00:00
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#size
|
|
|
|
* @type {{x: number, y: number}}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-16 16:27:15 +00:00
|
|
|
this.size = this.body.size;
|
2018-02-09 16:04:43 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#offset
|
|
|
|
* @type {{x: number, y: number}}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-16 18:31:59 +00:00
|
|
|
this.offset = this.body.offset;
|
2018-02-09 16:04:43 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#vel
|
|
|
|
* @type {{x: number, y: number}}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-15 23:30:12 +00:00
|
|
|
this.vel = this.body.vel;
|
2018-02-09 16:04:43 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#accel
|
|
|
|
* @type {{x: number, y: number}}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-15 23:30:12 +00:00
|
|
|
this.accel = this.body.accel;
|
2018-02-09 16:04:43 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#friction
|
|
|
|
* @type {{x: number, y: number}}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-15 23:30:12 +00:00
|
|
|
this.friction = this.body.friction;
|
2018-02-09 16:04:43 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* [description]
|
|
|
|
*
|
|
|
|
* @name Phaser.Physics.Impact.ImpactBody#maxVel
|
|
|
|
* @type {{x: number, y: number}}
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2017-08-15 23:30:12 +00:00
|
|
|
this.maxVel = this.body.maxVel;
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = ImpactBody;
|