mirror of
https://github.com/photonstorm/phaser
synced 2024-11-22 04:33:31 +00:00
Added Impact Events.
This commit is contained in:
parent
5494f6ac79
commit
d41286bd4f
7 changed files with 79 additions and 4 deletions
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
var COLLIDES = require('./COLLIDES');
|
||||
var Events = require('./events');
|
||||
var SeperateX = require('./SeperateX');
|
||||
var SeperateY = require('./SeperateY');
|
||||
|
||||
|
@ -12,6 +13,7 @@ var SeperateY = require('./SeperateY');
|
|||
* Impact Physics Solver
|
||||
*
|
||||
* @function Phaser.Physics.Impact.Solver
|
||||
* @fires Phaser.Physics.Impact.Events#COLLIDE
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.World} world - The Impact simulation to run the solver in.
|
||||
|
@ -45,7 +47,7 @@ var Solver = function (world, bodyA, bodyB)
|
|||
bodyA.collideWith(bodyB, 'y');
|
||||
bodyB.collideWith(bodyA, 'y');
|
||||
|
||||
world.emit('collide', bodyA, bodyB, 'y');
|
||||
world.emit(Events.COLLIDE, bodyA, bodyB, 'y');
|
||||
}
|
||||
else if (bodyA.last.y + bodyA.size.y > bodyB.last.y && bodyA.last.y < bodyB.last.y + bodyB.size.y)
|
||||
{
|
||||
|
@ -61,7 +63,7 @@ var Solver = function (world, bodyA, bodyB)
|
|||
bodyA.collideWith(bodyB, 'x');
|
||||
bodyB.collideWith(bodyA, 'x');
|
||||
|
||||
world.emit('collide', bodyA, bodyB, 'x');
|
||||
world.emit(Events.COLLIDE, bodyA, bodyB, 'x');
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ var Class = require('../../utils/Class');
|
|||
var COLLIDES = require('./COLLIDES');
|
||||
var CollisionMap = require('./CollisionMap');
|
||||
var EventEmitter = require('eventemitter3');
|
||||
var Events = require('./events');
|
||||
var GetFastValue = require('../../utils/object/GetFastValue');
|
||||
var HasValue = require('../../utils/object/HasValue');
|
||||
var Set = require('../../structs/Set');
|
||||
|
@ -556,6 +557,7 @@ var World = new Class({
|
|||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#pause
|
||||
* @fires Phaser.Physics.Impact.Events#PAUSE
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
|
@ -564,7 +566,7 @@ var World = new Class({
|
|||
{
|
||||
this.enabled = false;
|
||||
|
||||
this.emit('pause');
|
||||
this.emit(Events.PAUSE);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
@ -573,6 +575,7 @@ var World = new Class({
|
|||
* [description]
|
||||
*
|
||||
* @method Phaser.Physics.Impact.World#resume
|
||||
* @fires Phaser.Physics.Impact.Events#RESUME
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return {Phaser.Physics.Impact.World} This World object.
|
||||
|
@ -581,7 +584,7 @@ var World = new Class({
|
|||
{
|
||||
this.enabled = true;
|
||||
|
||||
this.emit('resume');
|
||||
this.emit(Events.RESUME);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
|
20
src/physics/impact/events/COLLIDE_EVENT.js
Normal file
20
src/physics/impact/events/COLLIDE_EVENT.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2019 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Impact Physics World Collide Event.
|
||||
*
|
||||
* This event is dispatched by an Impact Physics World instance if two bodies collide.
|
||||
*
|
||||
* Listen to it from a Scene using: `this.impact.world.on('collide', listener)`.
|
||||
*
|
||||
* @event Phaser.Physics.Impact.Events#COLLIDE
|
||||
*
|
||||
* @param {Phaser.Physics.Impact.Body} bodyA - The first body involved in the collision.
|
||||
* @param {Phaser.Physics.Impact.Body} bodyB - The second body involved in the collision.
|
||||
* @param {string} axis - The collision axis. Either `x` or `y`.
|
||||
*/
|
||||
module.exports = 'collide';
|
16
src/physics/impact/events/PAUSE_EVENT.js
Normal file
16
src/physics/impact/events/PAUSE_EVENT.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2019 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Impact Physics World Pause Event.
|
||||
*
|
||||
* This event is dispatched by an Impact Physics World instance when it is paused.
|
||||
*
|
||||
* Listen to it from a Scene using: `this.impact.world.on('pause', listener)`.
|
||||
*
|
||||
* @event Phaser.Physics.Impact.Events#PAUSE
|
||||
*/
|
||||
module.exports = 'pause';
|
16
src/physics/impact/events/RESUME_EVENT.js
Normal file
16
src/physics/impact/events/RESUME_EVENT.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2019 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Impact Physics World Resume Event.
|
||||
*
|
||||
* This event is dispatched by an Impact Physics World instance when it resumes from a paused state.
|
||||
*
|
||||
* Listen to it from a Scene using: `this.impact.world.on('resume', listener)`.
|
||||
*
|
||||
* @event Phaser.Physics.Impact.Events#RESUME
|
||||
*/
|
||||
module.exports = 'resume';
|
17
src/physics/impact/events/index.js
Normal file
17
src/physics/impact/events/index.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2019 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @namespace Phaser.Physics.Impact.Events
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
|
||||
COLLIDE: require('./COLLIDE_EVENT'),
|
||||
PAUSE: require('./PAUSE_EVENT'),
|
||||
RESUME: require('./RESUME_EVENT')
|
||||
|
||||
};
|
|
@ -22,6 +22,7 @@
|
|||
module.exports = {
|
||||
|
||||
Body: require('./Body'),
|
||||
Events: require('./events'),
|
||||
COLLIDES: require('./COLLIDES'),
|
||||
CollisionMap: require('./CollisionMap'),
|
||||
Factory: require('./Factory'),
|
||||
|
|
Loading…
Reference in a new issue