Files
phaser/src/physics/InversePointProxy.js
T
photonstorm 3d0b5bde75 Updated World vastly. No longer extends p2.World due to a few vars we can't alias cleanly, adds in lots of new helper methods.
Ready for Materials and Constraints.
InversePointProxy is for aliasing a p2 typed array when the values need reversing before applying (gravity for example).
2014-02-18 15:16:26 +00:00

62 lines
1.4 KiB
JavaScript

/**
* @author Richard Davey <rich@photonstorm.com>
* @copyright 2014 Photon Storm Ltd.
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
/**
* A InversePointProxy is an internal class that allows for direct getter/setter style property access to Arrays and TypedArrays but inverses the values on set.
*
* @class Phaser.Physics.InversePointProxy
* @classdesc InversePointProxy
* @constructor
* @param {any} destination - The object to bind to.
*/
Phaser.Physics.InversePointProxy = function (destination) {
this.destination = destination;
};
Phaser.Physics.InversePointProxy.prototype.constructor = Phaser.Physics.InversePointProxy;
/**
* @name Phaser.Physics.InversePointProxy#x
* @property {number} x - The x property of this InversePointProxy.
*/
Object.defineProperty(Phaser.Physics.InversePointProxy.prototype, "x", {
get: function () {
return this.destination[0];
},
set: function (value) {
this.destination[0] *= -value;
}
});
/**
* @name Phaser.Physics.InversePointProxy#y
* @property {number} y - The y property of this InversePointProxy.
*/
Object.defineProperty(Phaser.Physics.InversePointProxy.prototype, "y", {
get: function () {
return this.destination[1];
},
set: function (value) {
this.destination[1] *= -value;
}
});