phaser/src/input/CreatePixelPerfectHandler.js
James Simpson e4ccc8ec2d
Use correct frame name in pixel perfect hit test
`gameObject.frame.key` doesn't exist and was passing an undefined value to `getPixelAlpha`. This just changes it to the correct `gameObject.frame.name` value.
2018-08-16 12:23:10 -05:00

30 lines
1 KiB
JavaScript

/**
* @author Richard Davey <rich@photonstorm.com>
* @copyright 2018 Photon Storm Ltd.
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
/**
* Creates a new Pixel Perfect Handler function.
*
* Access via `InputPlugin.makePixelPerfect` rather than calling it directly.
*
* @function Phaser.Input.CreatePixelPerfectHandler
* @since 3.10.0
*
* @param {Phaser.Textures.TextureManager} textureManager - A reference to the Texture Manager.
* @param {integer} alphaTolerance - The alpha level that the pixel should be above to be included as a successful interaction.
*
* @return {function} The new Pixel Perfect Handler function.
*/
var CreatePixelPerfectHandler = function (textureManager, alphaTolerance)
{
return function (hitArea, x, y, gameObject)
{
var alpha = textureManager.getPixelAlpha(x, y, gameObject.texture.key, gameObject.frame.name);
return (alpha && alpha >= alphaTolerance);
};
};
module.exports = CreatePixelPerfectHandler;