mirror of
https://github.com/photonstorm/phaser
synced 2024-11-25 06:00:41 +00:00
v3.86.0 release
This commit is contained in:
parent
c3581595c7
commit
f1c4b0fef2
12 changed files with 302605 additions and 302311 deletions
|
@ -6,6 +6,7 @@ Please select a version to read that specific change log:
|
||||||
|
|
||||||
| Version | Name | Release Date |
|
| Version | Name | Release Date |
|
||||||
| ------- | ---- | ------------ |
|
| ------- | ---- | ------------ |
|
||||||
|
| [3.86](changelog/3.86/CHANGELOG-v3.80.md) | Aoi | 11th October 2024 |
|
||||||
| [3.85.2](changelog/3.85.2/CHANGELOG-v3.85.2.md) | Itsuki | 17th September 2024 |
|
| [3.85.2](changelog/3.85.2/CHANGELOG-v3.85.2.md) | Itsuki | 17th September 2024 |
|
||||||
| [3.85.0](changelog/3.85/CHANGELOG-v3.85.md) | Itsuki | 5th September 2024 |
|
| [3.85.0](changelog/3.85/CHANGELOG-v3.85.md) | Itsuki | 5th September 2024 |
|
||||||
| [3.80.1](changelog/3.80.1/CHANGELOG-v3.80.1.md) | Nino | 27th February 2024 |
|
| [3.80.1](changelog/3.80.1/CHANGELOG-v3.80.1.md) | Nino | 27th February 2024 |
|
||||||
|
|
16
README.md
16
README.md
|
@ -57,15 +57,15 @@ npm install phaser
|
||||||
[Phaser is on jsDelivr](https://www.jsdelivr.com/package/npm/phaser) which is a "super-fast CDN for developers". Include _either_ of the following in your html:
|
[Phaser is on jsDelivr](https://www.jsdelivr.com/package/npm/phaser) which is a "super-fast CDN for developers". Include _either_ of the following in your html:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="//cdn.jsdelivr.net/npm/phaser@3.85.2/dist/phaser.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/phaser@3.86.0/dist/phaser.js"></script>
|
||||||
<script src="//cdn.jsdelivr.net/npm/phaser@3.85.2/dist/phaser.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/phaser@3.86.0/dist/phaser.min.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
It is also available from Cloudflare's [cdnjs](https://cdnjs.com/libraries/phaser):
|
It is also available from Cloudflare's [cdnjs](https://cdnjs.com/libraries/phaser):
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/3.85.2/phaser.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/3.86.0/phaser.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/3.85.2/phaser.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/3.86.0/phaser.min.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Phaser TypeScript Definitions
|
## Phaser TypeScript Definitions
|
||||||
|
@ -115,7 +115,7 @@ Register for a free Phaser account to [download the book](https://phaser.io/news
|
||||||
|
|
||||||
We have created hundreds of examples and they are all available with full source code and assets.
|
We have created hundreds of examples and they are all available with full source code and assets.
|
||||||
|
|
||||||
Browse the examples on the [Phaser 3 Labs](https://labs.phaser.io)
|
Browse our brand new [Phaser Examples site](https://phaser.io/examples).
|
||||||
|
|
||||||
## Phaser 3 Plugins
|
## Phaser 3 Plugins
|
||||||
|
|
||||||
|
@ -137,8 +137,8 @@ Read more about [Phaser Compressor](https://phaser.io/news/2024/05/phaser-compre
|
||||||
|
|
||||||
We meticulously keep track of new features, updates and bug fixes in our change logs. Each version of Phaser has its own change log:
|
We meticulously keep track of new features, updates and bug fixes in our change logs. Each version of Phaser has its own change log:
|
||||||
|
|
||||||
* [v3.85.2 Change Log](changelog/3.85.2/CHANGELOG-v3.85.2.md)
|
* [v3.86 Change Log](changelog/3.86/CHANGELOG-v3.86.md)
|
||||||
* [v3.0.0 to v3.85.0 Change Logs](CHANGELOG.md)
|
* [v3.0.0 to v3.85.2 Change Logs](CHANGELOG.md)
|
||||||
|
|
||||||
## Have fun!
|
## Have fun!
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ Cheers,
|
||||||
**Play** some [amazing games](https://phaser.io/games)<br />
|
**Play** some [amazing games](https://phaser.io/games)<br />
|
||||||
**Learn** By browsing our [API Docs](https://newdocs.phaser.io), [Support Forum](https://phaser.discourse.group/) and [StackOverflow](https://stackoverflow.com/questions/tagged/phaser-framework)<br />
|
**Learn** By browsing our [API Docs](https://newdocs.phaser.io), [Support Forum](https://phaser.discourse.group/) and [StackOverflow](https://stackoverflow.com/questions/tagged/phaser-framework)<br />
|
||||||
**Code Examples?** We've over 2000 [Examples](https://phaser.io/examples) to learn from<br />
|
**Code Examples?** We've over 2000 [Examples](https://phaser.io/examples) to learn from<br />
|
||||||
**Read** the weekly [Phaser World](https://phaser.io/newsletter/2024) Newsletter<br />
|
**Read** the weekly [Phaser World](https://phaser.world) Newsletter<br />
|
||||||
**Be Social:** Join us on [Discord](https://discord.gg/phaser) and [Reddit](https://phaser.io/community/reddit) or follow us on [Twitter](https://twitter.com/phaser_)<br />
|
**Be Social:** Join us on [Discord](https://discord.gg/phaser) and [Reddit](https://phaser.io/community/reddit) or follow us on [Twitter](https://twitter.com/phaser_)<br />
|
||||||
|
|
||||||
Powered by coffee, anime, pixels and love.
|
Powered by coffee, anime, pixels and love.
|
||||||
|
|
188
dist/phaser-arcade-physics.js
vendored
188
dist/phaser-arcade-physics.js
vendored
|
@ -8863,6 +8863,22 @@ var BaseCamera = new Class({
|
||||||
* @since 3.60.0
|
* @since 3.60.0
|
||||||
*/
|
*/
|
||||||
this.isSceneCamera = true;
|
this.isSceneCamera = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can this Camera render rounded pixel values?
|
||||||
|
*
|
||||||
|
* This property is updated during the `preRender` method and should not be
|
||||||
|
* set directly. It is set based on the `roundPixels` property of the Camera
|
||||||
|
* combined with the zoom level. If the zoom is an integer then the WebGL
|
||||||
|
* Renderer can apply rounding during rendering.
|
||||||
|
*
|
||||||
|
* @name Phaser.Cameras.Scene2D.BaseCamera#renderRoundPixels
|
||||||
|
* @type {boolean}
|
||||||
|
* @readonly
|
||||||
|
* @default true
|
||||||
|
* @since 3.86.0
|
||||||
|
*/
|
||||||
|
this.renderRoundPixels = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10799,6 +10815,8 @@ var Camera = new Class({
|
||||||
var zoomY = this.zoomY;
|
var zoomY = this.zoomY;
|
||||||
var matrix = this.matrix;
|
var matrix = this.matrix;
|
||||||
|
|
||||||
|
this.renderRoundPixels = (this.roundPixels && Number.isInteger(zoomX) && Number.isInteger(zoomY));
|
||||||
|
|
||||||
var originX = width * this.originX;
|
var originX = width * this.originX;
|
||||||
var originY = height * this.originY;
|
var originY = height * this.originY;
|
||||||
|
|
||||||
|
@ -10887,7 +10905,8 @@ var Camera = new Class({
|
||||||
Math.floor(this.x + originX + 0.5),
|
Math.floor(this.x + originX + 0.5),
|
||||||
Math.floor(this.y + originY + 0.5),
|
Math.floor(this.y + originY + 0.5),
|
||||||
this.rotation,
|
this.rotation,
|
||||||
zoomX, zoomY);
|
zoomX, zoomY
|
||||||
|
);
|
||||||
|
|
||||||
matrix.translate(-originX, -originY);
|
matrix.translate(-originX, -originY);
|
||||||
|
|
||||||
|
@ -15645,7 +15664,7 @@ var CONST = {
|
||||||
* @type {string}
|
* @type {string}
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
VERSION: '3.85.2',
|
VERSION: '3.86.0',
|
||||||
|
|
||||||
BlendModes: __webpack_require__(10312),
|
BlendModes: __webpack_require__(10312),
|
||||||
|
|
||||||
|
@ -47643,6 +47662,8 @@ var Render = __webpack_require__(29959);
|
||||||
var Union = __webpack_require__(36899);
|
var Union = __webpack_require__(36899);
|
||||||
var Vector2 = __webpack_require__(26099);
|
var Vector2 = __webpack_require__(26099);
|
||||||
|
|
||||||
|
var tempTransformMatrix = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
* A Container Game Object.
|
* A Container Game Object.
|
||||||
|
@ -47787,16 +47808,6 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
this.localTransform = new Components.TransformMatrix();
|
this.localTransform = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal temporary Transform Matrix used to avoid object creation.
|
|
||||||
*
|
|
||||||
* @name Phaser.GameObjects.Container#tempTransformMatrix
|
|
||||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
|
||||||
* @private
|
|
||||||
* @since 3.4.0
|
|
||||||
*/
|
|
||||||
this.tempTransformMatrix = new Components.TransformMatrix();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The property key to sort by.
|
* The property key to sort by.
|
||||||
*
|
*
|
||||||
|
@ -48131,7 +48142,7 @@ var Container = new Class({
|
||||||
output.y = source.y;
|
output.y = source.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tempMatrix = this.tempTransformMatrix;
|
var tempMatrix = tempTransformMatrix;
|
||||||
|
|
||||||
// No need to loadIdentity because applyITRS overwrites every value anyway
|
// No need to loadIdentity because applyITRS overwrites every value anyway
|
||||||
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
||||||
|
@ -48155,7 +48166,7 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
getBoundsTransformMatrix: function ()
|
getBoundsTransformMatrix: function ()
|
||||||
{
|
{
|
||||||
return this.getWorldTransformMatrix(this.tempTransformMatrix, this.localTransform);
|
return this.getWorldTransformMatrix(tempTransformMatrix, this.localTransform);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49078,7 +49089,6 @@ var Container = new Class({
|
||||||
this.removeAll(!!this.exclusive);
|
this.removeAll(!!this.exclusive);
|
||||||
|
|
||||||
this.localTransform.destroy();
|
this.localTransform.destroy();
|
||||||
this.tempTransformMatrix.destroy();
|
|
||||||
|
|
||||||
this.list = [];
|
this.list = [];
|
||||||
},
|
},
|
||||||
|
@ -55043,7 +55053,7 @@ var Group = new Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link Phaser.GameObjects.Components.Animation#play Plays} an animation for all members of this group.
|
* {@link Phaser.Animations.AnimationState#play Plays} an animation for all members of this group.
|
||||||
*
|
*
|
||||||
* @method Phaser.GameObjects.Group#playAnimation
|
* @method Phaser.GameObjects.Group#playAnimation
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -65546,7 +65556,7 @@ var ParticleEmitter = new Class({
|
||||||
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
||||||
*
|
*
|
||||||
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
||||||
* Its {@link RandomZoneSource source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
* Its {@link Phaser.GameObjects.Particles.Zones.RandomZone#source source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
||||||
*
|
*
|
||||||
* An Emission Zone can only exist once within this Emitter.
|
* An Emission Zone can only exist once within this Emitter.
|
||||||
*
|
*
|
||||||
|
@ -81098,16 +81108,29 @@ var GetTextSize = function (text, size, lines)
|
||||||
style.syncFont(canvas, context);
|
style.syncFont(canvas, context);
|
||||||
|
|
||||||
// Text Width
|
// Text Width
|
||||||
|
var letterSpacing = text.letterSpacing;
|
||||||
|
|
||||||
for (var i = 0; i < drawnLines; i++)
|
for (var i = 0; i < drawnLines; i++)
|
||||||
{
|
{
|
||||||
var lineWidth = style.strokeThickness;
|
var lineWidth = style.strokeThickness;
|
||||||
|
|
||||||
lineWidth += context.measureText(lines[i]).width;
|
if (letterSpacing === 0)
|
||||||
|
|
||||||
if (lines[i].length > 1)
|
|
||||||
{
|
{
|
||||||
lineWidth += text.letterSpacing * (lines[i].length - 1);
|
lineWidth += context.measureText(lines[i]).width;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
|
||||||
|
for (var j = 0; j < line.length; j++)
|
||||||
|
{
|
||||||
|
lineWidth += context.measureText(line[j]).width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line.length > 1)
|
||||||
|
{
|
||||||
|
lineWidth += letterSpacing * (line.length - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust for wrapped text
|
// Adjust for wrapped text
|
||||||
|
@ -118323,7 +118346,7 @@ File.createObjectURL = function (image, blob, defaultType)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static method for releasing an existing object URL which was previously created
|
* Static method for releasing an existing object URL which was previously created
|
||||||
* by calling {@link File#createObjectURL} method.
|
* by calling {@link Phaser.Loader.File.createObjectURL} method.
|
||||||
*
|
*
|
||||||
* @method Phaser.Loader.File.revokeObjectURL
|
* @method Phaser.Loader.File.revokeObjectURL
|
||||||
* @static
|
* @static
|
||||||
|
@ -155660,6 +155683,12 @@ var CanvasRenderer = new Class({
|
||||||
var gx = sprite.x;
|
var gx = sprite.x;
|
||||||
var gy = sprite.y;
|
var gy = sprite.y;
|
||||||
|
|
||||||
|
if (camera.roundPixels)
|
||||||
|
{
|
||||||
|
gx = Math.floor(gx);
|
||||||
|
gy = Math.floor(gy);
|
||||||
|
}
|
||||||
|
|
||||||
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
||||||
|
|
||||||
camMatrix.copyFrom(camera.matrix);
|
camMatrix.copyFrom(camera.matrix);
|
||||||
|
@ -155682,10 +155711,10 @@ var CanvasRenderer = new Class({
|
||||||
// Multiply by the Sprite matrix
|
// Multiply by the Sprite matrix
|
||||||
camMatrix.multiply(spriteMatrix);
|
camMatrix.multiply(spriteMatrix);
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.renderRoundPixels)
|
||||||
{
|
{
|
||||||
camMatrix.e = Math.round(camMatrix.e);
|
camMatrix.e = Math.floor(camMatrix.e + 0.5);
|
||||||
camMatrix.f = Math.round(camMatrix.f);
|
camMatrix.f = Math.floor(camMatrix.f + 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.save();
|
ctx.save();
|
||||||
|
@ -155705,27 +155734,25 @@ var CanvasRenderer = new Class({
|
||||||
|
|
||||||
if (frameWidth > 0 && frameHeight > 0)
|
if (frameWidth > 0 && frameHeight > 0)
|
||||||
{
|
{
|
||||||
|
var fw = frameWidth / res;
|
||||||
|
var fh = frameHeight / res;
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.roundPixels)
|
||||||
{
|
{
|
||||||
ctx.drawImage(
|
x = Math.floor(x + 0.5);
|
||||||
frame.source.image,
|
y = Math.floor(y + 0.5);
|
||||||
frameX, frameY,
|
fw += 0.5;
|
||||||
frameWidth, frameHeight,
|
fh += 0.5;
|
||||||
Math.round(x), Math.round(y),
|
|
||||||
Math.round(frameWidth / res), Math.round(frameHeight / res)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
frame.source.image,
|
frame.source.image,
|
||||||
frameX, frameY,
|
frameX, frameY,
|
||||||
frameWidth, frameHeight,
|
frameWidth, frameHeight,
|
||||||
x, y,
|
x, y,
|
||||||
frameWidth / res, frameHeight / res
|
fw, fh
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (sprite.mask)
|
if (sprite.mask)
|
||||||
{
|
{
|
||||||
|
@ -158069,7 +158096,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
this.forceClamp = forceClamp;
|
this.forceClamp = forceClamp;
|
||||||
|
|
||||||
this.resize(width, height);
|
this.init(width, height);
|
||||||
|
|
||||||
if (autoResize)
|
if (autoResize)
|
||||||
{
|
{
|
||||||
|
@ -158082,6 +158109,28 @@ var RenderTarget = new Class({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up this Render Target to the given width and height, creating a new
|
||||||
|
* frame buffer and texture. This method is called automatically by the constructor
|
||||||
|
* and at no other time.
|
||||||
|
*
|
||||||
|
* @method Phaser.Renderer.WebGL.RenderTarget#init
|
||||||
|
* @since 3.86.0
|
||||||
|
*
|
||||||
|
* @param {number} width - The new width of this Render Target.
|
||||||
|
* @param {number} height - The new height of this Render Target.
|
||||||
|
*/
|
||||||
|
init: function (width, height)
|
||||||
|
{
|
||||||
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
this.texture = renderer.createTextureFromSource(null, width, height, this.minFilter, this.forceClamp);
|
||||||
|
this.framebuffer = renderer.createFramebuffer(width, height, this.texture, this.hasDepthBuffer);
|
||||||
|
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
||||||
* emits a resize event.
|
* emits a resize event.
|
||||||
|
@ -158120,9 +158169,6 @@ var RenderTarget = new Class({
|
||||||
*
|
*
|
||||||
* This method is called automatically by the pipeline during its resize handler.
|
* This method is called automatically by the pipeline during its resize handler.
|
||||||
*
|
*
|
||||||
* Previous to Phaser v3.85 this method would only run if `autoResize` was `true`,
|
|
||||||
* it will now run regardless.
|
|
||||||
*
|
|
||||||
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
||||||
* @since 3.50.0
|
* @since 3.50.0
|
||||||
*
|
*
|
||||||
|
@ -158133,7 +158179,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
resize: function (width, height)
|
resize: function (width, height)
|
||||||
{
|
{
|
||||||
if (this.willResize(width, height))
|
if (this.autoResize && this.willResize(width, height))
|
||||||
{
|
{
|
||||||
var renderer = this.renderer;
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
@ -158165,18 +158211,16 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
willResize: function (width, height)
|
willResize: function (width, height)
|
||||||
{
|
{
|
||||||
|
if (typeof width !== 'number' || typeof height !== 'number')
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
width = Math.round(width * this.scale);
|
width = Math.round(width * this.scale);
|
||||||
height = Math.round(height * this.scale);
|
height = Math.round(height * this.scale);
|
||||||
|
|
||||||
if (width <= 0)
|
width = Math.max(width, 1);
|
||||||
{
|
height = Math.max(height, 1);
|
||||||
width = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (height <= 0)
|
|
||||||
{
|
|
||||||
height = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (width !== this.width || height !== this.height);
|
return (width !== this.width || height !== this.height);
|
||||||
},
|
},
|
||||||
|
@ -167845,7 +167889,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.renderRoundPixels);
|
||||||
|
|
||||||
var getTint = Utils.getTintAppendFloatAlpha;
|
var getTint = Utils.getTintAppendFloatAlpha;
|
||||||
var cameraAlpha = camera.alpha;
|
var cameraAlpha = camera.alpha;
|
||||||
|
@ -168029,7 +168073,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.renderRoundPixels);
|
||||||
|
|
||||||
if (textureUnit === undefined || textureUnit === null)
|
if (textureUnit === undefined || textureUnit === null)
|
||||||
{
|
{
|
||||||
|
@ -176236,12 +176280,14 @@ var ScaleManager = new Class({
|
||||||
|
|
||||||
this.fullscreen = game.device.fullscreen;
|
this.fullscreen = game.device.fullscreen;
|
||||||
|
|
||||||
if ((this.scaleMode !== CONST.SCALE_MODE.RESIZE) && (this.scaleMode !== CONST.SCALE_MODE.EXPAND))
|
var scaleMode = this.scaleMode;
|
||||||
|
|
||||||
|
if (scaleMode !== CONST.SCALE_MODE.RESIZE && scaleMode !== CONST.SCALE_MODE.EXPAND)
|
||||||
{
|
{
|
||||||
this.displaySize.setAspectMode(this.scaleMode);
|
this.displaySize.setAspectMode(scaleMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.scaleMode === CONST.SCALE_MODE.NONE)
|
if (scaleMode === CONST.SCALE_MODE.NONE)
|
||||||
{
|
{
|
||||||
this.resize(this.width, this.height);
|
this.resize(this.width, this.height);
|
||||||
}
|
}
|
||||||
|
@ -176909,18 +176955,16 @@ var ScaleManager = new Class({
|
||||||
style.width = styleWidth + 'px';
|
style.width = styleWidth + 'px';
|
||||||
style.height = styleHeight + 'px';
|
style.height = styleHeight + 'px';
|
||||||
|
|
||||||
|
|
||||||
// Expand canvas size to fit game size's width or height
|
// Expand canvas size to fit game size's width or height
|
||||||
|
|
||||||
var scaleX = this.parentSize.width / baseWidth;
|
var scaleX = this.parentSize.width / baseWidth;
|
||||||
|
|
||||||
var scaleY = this.parentSize.height / baseHeight;
|
var scaleY = this.parentSize.height / baseHeight;
|
||||||
|
|
||||||
if (scaleX < scaleY)
|
if (scaleX < scaleY && scaleX !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
||||||
}
|
}
|
||||||
else
|
else if (scaleY !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
||||||
}
|
}
|
||||||
|
@ -209946,15 +209990,17 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
|
|
||||||
var x;
|
var x;
|
||||||
var y;
|
var y;
|
||||||
|
var staggerAxis = layer.staggerAxis;
|
||||||
|
var staggerIndex = layer.staggerIndex;
|
||||||
|
|
||||||
if (layer.staggerAxis === 'y')
|
if (staggerAxis === 'y')
|
||||||
{
|
{
|
||||||
x = worldX + (tileWidth * tileX) + tileWidth;
|
x = worldX + (tileWidth * tileX) + tileWidth;
|
||||||
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
||||||
|
|
||||||
if (tileY % 2 === 0)
|
if (tileY % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
x -= tileWidthHalf;
|
x -= tileWidthHalf;
|
||||||
}
|
}
|
||||||
|
@ -209964,14 +210010,14 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((this.staggerAxis === 'x') && (this.staggerIndex === 'odd'))
|
else if ((staggerAxis === 'x') && (staggerIndex === 'odd'))
|
||||||
{
|
{
|
||||||
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
||||||
y = worldY + (tileHeight * tileX) + tileHeight;
|
y = worldY + (tileHeight * tileX) + tileHeight;
|
||||||
|
|
||||||
if (tileX % 2 === 0)
|
if (tileX % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
y -= tileHeightHalf;
|
y -= tileHeightHalf;
|
||||||
}
|
}
|
||||||
|
@ -225443,18 +225489,14 @@ var MoveAbove = function (array, item1, item2)
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove
|
// Remove item1 from its current position
|
||||||
array.splice(currentIndex, 1);
|
array.splice(currentIndex, 1);
|
||||||
|
|
||||||
// Add in new location
|
// Recalculate baseIndex after removal
|
||||||
if (baseIndex === array.length - 1)
|
baseIndex = array.indexOf(item2);
|
||||||
{
|
|
||||||
array.push(item1);
|
// Insert item1 immediately after item2
|
||||||
}
|
array.splice(baseIndex + 1, 0, item1);
|
||||||
else
|
|
||||||
{
|
|
||||||
array.splice(baseIndex, 0, item1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
return array;
|
||||||
};
|
};
|
||||||
|
|
2
dist/phaser-arcade-physics.min.js
vendored
2
dist/phaser-arcade-physics.min.js
vendored
File diff suppressed because one or more lines are too long
188
dist/phaser-ie9.js
vendored
188
dist/phaser-ie9.js
vendored
|
@ -8863,6 +8863,22 @@ var BaseCamera = new Class({
|
||||||
* @since 3.60.0
|
* @since 3.60.0
|
||||||
*/
|
*/
|
||||||
this.isSceneCamera = true;
|
this.isSceneCamera = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can this Camera render rounded pixel values?
|
||||||
|
*
|
||||||
|
* This property is updated during the `preRender` method and should not be
|
||||||
|
* set directly. It is set based on the `roundPixels` property of the Camera
|
||||||
|
* combined with the zoom level. If the zoom is an integer then the WebGL
|
||||||
|
* Renderer can apply rounding during rendering.
|
||||||
|
*
|
||||||
|
* @name Phaser.Cameras.Scene2D.BaseCamera#renderRoundPixels
|
||||||
|
* @type {boolean}
|
||||||
|
* @readonly
|
||||||
|
* @default true
|
||||||
|
* @since 3.86.0
|
||||||
|
*/
|
||||||
|
this.renderRoundPixels = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10799,6 +10815,8 @@ var Camera = new Class({
|
||||||
var zoomY = this.zoomY;
|
var zoomY = this.zoomY;
|
||||||
var matrix = this.matrix;
|
var matrix = this.matrix;
|
||||||
|
|
||||||
|
this.renderRoundPixels = (this.roundPixels && Number.isInteger(zoomX) && Number.isInteger(zoomY));
|
||||||
|
|
||||||
var originX = width * this.originX;
|
var originX = width * this.originX;
|
||||||
var originY = height * this.originY;
|
var originY = height * this.originY;
|
||||||
|
|
||||||
|
@ -10887,7 +10905,8 @@ var Camera = new Class({
|
||||||
Math.floor(this.x + originX + 0.5),
|
Math.floor(this.x + originX + 0.5),
|
||||||
Math.floor(this.y + originY + 0.5),
|
Math.floor(this.y + originY + 0.5),
|
||||||
this.rotation,
|
this.rotation,
|
||||||
zoomX, zoomY);
|
zoomX, zoomY
|
||||||
|
);
|
||||||
|
|
||||||
matrix.translate(-originX, -originY);
|
matrix.translate(-originX, -originY);
|
||||||
|
|
||||||
|
@ -15645,7 +15664,7 @@ var CONST = {
|
||||||
* @type {string}
|
* @type {string}
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
VERSION: '3.85.2',
|
VERSION: '3.86.0',
|
||||||
|
|
||||||
BlendModes: __webpack_require__(10312),
|
BlendModes: __webpack_require__(10312),
|
||||||
|
|
||||||
|
@ -47643,6 +47662,8 @@ var Render = __webpack_require__(29959);
|
||||||
var Union = __webpack_require__(36899);
|
var Union = __webpack_require__(36899);
|
||||||
var Vector2 = __webpack_require__(26099);
|
var Vector2 = __webpack_require__(26099);
|
||||||
|
|
||||||
|
var tempTransformMatrix = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
* A Container Game Object.
|
* A Container Game Object.
|
||||||
|
@ -47787,16 +47808,6 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
this.localTransform = new Components.TransformMatrix();
|
this.localTransform = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal temporary Transform Matrix used to avoid object creation.
|
|
||||||
*
|
|
||||||
* @name Phaser.GameObjects.Container#tempTransformMatrix
|
|
||||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
|
||||||
* @private
|
|
||||||
* @since 3.4.0
|
|
||||||
*/
|
|
||||||
this.tempTransformMatrix = new Components.TransformMatrix();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The property key to sort by.
|
* The property key to sort by.
|
||||||
*
|
*
|
||||||
|
@ -48131,7 +48142,7 @@ var Container = new Class({
|
||||||
output.y = source.y;
|
output.y = source.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tempMatrix = this.tempTransformMatrix;
|
var tempMatrix = tempTransformMatrix;
|
||||||
|
|
||||||
// No need to loadIdentity because applyITRS overwrites every value anyway
|
// No need to loadIdentity because applyITRS overwrites every value anyway
|
||||||
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
||||||
|
@ -48155,7 +48166,7 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
getBoundsTransformMatrix: function ()
|
getBoundsTransformMatrix: function ()
|
||||||
{
|
{
|
||||||
return this.getWorldTransformMatrix(this.tempTransformMatrix, this.localTransform);
|
return this.getWorldTransformMatrix(tempTransformMatrix, this.localTransform);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49078,7 +49089,6 @@ var Container = new Class({
|
||||||
this.removeAll(!!this.exclusive);
|
this.removeAll(!!this.exclusive);
|
||||||
|
|
||||||
this.localTransform.destroy();
|
this.localTransform.destroy();
|
||||||
this.tempTransformMatrix.destroy();
|
|
||||||
|
|
||||||
this.list = [];
|
this.list = [];
|
||||||
},
|
},
|
||||||
|
@ -55043,7 +55053,7 @@ var Group = new Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link Phaser.GameObjects.Components.Animation#play Plays} an animation for all members of this group.
|
* {@link Phaser.Animations.AnimationState#play Plays} an animation for all members of this group.
|
||||||
*
|
*
|
||||||
* @method Phaser.GameObjects.Group#playAnimation
|
* @method Phaser.GameObjects.Group#playAnimation
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -65546,7 +65556,7 @@ var ParticleEmitter = new Class({
|
||||||
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
||||||
*
|
*
|
||||||
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
||||||
* Its {@link RandomZoneSource source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
* Its {@link Phaser.GameObjects.Particles.Zones.RandomZone#source source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
||||||
*
|
*
|
||||||
* An Emission Zone can only exist once within this Emitter.
|
* An Emission Zone can only exist once within this Emitter.
|
||||||
*
|
*
|
||||||
|
@ -81098,16 +81108,29 @@ var GetTextSize = function (text, size, lines)
|
||||||
style.syncFont(canvas, context);
|
style.syncFont(canvas, context);
|
||||||
|
|
||||||
// Text Width
|
// Text Width
|
||||||
|
var letterSpacing = text.letterSpacing;
|
||||||
|
|
||||||
for (var i = 0; i < drawnLines; i++)
|
for (var i = 0; i < drawnLines; i++)
|
||||||
{
|
{
|
||||||
var lineWidth = style.strokeThickness;
|
var lineWidth = style.strokeThickness;
|
||||||
|
|
||||||
lineWidth += context.measureText(lines[i]).width;
|
if (letterSpacing === 0)
|
||||||
|
|
||||||
if (lines[i].length > 1)
|
|
||||||
{
|
{
|
||||||
lineWidth += text.letterSpacing * (lines[i].length - 1);
|
lineWidth += context.measureText(lines[i]).width;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
|
||||||
|
for (var j = 0; j < line.length; j++)
|
||||||
|
{
|
||||||
|
lineWidth += context.measureText(line[j]).width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line.length > 1)
|
||||||
|
{
|
||||||
|
lineWidth += letterSpacing * (line.length - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust for wrapped text
|
// Adjust for wrapped text
|
||||||
|
@ -118323,7 +118346,7 @@ File.createObjectURL = function (image, blob, defaultType)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static method for releasing an existing object URL which was previously created
|
* Static method for releasing an existing object URL which was previously created
|
||||||
* by calling {@link File#createObjectURL} method.
|
* by calling {@link Phaser.Loader.File.createObjectURL} method.
|
||||||
*
|
*
|
||||||
* @method Phaser.Loader.File.revokeObjectURL
|
* @method Phaser.Loader.File.revokeObjectURL
|
||||||
* @static
|
* @static
|
||||||
|
@ -174206,6 +174229,12 @@ var CanvasRenderer = new Class({
|
||||||
var gx = sprite.x;
|
var gx = sprite.x;
|
||||||
var gy = sprite.y;
|
var gy = sprite.y;
|
||||||
|
|
||||||
|
if (camera.roundPixels)
|
||||||
|
{
|
||||||
|
gx = Math.floor(gx);
|
||||||
|
gy = Math.floor(gy);
|
||||||
|
}
|
||||||
|
|
||||||
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
||||||
|
|
||||||
camMatrix.copyFrom(camera.matrix);
|
camMatrix.copyFrom(camera.matrix);
|
||||||
|
@ -174228,10 +174257,10 @@ var CanvasRenderer = new Class({
|
||||||
// Multiply by the Sprite matrix
|
// Multiply by the Sprite matrix
|
||||||
camMatrix.multiply(spriteMatrix);
|
camMatrix.multiply(spriteMatrix);
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.renderRoundPixels)
|
||||||
{
|
{
|
||||||
camMatrix.e = Math.round(camMatrix.e);
|
camMatrix.e = Math.floor(camMatrix.e + 0.5);
|
||||||
camMatrix.f = Math.round(camMatrix.f);
|
camMatrix.f = Math.floor(camMatrix.f + 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.save();
|
ctx.save();
|
||||||
|
@ -174251,27 +174280,25 @@ var CanvasRenderer = new Class({
|
||||||
|
|
||||||
if (frameWidth > 0 && frameHeight > 0)
|
if (frameWidth > 0 && frameHeight > 0)
|
||||||
{
|
{
|
||||||
|
var fw = frameWidth / res;
|
||||||
|
var fh = frameHeight / res;
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.roundPixels)
|
||||||
{
|
{
|
||||||
ctx.drawImage(
|
x = Math.floor(x + 0.5);
|
||||||
frame.source.image,
|
y = Math.floor(y + 0.5);
|
||||||
frameX, frameY,
|
fw += 0.5;
|
||||||
frameWidth, frameHeight,
|
fh += 0.5;
|
||||||
Math.round(x), Math.round(y),
|
|
||||||
Math.round(frameWidth / res), Math.round(frameHeight / res)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
frame.source.image,
|
frame.source.image,
|
||||||
frameX, frameY,
|
frameX, frameY,
|
||||||
frameWidth, frameHeight,
|
frameWidth, frameHeight,
|
||||||
x, y,
|
x, y,
|
||||||
frameWidth / res, frameHeight / res
|
fw, fh
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (sprite.mask)
|
if (sprite.mask)
|
||||||
{
|
{
|
||||||
|
@ -176615,7 +176642,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
this.forceClamp = forceClamp;
|
this.forceClamp = forceClamp;
|
||||||
|
|
||||||
this.resize(width, height);
|
this.init(width, height);
|
||||||
|
|
||||||
if (autoResize)
|
if (autoResize)
|
||||||
{
|
{
|
||||||
|
@ -176628,6 +176655,28 @@ var RenderTarget = new Class({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up this Render Target to the given width and height, creating a new
|
||||||
|
* frame buffer and texture. This method is called automatically by the constructor
|
||||||
|
* and at no other time.
|
||||||
|
*
|
||||||
|
* @method Phaser.Renderer.WebGL.RenderTarget#init
|
||||||
|
* @since 3.86.0
|
||||||
|
*
|
||||||
|
* @param {number} width - The new width of this Render Target.
|
||||||
|
* @param {number} height - The new height of this Render Target.
|
||||||
|
*/
|
||||||
|
init: function (width, height)
|
||||||
|
{
|
||||||
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
this.texture = renderer.createTextureFromSource(null, width, height, this.minFilter, this.forceClamp);
|
||||||
|
this.framebuffer = renderer.createFramebuffer(width, height, this.texture, this.hasDepthBuffer);
|
||||||
|
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
||||||
* emits a resize event.
|
* emits a resize event.
|
||||||
|
@ -176666,9 +176715,6 @@ var RenderTarget = new Class({
|
||||||
*
|
*
|
||||||
* This method is called automatically by the pipeline during its resize handler.
|
* This method is called automatically by the pipeline during its resize handler.
|
||||||
*
|
*
|
||||||
* Previous to Phaser v3.85 this method would only run if `autoResize` was `true`,
|
|
||||||
* it will now run regardless.
|
|
||||||
*
|
|
||||||
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
||||||
* @since 3.50.0
|
* @since 3.50.0
|
||||||
*
|
*
|
||||||
|
@ -176679,7 +176725,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
resize: function (width, height)
|
resize: function (width, height)
|
||||||
{
|
{
|
||||||
if (this.willResize(width, height))
|
if (this.autoResize && this.willResize(width, height))
|
||||||
{
|
{
|
||||||
var renderer = this.renderer;
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
@ -176711,18 +176757,16 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
willResize: function (width, height)
|
willResize: function (width, height)
|
||||||
{
|
{
|
||||||
|
if (typeof width !== 'number' || typeof height !== 'number')
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
width = Math.round(width * this.scale);
|
width = Math.round(width * this.scale);
|
||||||
height = Math.round(height * this.scale);
|
height = Math.round(height * this.scale);
|
||||||
|
|
||||||
if (width <= 0)
|
width = Math.max(width, 1);
|
||||||
{
|
height = Math.max(height, 1);
|
||||||
width = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (height <= 0)
|
|
||||||
{
|
|
||||||
height = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (width !== this.width || height !== this.height);
|
return (width !== this.width || height !== this.height);
|
||||||
},
|
},
|
||||||
|
@ -186391,7 +186435,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.renderRoundPixels);
|
||||||
|
|
||||||
var getTint = Utils.getTintAppendFloatAlpha;
|
var getTint = Utils.getTintAppendFloatAlpha;
|
||||||
var cameraAlpha = camera.alpha;
|
var cameraAlpha = camera.alpha;
|
||||||
|
@ -186575,7 +186619,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.renderRoundPixels);
|
||||||
|
|
||||||
if (textureUnit === undefined || textureUnit === null)
|
if (textureUnit === undefined || textureUnit === null)
|
||||||
{
|
{
|
||||||
|
@ -194782,12 +194826,14 @@ var ScaleManager = new Class({
|
||||||
|
|
||||||
this.fullscreen = game.device.fullscreen;
|
this.fullscreen = game.device.fullscreen;
|
||||||
|
|
||||||
if ((this.scaleMode !== CONST.SCALE_MODE.RESIZE) && (this.scaleMode !== CONST.SCALE_MODE.EXPAND))
|
var scaleMode = this.scaleMode;
|
||||||
|
|
||||||
|
if (scaleMode !== CONST.SCALE_MODE.RESIZE && scaleMode !== CONST.SCALE_MODE.EXPAND)
|
||||||
{
|
{
|
||||||
this.displaySize.setAspectMode(this.scaleMode);
|
this.displaySize.setAspectMode(scaleMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.scaleMode === CONST.SCALE_MODE.NONE)
|
if (scaleMode === CONST.SCALE_MODE.NONE)
|
||||||
{
|
{
|
||||||
this.resize(this.width, this.height);
|
this.resize(this.width, this.height);
|
||||||
}
|
}
|
||||||
|
@ -195455,18 +195501,16 @@ var ScaleManager = new Class({
|
||||||
style.width = styleWidth + 'px';
|
style.width = styleWidth + 'px';
|
||||||
style.height = styleHeight + 'px';
|
style.height = styleHeight + 'px';
|
||||||
|
|
||||||
|
|
||||||
// Expand canvas size to fit game size's width or height
|
// Expand canvas size to fit game size's width or height
|
||||||
|
|
||||||
var scaleX = this.parentSize.width / baseWidth;
|
var scaleX = this.parentSize.width / baseWidth;
|
||||||
|
|
||||||
var scaleY = this.parentSize.height / baseHeight;
|
var scaleY = this.parentSize.height / baseHeight;
|
||||||
|
|
||||||
if (scaleX < scaleY)
|
if (scaleX < scaleY && scaleX !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
||||||
}
|
}
|
||||||
else
|
else if (scaleY !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
||||||
}
|
}
|
||||||
|
@ -228492,15 +228536,17 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
|
|
||||||
var x;
|
var x;
|
||||||
var y;
|
var y;
|
||||||
|
var staggerAxis = layer.staggerAxis;
|
||||||
|
var staggerIndex = layer.staggerIndex;
|
||||||
|
|
||||||
if (layer.staggerAxis === 'y')
|
if (staggerAxis === 'y')
|
||||||
{
|
{
|
||||||
x = worldX + (tileWidth * tileX) + tileWidth;
|
x = worldX + (tileWidth * tileX) + tileWidth;
|
||||||
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
||||||
|
|
||||||
if (tileY % 2 === 0)
|
if (tileY % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
x -= tileWidthHalf;
|
x -= tileWidthHalf;
|
||||||
}
|
}
|
||||||
|
@ -228510,14 +228556,14 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((this.staggerAxis === 'x') && (this.staggerIndex === 'odd'))
|
else if ((staggerAxis === 'x') && (staggerIndex === 'odd'))
|
||||||
{
|
{
|
||||||
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
||||||
y = worldY + (tileHeight * tileX) + tileHeight;
|
y = worldY + (tileHeight * tileX) + tileHeight;
|
||||||
|
|
||||||
if (tileX % 2 === 0)
|
if (tileX % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
y -= tileHeightHalf;
|
y -= tileHeightHalf;
|
||||||
}
|
}
|
||||||
|
@ -243989,18 +244035,14 @@ var MoveAbove = function (array, item1, item2)
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove
|
// Remove item1 from its current position
|
||||||
array.splice(currentIndex, 1);
|
array.splice(currentIndex, 1);
|
||||||
|
|
||||||
// Add in new location
|
// Recalculate baseIndex after removal
|
||||||
if (baseIndex === array.length - 1)
|
baseIndex = array.indexOf(item2);
|
||||||
{
|
|
||||||
array.push(item1);
|
// Insert item1 immediately after item2
|
||||||
}
|
array.splice(baseIndex + 1, 0, item1);
|
||||||
else
|
|
||||||
{
|
|
||||||
array.splice(baseIndex, 0, item1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
return array;
|
||||||
};
|
};
|
||||||
|
|
2
dist/phaser-ie9.min.js
vendored
2
dist/phaser-ie9.min.js
vendored
File diff suppressed because one or more lines are too long
188
dist/phaser.esm.js
vendored
188
dist/phaser.esm.js
vendored
|
@ -8851,6 +8851,22 @@ var BaseCamera = new Class({
|
||||||
* @since 3.60.0
|
* @since 3.60.0
|
||||||
*/
|
*/
|
||||||
this.isSceneCamera = true;
|
this.isSceneCamera = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can this Camera render rounded pixel values?
|
||||||
|
*
|
||||||
|
* This property is updated during the `preRender` method and should not be
|
||||||
|
* set directly. It is set based on the `roundPixels` property of the Camera
|
||||||
|
* combined with the zoom level. If the zoom is an integer then the WebGL
|
||||||
|
* Renderer can apply rounding during rendering.
|
||||||
|
*
|
||||||
|
* @name Phaser.Cameras.Scene2D.BaseCamera#renderRoundPixels
|
||||||
|
* @type {boolean}
|
||||||
|
* @readonly
|
||||||
|
* @default true
|
||||||
|
* @since 3.86.0
|
||||||
|
*/
|
||||||
|
this.renderRoundPixels = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10787,6 +10803,8 @@ var Camera = new Class({
|
||||||
var zoomY = this.zoomY;
|
var zoomY = this.zoomY;
|
||||||
var matrix = this.matrix;
|
var matrix = this.matrix;
|
||||||
|
|
||||||
|
this.renderRoundPixels = (this.roundPixels && Number.isInteger(zoomX) && Number.isInteger(zoomY));
|
||||||
|
|
||||||
var originX = width * this.originX;
|
var originX = width * this.originX;
|
||||||
var originY = height * this.originY;
|
var originY = height * this.originY;
|
||||||
|
|
||||||
|
@ -10875,7 +10893,8 @@ var Camera = new Class({
|
||||||
Math.floor(this.x + originX + 0.5),
|
Math.floor(this.x + originX + 0.5),
|
||||||
Math.floor(this.y + originY + 0.5),
|
Math.floor(this.y + originY + 0.5),
|
||||||
this.rotation,
|
this.rotation,
|
||||||
zoomX, zoomY);
|
zoomX, zoomY
|
||||||
|
);
|
||||||
|
|
||||||
matrix.translate(-originX, -originY);
|
matrix.translate(-originX, -originY);
|
||||||
|
|
||||||
|
@ -15633,7 +15652,7 @@ var CONST = {
|
||||||
* @type {string}
|
* @type {string}
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
VERSION: '3.85.2',
|
VERSION: '3.86.0',
|
||||||
|
|
||||||
BlendModes: __webpack_require__(10312),
|
BlendModes: __webpack_require__(10312),
|
||||||
|
|
||||||
|
@ -47631,6 +47650,8 @@ var Render = __webpack_require__(29959);
|
||||||
var Union = __webpack_require__(36899);
|
var Union = __webpack_require__(36899);
|
||||||
var Vector2 = __webpack_require__(26099);
|
var Vector2 = __webpack_require__(26099);
|
||||||
|
|
||||||
|
var tempTransformMatrix = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
* A Container Game Object.
|
* A Container Game Object.
|
||||||
|
@ -47775,16 +47796,6 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
this.localTransform = new Components.TransformMatrix();
|
this.localTransform = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal temporary Transform Matrix used to avoid object creation.
|
|
||||||
*
|
|
||||||
* @name Phaser.GameObjects.Container#tempTransformMatrix
|
|
||||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
|
||||||
* @private
|
|
||||||
* @since 3.4.0
|
|
||||||
*/
|
|
||||||
this.tempTransformMatrix = new Components.TransformMatrix();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The property key to sort by.
|
* The property key to sort by.
|
||||||
*
|
*
|
||||||
|
@ -48119,7 +48130,7 @@ var Container = new Class({
|
||||||
output.y = source.y;
|
output.y = source.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tempMatrix = this.tempTransformMatrix;
|
var tempMatrix = tempTransformMatrix;
|
||||||
|
|
||||||
// No need to loadIdentity because applyITRS overwrites every value anyway
|
// No need to loadIdentity because applyITRS overwrites every value anyway
|
||||||
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
||||||
|
@ -48143,7 +48154,7 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
getBoundsTransformMatrix: function ()
|
getBoundsTransformMatrix: function ()
|
||||||
{
|
{
|
||||||
return this.getWorldTransformMatrix(this.tempTransformMatrix, this.localTransform);
|
return this.getWorldTransformMatrix(tempTransformMatrix, this.localTransform);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49066,7 +49077,6 @@ var Container = new Class({
|
||||||
this.removeAll(!!this.exclusive);
|
this.removeAll(!!this.exclusive);
|
||||||
|
|
||||||
this.localTransform.destroy();
|
this.localTransform.destroy();
|
||||||
this.tempTransformMatrix.destroy();
|
|
||||||
|
|
||||||
this.list = [];
|
this.list = [];
|
||||||
},
|
},
|
||||||
|
@ -55031,7 +55041,7 @@ var Group = new Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link Phaser.GameObjects.Components.Animation#play Plays} an animation for all members of this group.
|
* {@link Phaser.Animations.AnimationState#play Plays} an animation for all members of this group.
|
||||||
*
|
*
|
||||||
* @method Phaser.GameObjects.Group#playAnimation
|
* @method Phaser.GameObjects.Group#playAnimation
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -65534,7 +65544,7 @@ var ParticleEmitter = new Class({
|
||||||
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
||||||
*
|
*
|
||||||
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
||||||
* Its {@link RandomZoneSource source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
* Its {@link Phaser.GameObjects.Particles.Zones.RandomZone#source source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
||||||
*
|
*
|
||||||
* An Emission Zone can only exist once within this Emitter.
|
* An Emission Zone can only exist once within this Emitter.
|
||||||
*
|
*
|
||||||
|
@ -81086,16 +81096,29 @@ var GetTextSize = function (text, size, lines)
|
||||||
style.syncFont(canvas, context);
|
style.syncFont(canvas, context);
|
||||||
|
|
||||||
// Text Width
|
// Text Width
|
||||||
|
var letterSpacing = text.letterSpacing;
|
||||||
|
|
||||||
for (var i = 0; i < drawnLines; i++)
|
for (var i = 0; i < drawnLines; i++)
|
||||||
{
|
{
|
||||||
var lineWidth = style.strokeThickness;
|
var lineWidth = style.strokeThickness;
|
||||||
|
|
||||||
lineWidth += context.measureText(lines[i]).width;
|
if (letterSpacing === 0)
|
||||||
|
|
||||||
if (lines[i].length > 1)
|
|
||||||
{
|
{
|
||||||
lineWidth += text.letterSpacing * (lines[i].length - 1);
|
lineWidth += context.measureText(lines[i]).width;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
|
||||||
|
for (var j = 0; j < line.length; j++)
|
||||||
|
{
|
||||||
|
lineWidth += context.measureText(line[j]).width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line.length > 1)
|
||||||
|
{
|
||||||
|
lineWidth += letterSpacing * (line.length - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust for wrapped text
|
// Adjust for wrapped text
|
||||||
|
@ -118310,7 +118333,7 @@ File.createObjectURL = function (image, blob, defaultType)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static method for releasing an existing object URL which was previously created
|
* Static method for releasing an existing object URL which was previously created
|
||||||
* by calling {@link File#createObjectURL} method.
|
* by calling {@link Phaser.Loader.File.createObjectURL} method.
|
||||||
*
|
*
|
||||||
* @method Phaser.Loader.File.revokeObjectURL
|
* @method Phaser.Loader.File.revokeObjectURL
|
||||||
* @static
|
* @static
|
||||||
|
@ -173656,6 +173679,12 @@ var CanvasRenderer = new Class({
|
||||||
var gx = sprite.x;
|
var gx = sprite.x;
|
||||||
var gy = sprite.y;
|
var gy = sprite.y;
|
||||||
|
|
||||||
|
if (camera.roundPixels)
|
||||||
|
{
|
||||||
|
gx = Math.floor(gx);
|
||||||
|
gy = Math.floor(gy);
|
||||||
|
}
|
||||||
|
|
||||||
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
||||||
|
|
||||||
camMatrix.copyFrom(camera.matrix);
|
camMatrix.copyFrom(camera.matrix);
|
||||||
|
@ -173678,10 +173707,10 @@ var CanvasRenderer = new Class({
|
||||||
// Multiply by the Sprite matrix
|
// Multiply by the Sprite matrix
|
||||||
camMatrix.multiply(spriteMatrix);
|
camMatrix.multiply(spriteMatrix);
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.renderRoundPixels)
|
||||||
{
|
{
|
||||||
camMatrix.e = Math.round(camMatrix.e);
|
camMatrix.e = Math.floor(camMatrix.e + 0.5);
|
||||||
camMatrix.f = Math.round(camMatrix.f);
|
camMatrix.f = Math.floor(camMatrix.f + 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.save();
|
ctx.save();
|
||||||
|
@ -173701,27 +173730,25 @@ var CanvasRenderer = new Class({
|
||||||
|
|
||||||
if (frameWidth > 0 && frameHeight > 0)
|
if (frameWidth > 0 && frameHeight > 0)
|
||||||
{
|
{
|
||||||
|
var fw = frameWidth / res;
|
||||||
|
var fh = frameHeight / res;
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.roundPixels)
|
||||||
{
|
{
|
||||||
ctx.drawImage(
|
x = Math.floor(x + 0.5);
|
||||||
frame.source.image,
|
y = Math.floor(y + 0.5);
|
||||||
frameX, frameY,
|
fw += 0.5;
|
||||||
frameWidth, frameHeight,
|
fh += 0.5;
|
||||||
Math.round(x), Math.round(y),
|
|
||||||
Math.round(frameWidth / res), Math.round(frameHeight / res)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
frame.source.image,
|
frame.source.image,
|
||||||
frameX, frameY,
|
frameX, frameY,
|
||||||
frameWidth, frameHeight,
|
frameWidth, frameHeight,
|
||||||
x, y,
|
x, y,
|
||||||
frameWidth / res, frameHeight / res
|
fw, fh
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (sprite.mask)
|
if (sprite.mask)
|
||||||
{
|
{
|
||||||
|
@ -176065,7 +176092,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
this.forceClamp = forceClamp;
|
this.forceClamp = forceClamp;
|
||||||
|
|
||||||
this.resize(width, height);
|
this.init(width, height);
|
||||||
|
|
||||||
if (autoResize)
|
if (autoResize)
|
||||||
{
|
{
|
||||||
|
@ -176078,6 +176105,28 @@ var RenderTarget = new Class({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up this Render Target to the given width and height, creating a new
|
||||||
|
* frame buffer and texture. This method is called automatically by the constructor
|
||||||
|
* and at no other time.
|
||||||
|
*
|
||||||
|
* @method Phaser.Renderer.WebGL.RenderTarget#init
|
||||||
|
* @since 3.86.0
|
||||||
|
*
|
||||||
|
* @param {number} width - The new width of this Render Target.
|
||||||
|
* @param {number} height - The new height of this Render Target.
|
||||||
|
*/
|
||||||
|
init: function (width, height)
|
||||||
|
{
|
||||||
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
this.texture = renderer.createTextureFromSource(null, width, height, this.minFilter, this.forceClamp);
|
||||||
|
this.framebuffer = renderer.createFramebuffer(width, height, this.texture, this.hasDepthBuffer);
|
||||||
|
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
||||||
* emits a resize event.
|
* emits a resize event.
|
||||||
|
@ -176116,9 +176165,6 @@ var RenderTarget = new Class({
|
||||||
*
|
*
|
||||||
* This method is called automatically by the pipeline during its resize handler.
|
* This method is called automatically by the pipeline during its resize handler.
|
||||||
*
|
*
|
||||||
* Previous to Phaser v3.85 this method would only run if `autoResize` was `true`,
|
|
||||||
* it will now run regardless.
|
|
||||||
*
|
|
||||||
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
||||||
* @since 3.50.0
|
* @since 3.50.0
|
||||||
*
|
*
|
||||||
|
@ -176129,7 +176175,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
resize: function (width, height)
|
resize: function (width, height)
|
||||||
{
|
{
|
||||||
if (this.willResize(width, height))
|
if (this.autoResize && this.willResize(width, height))
|
||||||
{
|
{
|
||||||
var renderer = this.renderer;
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
@ -176161,18 +176207,16 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
willResize: function (width, height)
|
willResize: function (width, height)
|
||||||
{
|
{
|
||||||
|
if (typeof width !== 'number' || typeof height !== 'number')
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
width = Math.round(width * this.scale);
|
width = Math.round(width * this.scale);
|
||||||
height = Math.round(height * this.scale);
|
height = Math.round(height * this.scale);
|
||||||
|
|
||||||
if (width <= 0)
|
width = Math.max(width, 1);
|
||||||
{
|
height = Math.max(height, 1);
|
||||||
width = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (height <= 0)
|
|
||||||
{
|
|
||||||
height = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (width !== this.width || height !== this.height);
|
return (width !== this.width || height !== this.height);
|
||||||
},
|
},
|
||||||
|
@ -185841,7 +185885,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.renderRoundPixels);
|
||||||
|
|
||||||
var getTint = Utils.getTintAppendFloatAlpha;
|
var getTint = Utils.getTintAppendFloatAlpha;
|
||||||
var cameraAlpha = camera.alpha;
|
var cameraAlpha = camera.alpha;
|
||||||
|
@ -186025,7 +186069,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.renderRoundPixels);
|
||||||
|
|
||||||
if (textureUnit === undefined || textureUnit === null)
|
if (textureUnit === undefined || textureUnit === null)
|
||||||
{
|
{
|
||||||
|
@ -194232,12 +194276,14 @@ var ScaleManager = new Class({
|
||||||
|
|
||||||
this.fullscreen = game.device.fullscreen;
|
this.fullscreen = game.device.fullscreen;
|
||||||
|
|
||||||
if ((this.scaleMode !== CONST.SCALE_MODE.RESIZE) && (this.scaleMode !== CONST.SCALE_MODE.EXPAND))
|
var scaleMode = this.scaleMode;
|
||||||
|
|
||||||
|
if (scaleMode !== CONST.SCALE_MODE.RESIZE && scaleMode !== CONST.SCALE_MODE.EXPAND)
|
||||||
{
|
{
|
||||||
this.displaySize.setAspectMode(this.scaleMode);
|
this.displaySize.setAspectMode(scaleMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.scaleMode === CONST.SCALE_MODE.NONE)
|
if (scaleMode === CONST.SCALE_MODE.NONE)
|
||||||
{
|
{
|
||||||
this.resize(this.width, this.height);
|
this.resize(this.width, this.height);
|
||||||
}
|
}
|
||||||
|
@ -194905,18 +194951,16 @@ var ScaleManager = new Class({
|
||||||
style.width = styleWidth + 'px';
|
style.width = styleWidth + 'px';
|
||||||
style.height = styleHeight + 'px';
|
style.height = styleHeight + 'px';
|
||||||
|
|
||||||
|
|
||||||
// Expand canvas size to fit game size's width or height
|
// Expand canvas size to fit game size's width or height
|
||||||
|
|
||||||
var scaleX = this.parentSize.width / baseWidth;
|
var scaleX = this.parentSize.width / baseWidth;
|
||||||
|
|
||||||
var scaleY = this.parentSize.height / baseHeight;
|
var scaleY = this.parentSize.height / baseHeight;
|
||||||
|
|
||||||
if (scaleX < scaleY)
|
if (scaleX < scaleY && scaleX !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
||||||
}
|
}
|
||||||
else
|
else if (scaleY !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
||||||
}
|
}
|
||||||
|
@ -227942,15 +227986,17 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
|
|
||||||
var x;
|
var x;
|
||||||
var y;
|
var y;
|
||||||
|
var staggerAxis = layer.staggerAxis;
|
||||||
|
var staggerIndex = layer.staggerIndex;
|
||||||
|
|
||||||
if (layer.staggerAxis === 'y')
|
if (staggerAxis === 'y')
|
||||||
{
|
{
|
||||||
x = worldX + (tileWidth * tileX) + tileWidth;
|
x = worldX + (tileWidth * tileX) + tileWidth;
|
||||||
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
||||||
|
|
||||||
if (tileY % 2 === 0)
|
if (tileY % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
x -= tileWidthHalf;
|
x -= tileWidthHalf;
|
||||||
}
|
}
|
||||||
|
@ -227960,14 +228006,14 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((this.staggerAxis === 'x') && (this.staggerIndex === 'odd'))
|
else if ((staggerAxis === 'x') && (staggerIndex === 'odd'))
|
||||||
{
|
{
|
||||||
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
||||||
y = worldY + (tileHeight * tileX) + tileHeight;
|
y = worldY + (tileHeight * tileX) + tileHeight;
|
||||||
|
|
||||||
if (tileX % 2 === 0)
|
if (tileX % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
y -= tileHeightHalf;
|
y -= tileHeightHalf;
|
||||||
}
|
}
|
||||||
|
@ -243439,18 +243485,14 @@ var MoveAbove = function (array, item1, item2)
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove
|
// Remove item1 from its current position
|
||||||
array.splice(currentIndex, 1);
|
array.splice(currentIndex, 1);
|
||||||
|
|
||||||
// Add in new location
|
// Recalculate baseIndex after removal
|
||||||
if (baseIndex === array.length - 1)
|
baseIndex = array.indexOf(item2);
|
||||||
{
|
|
||||||
array.push(item1);
|
// Insert item1 immediately after item2
|
||||||
}
|
array.splice(baseIndex + 1, 0, item1);
|
||||||
else
|
|
||||||
{
|
|
||||||
array.splice(baseIndex, 0, item1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
return array;
|
||||||
};
|
};
|
||||||
|
|
2
dist/phaser.esm.min.js
vendored
2
dist/phaser.esm.min.js
vendored
File diff suppressed because one or more lines are too long
188
dist/phaser.js
vendored
188
dist/phaser.js
vendored
|
@ -8863,6 +8863,22 @@ var BaseCamera = new Class({
|
||||||
* @since 3.60.0
|
* @since 3.60.0
|
||||||
*/
|
*/
|
||||||
this.isSceneCamera = true;
|
this.isSceneCamera = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can this Camera render rounded pixel values?
|
||||||
|
*
|
||||||
|
* This property is updated during the `preRender` method and should not be
|
||||||
|
* set directly. It is set based on the `roundPixels` property of the Camera
|
||||||
|
* combined with the zoom level. If the zoom is an integer then the WebGL
|
||||||
|
* Renderer can apply rounding during rendering.
|
||||||
|
*
|
||||||
|
* @name Phaser.Cameras.Scene2D.BaseCamera#renderRoundPixels
|
||||||
|
* @type {boolean}
|
||||||
|
* @readonly
|
||||||
|
* @default true
|
||||||
|
* @since 3.86.0
|
||||||
|
*/
|
||||||
|
this.renderRoundPixels = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10799,6 +10815,8 @@ var Camera = new Class({
|
||||||
var zoomY = this.zoomY;
|
var zoomY = this.zoomY;
|
||||||
var matrix = this.matrix;
|
var matrix = this.matrix;
|
||||||
|
|
||||||
|
this.renderRoundPixels = (this.roundPixels && Number.isInteger(zoomX) && Number.isInteger(zoomY));
|
||||||
|
|
||||||
var originX = width * this.originX;
|
var originX = width * this.originX;
|
||||||
var originY = height * this.originY;
|
var originY = height * this.originY;
|
||||||
|
|
||||||
|
@ -10887,7 +10905,8 @@ var Camera = new Class({
|
||||||
Math.floor(this.x + originX + 0.5),
|
Math.floor(this.x + originX + 0.5),
|
||||||
Math.floor(this.y + originY + 0.5),
|
Math.floor(this.y + originY + 0.5),
|
||||||
this.rotation,
|
this.rotation,
|
||||||
zoomX, zoomY);
|
zoomX, zoomY
|
||||||
|
);
|
||||||
|
|
||||||
matrix.translate(-originX, -originY);
|
matrix.translate(-originX, -originY);
|
||||||
|
|
||||||
|
@ -15645,7 +15664,7 @@ var CONST = {
|
||||||
* @type {string}
|
* @type {string}
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
VERSION: '3.85.2',
|
VERSION: '3.86.0',
|
||||||
|
|
||||||
BlendModes: __webpack_require__(10312),
|
BlendModes: __webpack_require__(10312),
|
||||||
|
|
||||||
|
@ -47643,6 +47662,8 @@ var Render = __webpack_require__(29959);
|
||||||
var Union = __webpack_require__(36899);
|
var Union = __webpack_require__(36899);
|
||||||
var Vector2 = __webpack_require__(26099);
|
var Vector2 = __webpack_require__(26099);
|
||||||
|
|
||||||
|
var tempTransformMatrix = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
* A Container Game Object.
|
* A Container Game Object.
|
||||||
|
@ -47787,16 +47808,6 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
this.localTransform = new Components.TransformMatrix();
|
this.localTransform = new Components.TransformMatrix();
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal temporary Transform Matrix used to avoid object creation.
|
|
||||||
*
|
|
||||||
* @name Phaser.GameObjects.Container#tempTransformMatrix
|
|
||||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
|
||||||
* @private
|
|
||||||
* @since 3.4.0
|
|
||||||
*/
|
|
||||||
this.tempTransformMatrix = new Components.TransformMatrix();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The property key to sort by.
|
* The property key to sort by.
|
||||||
*
|
*
|
||||||
|
@ -48131,7 +48142,7 @@ var Container = new Class({
|
||||||
output.y = source.y;
|
output.y = source.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tempMatrix = this.tempTransformMatrix;
|
var tempMatrix = tempTransformMatrix;
|
||||||
|
|
||||||
// No need to loadIdentity because applyITRS overwrites every value anyway
|
// No need to loadIdentity because applyITRS overwrites every value anyway
|
||||||
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);
|
||||||
|
@ -48155,7 +48166,7 @@ var Container = new Class({
|
||||||
*/
|
*/
|
||||||
getBoundsTransformMatrix: function ()
|
getBoundsTransformMatrix: function ()
|
||||||
{
|
{
|
||||||
return this.getWorldTransformMatrix(this.tempTransformMatrix, this.localTransform);
|
return this.getWorldTransformMatrix(tempTransformMatrix, this.localTransform);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49078,7 +49089,6 @@ var Container = new Class({
|
||||||
this.removeAll(!!this.exclusive);
|
this.removeAll(!!this.exclusive);
|
||||||
|
|
||||||
this.localTransform.destroy();
|
this.localTransform.destroy();
|
||||||
this.tempTransformMatrix.destroy();
|
|
||||||
|
|
||||||
this.list = [];
|
this.list = [];
|
||||||
},
|
},
|
||||||
|
@ -55043,7 +55053,7 @@ var Group = new Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link Phaser.GameObjects.Components.Animation#play Plays} an animation for all members of this group.
|
* {@link Phaser.Animations.AnimationState#play Plays} an animation for all members of this group.
|
||||||
*
|
*
|
||||||
* @method Phaser.GameObjects.Group#playAnimation
|
* @method Phaser.GameObjects.Group#playAnimation
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -65546,7 +65556,7 @@ var ParticleEmitter = new Class({
|
||||||
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
* or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.
|
||||||
*
|
*
|
||||||
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
* A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.
|
||||||
* Its {@link RandomZoneSource source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
* Its {@link Phaser.GameObjects.Particles.Zones.RandomZone#source source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.
|
||||||
*
|
*
|
||||||
* An Emission Zone can only exist once within this Emitter.
|
* An Emission Zone can only exist once within this Emitter.
|
||||||
*
|
*
|
||||||
|
@ -81098,16 +81108,29 @@ var GetTextSize = function (text, size, lines)
|
||||||
style.syncFont(canvas, context);
|
style.syncFont(canvas, context);
|
||||||
|
|
||||||
// Text Width
|
// Text Width
|
||||||
|
var letterSpacing = text.letterSpacing;
|
||||||
|
|
||||||
for (var i = 0; i < drawnLines; i++)
|
for (var i = 0; i < drawnLines; i++)
|
||||||
{
|
{
|
||||||
var lineWidth = style.strokeThickness;
|
var lineWidth = style.strokeThickness;
|
||||||
|
|
||||||
lineWidth += context.measureText(lines[i]).width;
|
if (letterSpacing === 0)
|
||||||
|
|
||||||
if (lines[i].length > 1)
|
|
||||||
{
|
{
|
||||||
lineWidth += text.letterSpacing * (lines[i].length - 1);
|
lineWidth += context.measureText(lines[i]).width;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
|
||||||
|
for (var j = 0; j < line.length; j++)
|
||||||
|
{
|
||||||
|
lineWidth += context.measureText(line[j]).width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line.length > 1)
|
||||||
|
{
|
||||||
|
lineWidth += letterSpacing * (line.length - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust for wrapped text
|
// Adjust for wrapped text
|
||||||
|
@ -118323,7 +118346,7 @@ File.createObjectURL = function (image, blob, defaultType)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static method for releasing an existing object URL which was previously created
|
* Static method for releasing an existing object URL which was previously created
|
||||||
* by calling {@link File#createObjectURL} method.
|
* by calling {@link Phaser.Loader.File.createObjectURL} method.
|
||||||
*
|
*
|
||||||
* @method Phaser.Loader.File.revokeObjectURL
|
* @method Phaser.Loader.File.revokeObjectURL
|
||||||
* @static
|
* @static
|
||||||
|
@ -173764,6 +173787,12 @@ var CanvasRenderer = new Class({
|
||||||
var gx = sprite.x;
|
var gx = sprite.x;
|
||||||
var gy = sprite.y;
|
var gy = sprite.y;
|
||||||
|
|
||||||
|
if (camera.roundPixels)
|
||||||
|
{
|
||||||
|
gx = Math.floor(gx);
|
||||||
|
gy = Math.floor(gy);
|
||||||
|
}
|
||||||
|
|
||||||
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
spriteMatrix.applyITRS(gx, gy, sprite.rotation, sprite.scaleX * flipX, sprite.scaleY * flipY);
|
||||||
|
|
||||||
camMatrix.copyFrom(camera.matrix);
|
camMatrix.copyFrom(camera.matrix);
|
||||||
|
@ -173786,10 +173815,10 @@ var CanvasRenderer = new Class({
|
||||||
// Multiply by the Sprite matrix
|
// Multiply by the Sprite matrix
|
||||||
camMatrix.multiply(spriteMatrix);
|
camMatrix.multiply(spriteMatrix);
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.renderRoundPixels)
|
||||||
{
|
{
|
||||||
camMatrix.e = Math.round(camMatrix.e);
|
camMatrix.e = Math.floor(camMatrix.e + 0.5);
|
||||||
camMatrix.f = Math.round(camMatrix.f);
|
camMatrix.f = Math.floor(camMatrix.f + 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.save();
|
ctx.save();
|
||||||
|
@ -173809,27 +173838,25 @@ var CanvasRenderer = new Class({
|
||||||
|
|
||||||
if (frameWidth > 0 && frameHeight > 0)
|
if (frameWidth > 0 && frameHeight > 0)
|
||||||
{
|
{
|
||||||
|
var fw = frameWidth / res;
|
||||||
|
var fh = frameHeight / res;
|
||||||
|
|
||||||
if (camera.roundPixels)
|
if (camera.roundPixels)
|
||||||
{
|
{
|
||||||
ctx.drawImage(
|
x = Math.floor(x + 0.5);
|
||||||
frame.source.image,
|
y = Math.floor(y + 0.5);
|
||||||
frameX, frameY,
|
fw += 0.5;
|
||||||
frameWidth, frameHeight,
|
fh += 0.5;
|
||||||
Math.round(x), Math.round(y),
|
|
||||||
Math.round(frameWidth / res), Math.round(frameHeight / res)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
frame.source.image,
|
frame.source.image,
|
||||||
frameX, frameY,
|
frameX, frameY,
|
||||||
frameWidth, frameHeight,
|
frameWidth, frameHeight,
|
||||||
x, y,
|
x, y,
|
||||||
frameWidth / res, frameHeight / res
|
fw, fh
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (sprite.mask)
|
if (sprite.mask)
|
||||||
{
|
{
|
||||||
|
@ -176173,7 +176200,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
this.forceClamp = forceClamp;
|
this.forceClamp = forceClamp;
|
||||||
|
|
||||||
this.resize(width, height);
|
this.init(width, height);
|
||||||
|
|
||||||
if (autoResize)
|
if (autoResize)
|
||||||
{
|
{
|
||||||
|
@ -176186,6 +176213,28 @@ var RenderTarget = new Class({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up this Render Target to the given width and height, creating a new
|
||||||
|
* frame buffer and texture. This method is called automatically by the constructor
|
||||||
|
* and at no other time.
|
||||||
|
*
|
||||||
|
* @method Phaser.Renderer.WebGL.RenderTarget#init
|
||||||
|
* @since 3.86.0
|
||||||
|
*
|
||||||
|
* @param {number} width - The new width of this Render Target.
|
||||||
|
* @param {number} height - The new height of this Render Target.
|
||||||
|
*/
|
||||||
|
init: function (width, height)
|
||||||
|
{
|
||||||
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
this.texture = renderer.createTextureFromSource(null, width, height, this.minFilter, this.forceClamp);
|
||||||
|
this.framebuffer = renderer.createFramebuffer(width, height, this.texture, this.hasDepthBuffer);
|
||||||
|
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
* Sets if this Render Target should automatically resize when the WebGL Renderer
|
||||||
* emits a resize event.
|
* emits a resize event.
|
||||||
|
@ -176224,9 +176273,6 @@ var RenderTarget = new Class({
|
||||||
*
|
*
|
||||||
* This method is called automatically by the pipeline during its resize handler.
|
* This method is called automatically by the pipeline during its resize handler.
|
||||||
*
|
*
|
||||||
* Previous to Phaser v3.85 this method would only run if `autoResize` was `true`,
|
|
||||||
* it will now run regardless.
|
|
||||||
*
|
|
||||||
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
* @method Phaser.Renderer.WebGL.RenderTarget#resize
|
||||||
* @since 3.50.0
|
* @since 3.50.0
|
||||||
*
|
*
|
||||||
|
@ -176237,7 +176283,7 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
resize: function (width, height)
|
resize: function (width, height)
|
||||||
{
|
{
|
||||||
if (this.willResize(width, height))
|
if (this.autoResize && this.willResize(width, height))
|
||||||
{
|
{
|
||||||
var renderer = this.renderer;
|
var renderer = this.renderer;
|
||||||
|
|
||||||
|
@ -176269,18 +176315,16 @@ var RenderTarget = new Class({
|
||||||
*/
|
*/
|
||||||
willResize: function (width, height)
|
willResize: function (width, height)
|
||||||
{
|
{
|
||||||
|
if (typeof width !== 'number' || typeof height !== 'number')
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
width = Math.round(width * this.scale);
|
width = Math.round(width * this.scale);
|
||||||
height = Math.round(height * this.scale);
|
height = Math.round(height * this.scale);
|
||||||
|
|
||||||
if (width <= 0)
|
width = Math.max(width, 1);
|
||||||
{
|
height = Math.max(height, 1);
|
||||||
width = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (height <= 0)
|
|
||||||
{
|
|
||||||
height = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (width !== this.width || height !== this.height);
|
return (width !== this.width || height !== this.height);
|
||||||
},
|
},
|
||||||
|
@ -185949,7 +185993,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + frameWidth, y + frameHeight, camera.renderRoundPixels);
|
||||||
|
|
||||||
var getTint = Utils.getTintAppendFloatAlpha;
|
var getTint = Utils.getTintAppendFloatAlpha;
|
||||||
var cameraAlpha = camera.alpha;
|
var cameraAlpha = camera.alpha;
|
||||||
|
@ -186133,7 +186177,7 @@ var MultiPipeline = new Class({
|
||||||
// Multiply by the Sprite matrix, store result in calcMatrix
|
// Multiply by the Sprite matrix, store result in calcMatrix
|
||||||
camMatrix.multiply(spriteMatrix, calcMatrix);
|
camMatrix.multiply(spriteMatrix, calcMatrix);
|
||||||
|
|
||||||
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.roundPixels);
|
var quad = calcMatrix.setQuad(x, y, x + width, y + height, camera.renderRoundPixels);
|
||||||
|
|
||||||
if (textureUnit === undefined || textureUnit === null)
|
if (textureUnit === undefined || textureUnit === null)
|
||||||
{
|
{
|
||||||
|
@ -194340,12 +194384,14 @@ var ScaleManager = new Class({
|
||||||
|
|
||||||
this.fullscreen = game.device.fullscreen;
|
this.fullscreen = game.device.fullscreen;
|
||||||
|
|
||||||
if ((this.scaleMode !== CONST.SCALE_MODE.RESIZE) && (this.scaleMode !== CONST.SCALE_MODE.EXPAND))
|
var scaleMode = this.scaleMode;
|
||||||
|
|
||||||
|
if (scaleMode !== CONST.SCALE_MODE.RESIZE && scaleMode !== CONST.SCALE_MODE.EXPAND)
|
||||||
{
|
{
|
||||||
this.displaySize.setAspectMode(this.scaleMode);
|
this.displaySize.setAspectMode(scaleMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.scaleMode === CONST.SCALE_MODE.NONE)
|
if (scaleMode === CONST.SCALE_MODE.NONE)
|
||||||
{
|
{
|
||||||
this.resize(this.width, this.height);
|
this.resize(this.width, this.height);
|
||||||
}
|
}
|
||||||
|
@ -195013,18 +195059,16 @@ var ScaleManager = new Class({
|
||||||
style.width = styleWidth + 'px';
|
style.width = styleWidth + 'px';
|
||||||
style.height = styleHeight + 'px';
|
style.height = styleHeight + 'px';
|
||||||
|
|
||||||
|
|
||||||
// Expand canvas size to fit game size's width or height
|
// Expand canvas size to fit game size's width or height
|
||||||
|
|
||||||
var scaleX = this.parentSize.width / baseWidth;
|
var scaleX = this.parentSize.width / baseWidth;
|
||||||
|
|
||||||
var scaleY = this.parentSize.height / baseHeight;
|
var scaleY = this.parentSize.height / baseHeight;
|
||||||
|
|
||||||
if (scaleX < scaleY)
|
if (scaleX < scaleY && scaleX !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
this.baseSize.setSize(baseWidth, this.parentSize.height / scaleX);
|
||||||
}
|
}
|
||||||
else
|
else if (scaleY !== 0)
|
||||||
{
|
{
|
||||||
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
this.baseSize.setSize(this.displaySize.width / scaleY, baseHeight);
|
||||||
}
|
}
|
||||||
|
@ -228050,15 +228094,17 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
|
|
||||||
var x;
|
var x;
|
||||||
var y;
|
var y;
|
||||||
|
var staggerAxis = layer.staggerAxis;
|
||||||
|
var staggerIndex = layer.staggerIndex;
|
||||||
|
|
||||||
if (layer.staggerAxis === 'y')
|
if (staggerAxis === 'y')
|
||||||
{
|
{
|
||||||
x = worldX + (tileWidth * tileX) + tileWidth;
|
x = worldX + (tileWidth * tileX) + tileWidth;
|
||||||
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
y = worldY + ((1.5 * tileY) * tileHeightHalf) + tileHeightHalf;
|
||||||
|
|
||||||
if (tileY % 2 === 0)
|
if (tileY % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
x -= tileWidthHalf;
|
x -= tileWidthHalf;
|
||||||
}
|
}
|
||||||
|
@ -228068,14 +228114,14 @@ var HexagonalTileToWorldXY = function (tileX, tileY, point, camera, layer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((this.staggerAxis === 'x') && (this.staggerIndex === 'odd'))
|
else if ((staggerAxis === 'x') && (staggerIndex === 'odd'))
|
||||||
{
|
{
|
||||||
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
x = worldX + ((1.5 * tileX) * tileWidthHalf) + tileWidthHalf;
|
||||||
y = worldY + (tileHeight * tileX) + tileHeight;
|
y = worldY + (tileHeight * tileX) + tileHeight;
|
||||||
|
|
||||||
if (tileX % 2 === 0)
|
if (tileX % 2 === 0)
|
||||||
{
|
{
|
||||||
if (this.staggerIndex === 'odd')
|
if (staggerIndex === 'odd')
|
||||||
{
|
{
|
||||||
y -= tileHeightHalf;
|
y -= tileHeightHalf;
|
||||||
}
|
}
|
||||||
|
@ -243547,18 +243593,14 @@ var MoveAbove = function (array, item1, item2)
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove
|
// Remove item1 from its current position
|
||||||
array.splice(currentIndex, 1);
|
array.splice(currentIndex, 1);
|
||||||
|
|
||||||
// Add in new location
|
// Recalculate baseIndex after removal
|
||||||
if (baseIndex === array.length - 1)
|
baseIndex = array.indexOf(item2);
|
||||||
{
|
|
||||||
array.push(item1);
|
// Insert item1 immediately after item2
|
||||||
}
|
array.splice(baseIndex + 1, 0, item1);
|
||||||
else
|
|
||||||
{
|
|
||||||
array.splice(baseIndex, 0, item1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
return array;
|
||||||
};
|
};
|
||||||
|
|
2
dist/phaser.min.js
vendored
2
dist/phaser.min.js
vendored
File diff suppressed because one or more lines are too long
33344
types/phaser.d.ts
vendored
33344
types/phaser.d.ts
vendored
File diff suppressed because it is too large
Load diff
570769
types/phaser.json
570769
types/phaser.json
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue