mirror of
https://github.com/photonstorm/phaser
synced 2024-11-16 09:48:18 +00:00
The BitmapMask now registers itself with the Game Object Factory. This means you can do this.add.bitmapMask()
from within a Scene, for easier creation.
This commit is contained in:
parent
739b8c5b94
commit
8bfc0b2eee
1 changed files with 46 additions and 0 deletions
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var Class = require('../../utils/Class');
|
var Class = require('../../utils/Class');
|
||||||
|
var GameObjectFactory = require('../../gameobjects/GameObjectFactory');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
|
@ -187,4 +188,49 @@ var BitmapMask = new Class({
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Bitmap Mask combines the alpha (opacity) of a masked pixel with the alpha of another pixel.
|
||||||
|
* Unlike the Geometry Mask, which is a clipping path, a Bitmap Mask behaves like an alpha mask,
|
||||||
|
* not a clipping path. It is only available when using the WebGL Renderer.
|
||||||
|
*
|
||||||
|
* A Bitmap Mask can use any Game Object to determine the alpha of each pixel of the masked Game Object(s).
|
||||||
|
* For any given point of a masked Game Object's texture, the pixel's alpha will be multiplied by the alpha
|
||||||
|
* of the pixel at the same position in the Bitmap Mask's Game Object. The color of the pixel from the
|
||||||
|
* Bitmap Mask doesn't matter.
|
||||||
|
*
|
||||||
|
* For example, if a pure blue pixel with an alpha of 0.95 is masked with a pure red pixel with an
|
||||||
|
* alpha of 0.5, the resulting pixel will be pure blue with an alpha of 0.475. Naturally, this means
|
||||||
|
* that a pixel in the mask with an alpha of 0 will hide the corresponding pixel in all masked Game Objects
|
||||||
|
* A pixel with an alpha of 1 in the masked Game Object will receive the same alpha as the
|
||||||
|
* corresponding pixel in the mask.
|
||||||
|
*
|
||||||
|
* Note: You cannot combine Bitmap Masks and Blend Modes on the same Game Object. You can, however,
|
||||||
|
* combine Geometry Masks and Blend Modes together.
|
||||||
|
*
|
||||||
|
* The Bitmap Mask's location matches the location of its Game Object, not the location of the
|
||||||
|
* masked objects. Moving or transforming the underlying Game Object will change the mask
|
||||||
|
* (and affect the visibility of any masked objects), whereas moving or transforming a masked object
|
||||||
|
* will not affect the mask.
|
||||||
|
*
|
||||||
|
* The Bitmap Mask will not render its Game Object by itself. If the Game Object is not in a
|
||||||
|
* Scene's display list, it will only be used for the mask and its full texture will not be directly
|
||||||
|
* visible. Adding the underlying Game Object to a Scene will not cause any problems - it will
|
||||||
|
* render as a normal Game Object and will also serve as a mask.
|
||||||
|
*
|
||||||
|
* @method Phaser.GameObjects.GameObjectFactory#bitmapMask
|
||||||
|
* @since 3.60.0
|
||||||
|
*
|
||||||
|
* @param {Phaser.GameObjects.GameObject} [maskObject] - The Game Object that will be used as the mask. If `null` it will generate an Image Game Object using the rest of the arguments.
|
||||||
|
* @param {number} [x] - If creating a Game Object, the horizontal position in the world.
|
||||||
|
* @param {number} [y] - If creating a Game Object, the vertical position in the world.
|
||||||
|
* @param {(string|Phaser.Textures.Texture)} [texture] - If creating a Game Object, the key, or instance of the Texture it will use to render with, as stored in the Texture Manager.
|
||||||
|
* @param {(string|number|Phaser.Textures.Frame)} [frame] - If creating a Game Object, an optional frame from the Texture this Game Object is rendering with.
|
||||||
|
*
|
||||||
|
* @return {Phaser.Display.Masks.BitmapMask} The Bitmap Mask that was created.
|
||||||
|
*/
|
||||||
|
GameObjectFactory.register('bitmapMask', function (maskObject, x, y, key, frame)
|
||||||
|
{
|
||||||
|
return new BitmapMask(this.scene, maskObject, x, y, key, frame);
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = BitmapMask;
|
module.exports = BitmapMask;
|
||||||
|
|
Loading…
Reference in a new issue