mirror of
https://github.com/photonstorm/phaser
synced 2025-02-24 19:37:15 +00:00
InputManager.resetLocked - If the Input Manager has been reset locked then all calls made to InputManager.reset, such as from a State change, are ignored.
Keyboard.reset has a new `hard` parameter which controls the severity of the reset. A soft reset doesn't remove any callbacks or event listeners. Key.reset has a new `hard` parameter which controls the severity of the reset. A soft reset doesn't remove any callbacks or event listeners.
This commit is contained in:
parent
055cb8058d
commit
a7f6165e39
4 changed files with 36 additions and 13 deletions
|
@ -61,6 +61,7 @@ Version 2.0.4 - "Mos Shirare" - in development
|
||||||
|
|
||||||
* TypeScript definitions fixes and updates (thanks @clark-stevenson)
|
* TypeScript definitions fixes and updates (thanks @clark-stevenson)
|
||||||
* Timer has removed all use of local temporary vars in the core update loop.
|
* Timer has removed all use of local temporary vars in the core update loop.
|
||||||
|
* The Input.reset `hard` reset parameter is now passed down to the Keyboard and Key reset methods.
|
||||||
|
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
@ -68,6 +69,10 @@ Version 2.0.4 - "Mos Shirare" - in development
|
||||||
* Loader now has an onFileStart event you can listen for (thanks @codevinsky, #705)
|
* Loader now has an onFileStart event you can listen for (thanks @codevinsky, #705)
|
||||||
* Timer.clearPendingEvents will purge any events marked for deletion, this is run automatically at the start of the update loop.
|
* Timer.clearPendingEvents will purge any events marked for deletion, this is run automatically at the start of the update loop.
|
||||||
* Device.crosswalk detects if your game is running under Intels Crosswalk XDK.
|
* Device.crosswalk detects if your game is running under Intels Crosswalk XDK.
|
||||||
|
* Keyboard.reset has a new `hard` parameter which controls the severity of the reset. A soft reset doesn't remove any callbacks or event listeners.
|
||||||
|
* Key.reset has a new `hard` parameter which controls the severity of the reset. A soft reset doesn't remove any callbacks or event listeners.
|
||||||
|
* InputManager.resetLocked - If the Input Manager has been reset locked then all calls made to InputManager.reset, such as from a State change, are ignored.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
|
@ -241,6 +241,12 @@ Phaser.Input = function (game) {
|
||||||
*/
|
*/
|
||||||
// this.gestures = null;
|
// this.gestures = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @property {boolean} resetLocked - If the Input Manager has been reset locked then all calls made to InputManager.reset, such as from a State change, are ignored.
|
||||||
|
* @default
|
||||||
|
*/
|
||||||
|
this.resetLocked = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property {Phaser.Signal} onDown - A Signal that is dispatched each time a pointer is pressed down.
|
* @property {Phaser.Signal} onDown - A Signal that is dispatched each time a pointer is pressed down.
|
||||||
*/
|
*/
|
||||||
|
@ -470,20 +476,23 @@ Phaser.Input.prototype = {
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset all of the Pointers and Input states
|
* Reset all of the Pointers and Input states. The optional `hard` parameter will reset any events or callbacks that may be bound.
|
||||||
|
* Input.reset is called automatically during a State change or if a game loses focus / visibility. If you wish to control the reset
|
||||||
|
* directly yourself then set InputManager.resetLocked to `true`.
|
||||||
|
*
|
||||||
* @method Phaser.Input#reset
|
* @method Phaser.Input#reset
|
||||||
* @param {boolean} hard - A soft reset (hard = false) won't reset any Signals that might be bound. A hard reset will.
|
* @param {boolean} [hard=false] - A soft reset won't reset any events or callbacks that are bound. A hard reset will.
|
||||||
*/
|
*/
|
||||||
reset: function (hard) {
|
reset: function (hard) {
|
||||||
|
|
||||||
if (this.game.isBooted === false)
|
if (!this.game.isBooted || this.resetLocked)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof hard == 'undefined') { hard = false; }
|
if (typeof hard === 'undefined') { hard = false; }
|
||||||
|
|
||||||
this.keyboard.reset();
|
this.keyboard.reset(hard);
|
||||||
this.mousePointer.reset();
|
this.mousePointer.reset();
|
||||||
this.gamepad.reset();
|
this.gamepad.reset();
|
||||||
|
|
||||||
|
@ -502,7 +511,7 @@ Phaser.Input.prototype = {
|
||||||
this.game.canvas.style.cursor = 'inherit';
|
this.game.canvas.style.cursor = 'inherit';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hard === true)
|
if (hard)
|
||||||
{
|
{
|
||||||
this.onDown.dispose();
|
this.onDown.dispose();
|
||||||
this.onUp.dispose();
|
this.onUp.dispose();
|
||||||
|
|
|
@ -193,8 +193,11 @@ Phaser.Key.prototype = {
|
||||||
* associated with the onDown and onUp events and nulls the onHoldCallback if set.
|
* associated with the onDown and onUp events and nulls the onHoldCallback if set.
|
||||||
*
|
*
|
||||||
* @method Phaser.Key#reset
|
* @method Phaser.Key#reset
|
||||||
|
* @param {boolean} [hard=true] - A soft reset won't reset any events or callbacks that are bound to this Key. A hard reset will.
|
||||||
*/
|
*/
|
||||||
reset: function () {
|
reset: function (hard) {
|
||||||
|
|
||||||
|
if (typeof hard === 'undefined') { hard = true; }
|
||||||
|
|
||||||
this.isDown = false;
|
this.isDown = false;
|
||||||
this.isUp = true;
|
this.isUp = true;
|
||||||
|
@ -202,10 +205,13 @@ Phaser.Key.prototype = {
|
||||||
this.duration = this.game.time.now - this.timeDown;
|
this.duration = this.game.time.now - this.timeDown;
|
||||||
this.enabled = true;
|
this.enabled = true;
|
||||||
|
|
||||||
|
if (hard)
|
||||||
|
{
|
||||||
this.onDown.removeAll();
|
this.onDown.removeAll();
|
||||||
this.onUp.removeAll();
|
this.onUp.removeAll();
|
||||||
this.onHoldCallback = null;
|
this.onHoldCallback = null;
|
||||||
this.onHoldContext = null;
|
this.onHoldContext = null;
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -358,8 +358,11 @@ Phaser.Keyboard.prototype = {
|
||||||
* Resets all Keys.
|
* Resets all Keys.
|
||||||
*
|
*
|
||||||
* @method Phaser.Keyboard#reset
|
* @method Phaser.Keyboard#reset
|
||||||
|
* @param {boolean} [hard=true] - A soft reset won't reset any events or callbacks that are bound to the Keys. A hard reset will.
|
||||||
*/
|
*/
|
||||||
reset: function () {
|
reset: function (hard) {
|
||||||
|
|
||||||
|
if (typeof hard === 'undefined') { hard = true; }
|
||||||
|
|
||||||
this.event = null;
|
this.event = null;
|
||||||
|
|
||||||
|
@ -369,7 +372,7 @@ Phaser.Keyboard.prototype = {
|
||||||
{
|
{
|
||||||
if (this._keys[i])
|
if (this._keys[i])
|
||||||
{
|
{
|
||||||
this._keys[i].reset();
|
this._keys[i].reset(hard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue