Commit graph

9720 commits

Author SHA1 Message Date
Richard Davey
e368c479a0 The TextureManager now generates a new texture with the key __WHITE durings its boot process. This is a pure white 4x4 texture used by the Graphics pipelines. 2020-09-14 14:54:58 +01:00
Richard Davey
81800e0ce2 WebGLRenderer.whiteTexture is a new property that is a reference to a pure white 4x4 texture that is created during Boot by the Texture Manager. The Multi Pipeline uses this internally for all Graphic, Shape and fill rendering. 2020-09-14 14:44:29 +01:00
Richard Davey
81b63cdf20 The Rope.tintFill property is now a boolean, not an integer, and can no longer take 2 as a value for a complete fill. Instead, you should provide a solid color texture with no alpha. 2020-09-14 11:12:41 +01:00
Richard Davey
e5ce83aebd New direct tint value 2020-09-14 11:06:16 +01:00
Richard Davey
0f6cc79cd1 The function GetColorFromValue has been removed as it's no longer used internally. 2020-09-14 11:05:32 +01:00
Richard Davey
4ade25fc79 No longer read private values for tint
The `Multi Pipeline`, `Bitmap Text`, `Render Texture`, `Text`, `TileSprite` and `Camera` now all read the tint values from the public properties instead of the private `_tintTL` etc ones. They also now set the `tintEffect` value directly from the `tintFill` property, removing another conditional check.
2020-09-14 11:05:09 +01:00
Richard Davey
75c5f11aee Updated shader source RGB to BGR and removed if-else block
* The `Single.frag`, `Light.frag` and `Multi.frag` shaders have all been updated so they now read the color value as `outTint.bgr` instead of `outTint.rgb`. This allows the colors to remain in RGB order within the Tint component.
* The `Single.frag`, `Light.frag` and `Multi.frag` shaders have all been updated so they no longer have a 3-way check on the `outTintEffect` value.
2020-09-14 11:02:02 +01:00
Richard Davey
6d09f1fe40 Refactored Tint component
* `Tint.tintTopLeft` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintTL` which has now been removed.
* `Tint.tintTopRight` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintTR` which has now been removed.
* `Tint.tintBottomLeft` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintBL` which has now been removed.
* `Tint.tintBottomRight` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintBR` which has now been removed.
* The property `Tint._isTinted` has been removed as it's no longer required.
2020-09-14 10:59:32 +01:00
Richard Davey
ea0abc4f69 Tidy up the formatting 2020-09-14 09:44:17 +01:00
Richard Davey
17ed707acb The Loader.path was being added to the File URL even if the URL was absolute. This is now checked for and the path is not applied unless the URL is relative #5301 2020-09-14 09:23:59 +01:00
Richard Davey
25b5c2d1d1 Loads of new Mesh updates
* `Mesh.setVertices` is a new method that allows you to set the verts of a Mesh Game Object from the given parameters. This allows you to modify a mesh post-creation, or populate it with data at a later stage.
* The Mesh constructor signature has changed to `scene, x, y, vertices, uvs, indicies, colors, alphas, texture, frame`, where `indicies` is the new parameter added to the list. It allows you to provide indexed vertex data to create the Mesh from, where the `indicies` array holds the vertex index information. The final list of vertices is built from this index along with the provided vertices and uvs arrays.
* You can now supply just a single numerical value as the `color` parameter in the constructor, factory method and `setVertices` method. If a number, instead of an array, it will be used as the color for all vertices created.
* You can now supply just a single numerical value as the `alpha` parameter in the constructor, factory method and `setVertices` method. If a number, instead of an array, it will be used as the alpha for all vertices created.
* The `Mesh` Game Object now extends the `SingleAlpha` component and the alpha value is factored into the final alpha value per vertex during rendering. This means you can now set the whole alpha across the Mesh using the standard `setAlpha` methods. But, if you wish to, you can still control the alpha on a per-vertex basis as well.
* The `Mesh` Game Object now has the Animation State Component. This allows you to create and play animations across the texture of a Mesh, something that previously wasn't possible. As a result, the Mesh now adds itself to the Update List when added to a Scene.
* `Mesh.setDebug` is a new method that allows you to render a debug visualisation of the Mesh vertices to a Graphics Game Object. You can provide your own Graphics instance and optionally callback that is invoked during rendering. This allows you to easily visualise the vertices of your Mesh to help debug UV mapping.
* `Mesh.debugGraphic` is a new property that holds the debug Graphics instance reference.
* `Mesh.debugCallback` is a new property that holds the debug render callback.
* `Mesh.renderDebugVerts` is a new method that acts as the default render callback for `setDebug` if none is provided.
* `Mesh.preDestroy` is a new method that will clean-up the Mesh arrays and debug references on destruction.
2020-09-13 23:11:04 +01:00
Richard Davey
3fd52ecdd3 Added debug draw 2020-09-13 17:16:17 +01:00
Richard Davey
c76b084f2e Merge branch 'master' of https://github.com/photonstorm/phaser 2020-09-13 15:17:13 +01:00
Richard Davey
cd0a27acfa Fix #5308 2020-09-13 15:17:07 +01:00
Rex
0cb806c11e Fix add.existing bug
Add game object to updateList if it dose not add to displayList.
( Group game object dose not have `renderCanvas` or `renderWebGL` method)
2020-09-13 17:05:55 +08:00
Richard Davey
b733dbcbe1 The ScaleManager.resolution property has been removed and all internal use of it. 2020-09-12 11:59:30 +01:00
Richard Davey
68946f3894 The Phaser.Scale.Events#RESIZE event no longer sends the resolution as a parameter. 2020-09-12 11:58:50 +01:00
Richard Davey
e4b1093e72 The WebGLRenderer.resize and onResize methods no longer receives or uses the resolution parameter. 2020-09-12 11:58:08 +01:00
Richard Davey
67e49b515c The PipelineManager.resize method along with WebGLPipeline.resize and anything else that extends them no longer receives or uses the resolution parameter. 2020-09-12 11:57:16 +01:00
Richard Davey
37a9261ac4 The CanvasRenderer no longer reads or uses the Game Config resolution property. 2020-09-12 11:56:11 +01:00
Richard Davey
b63cc75154 Remove Camera.resolution use 2020-09-12 11:55:38 +01:00
Richard Davey
f2fca49b3f Remove Camera resolution use 2020-09-12 11:55:26 +01:00
Richard Davey
d6f5aabb7e The TextStyle.resolution property is no longer read from the Game Config. You can still set it via the Text Style config to a value other than 1, but it will default to this now. 2020-09-12 11:55:06 +01:00
Richard Davey
0acdf4373f Formatting update 2020-09-12 11:53:36 +01:00
Richard Davey
c46c3e4c82 The Core.Config.resolution property has been removed. 2020-09-12 11:53:23 +01:00
Richard Davey
f0f93cde7d The CameraManager.onResize method no longer receives or uses the resolution parameter. 2020-09-12 11:52:40 +01:00
Richard Davey
3579d39fa2 The Camera.preRender method no longer receives or uses the resolution parameter. 2020-09-12 11:51:59 +01:00
Richard Davey
d1f2c9239c Resolution removal
* The `BaseCamera.resolution` property has been removed.
* The internal private `BaseCamera._cx`, `_cy`, `_cw` and `_ch` properties has been removed.
* The `BaseCamera.preRender` method no longer receives or uses the `resolution` parameter.
2020-09-12 11:51:37 +01:00
Richard Davey
5d4fe0a466 Fixed a few linting errors 2020-09-12 10:34:57 +01:00
Richard Davey
36cf9c456a
Merge pull request #5270 from rexrainbow/text-measureText
Get ascent and descent from context.measureText method
2020-09-12 10:30:19 +01:00
Richard Davey
887e0d8a15
Merge pull request #5302 from samme/feature/copyPosition
Add Phaser.GameObjects.Components.Transform#copyPosition
2020-09-12 10:26:51 +01:00
samme
ad0c5ad5db Docs: since 2020-09-11 10:01:43 -07:00
samme
f05129f30c Add Transform#copyPosition
Needs JSDoc types for Vector3Like, Vector4Like
2020-09-11 09:44:31 -07:00
Emil Schnedler Vad
e1106a0112 Says webglRender but it is in PipelineManager 2020-09-11 18:44:11 +02:00
Richard Davey
9cd4c1bb0a Refactored to use local vars 2020-09-11 16:27:21 +01:00
Richard Davey
d844402d4d
Merge pull request #5298 from samme/feature/audio-config-default
Add default value for Phaser.Core.Config#audio
2020-09-11 16:25:50 +01:00
Richard Davey
7475b15976 Preparing for Beta 6 2020-09-11 15:56:53 +01:00
samme
93b5aebdbe Fix undefined TimerEvent
Fixes #5294
2020-09-11 07:45:22 -07:00
Richard Davey
6c8191f7c5 Fixed Audio and Video type defs. Fix #5295 2020-09-11 15:29:01 +01:00
Richard Davey
1c2a79ac51 The Scale Managers GetScreenOrientation function will now check for window.orientation first, because iOS mobile browsers have an incomplete implementation of the Screen API, forcing us to use the window value as a priority. This means the Scale Manager will now emit orientationchange events correctly on iOS. Fix #4361 #4914 2020-09-11 15:22:53 +01:00
Richard Davey
60e311afe5 Updated JSDocs 2020-09-11 15:16:37 +01:00
Richard Davey
2acfbfbe71 Gamepad._created is a new private internal property that keeps track of when the instance was created. This is compared to the navigator timestamp in the update loop to avoid event spamming. Fix #4890. 2020-09-11 14:01:55 +01:00
Richard Davey
5ecdc3b4a2 The GamepadPlugin will now call refreshPads as part of its start process. This allows you to use Gamepads across multiple Scenes, without having to wait for a connected event from each one of them. If you've already had a connected event in a previous Scene, you can now just read the pads directly via this.input.gamepad.pad1 and similar. Fix #4890 2020-09-11 14:00:14 +01:00
Richard Davey
00b799db23 Use Event const, not string. 2020-09-11 12:23:33 +01:00
Richard Davey
c90a3847e4 DataManager.Events.DESTROY is a new event that the Data Manager will _listen_ for from its parent and then call its own destroy method when received. 2020-09-11 12:21:39 +01:00
Richard Davey
ce236f0d69 ScaleManager.refresh is now called when the Game.READY event fires. This fixes a bug where the Scale Manager would have the incorrect canvas bounds, because they were calculated before a previous canvas was removed from the DOM. Fix #4905 2020-09-11 12:10:10 +01:00
Richard Davey
57657ce76c Updated JSDocs. Fix #5268 2020-09-11 11:08:43 +01:00
Richard Davey
56bbfbcb62 Removed capture and added preventDefaultDown, Up and Move instead. Also better passive handling and smaller listeners. 2020-09-11 10:59:47 +01:00
Richard Davey
0aea690497 Removed inputMouseCapture and added configs for inputMousePrventDefaultDown, Up and Move instead. 2020-09-11 10:59:20 +01:00
Richard Davey
3969d6e45a Updated JSDocs to cover situation in #3858 2020-09-11 10:08:22 +01:00
Richard Davey
a04690d5af The onMouse events in the Input Manager didn't reset the activePointer property to the mouse, meaning on dual-input systems such as Touch Screen devices, the active pointer would become locked to whichever input method was used first. Fix #4615 #5232 2020-09-11 09:48:13 +01:00
samme
ae5182be7d Default Phaser.Core.Config#audio; and refactor 2020-09-10 09:22:44 -07:00
Richard Davey
65faa34884 Merge branch 'master' of https://github.com/photonstorm/phaser 2020-09-10 17:05:05 +01:00
Richard Davey
205552d69c Fix namespaces. Fix #5289 2020-09-10 17:04:56 +01:00
Rex
f513f5bf31 Remove duplicated code
Adding game object  to UpdateList has been invoked in `displayList.add` by new ADDED_TO_SCENE event already.
2020-09-10 23:44:21 +08:00
Richard Davey
8b94cd71d6 Undo #5212 as it breaks all imports in webpack 2020-09-09 17:07:40 +01:00
Richard Davey
ea73a72b73 Restored animation complete key event. 2020-09-09 16:08:59 +01:00
Richard Davey
626a4e08f9 Update release version 2020-09-09 13:33:33 +01:00
Richard Davey
296dafebf5 No need for gl ref 2020-09-09 13:33:25 +01:00
Richard Davey
da4c387d86 Reference fixes 2020-09-09 13:21:38 +01:00
Richard Davey
6734932a32 Update PipelineManager.js 2020-09-09 13:09:25 +01:00
Richard Davey
7e840b2670 Removed all of the pipeline methods and added the Pipeline Manager instance 2020-09-09 13:05:18 +01:00
Richard Davey
52c2312455 Update PipelineManager.js 2020-09-09 13:05:18 +01:00
Richard Davey
2d3edc9512 Use the new Pipeline Manager methods 2020-09-09 13:05:18 +01:00
Richard Davey
e450bf2f1f Swap to using constants for pipeline names 2020-09-09 13:05:18 +01:00
Richard Davey
d198818d80 Game Objects now call the new Pipeline Manager methods directly 2020-09-09 13:05:18 +01:00
Richard Davey
4ea080e8a8 JSDoc fix 2020-09-09 13:05:17 +01:00
Richard Davey
7765016caa Pipeline constants so we can avoid using strings elsewhere 2020-09-09 13:05:17 +01:00
Richard Davey
d3e82f2d76 The new Pipeline Manager class 2020-09-09 13:05:17 +01:00
samme
b0ce62e2d8
Docs: correct type for Body#customBoundsRectangle 2020-09-08 18:44:12 -07:00
Richard Davey
8b2c9edce2 GenerateFrameNames can now accept the start and end parameters in reverse order, meaning you can now do { start: 10, end: 1 } to create the animation in reverse. 2020-09-08 13:40:20 +01:00
Richard Davey
b8d35d7cf0 Utils.Array.NumerArray can now accept the start and end parameters in reverse order, i.e. 10, 1 will generate a number array running from 10 to 1. Internally it has also been optimized to skip string based returns. 2020-09-08 13:02:16 +01:00
Richard Davey
dfb71fe2a6 Fixes to GenerateFrameNumbers
* `GenerateFrameNumbers` would include the __BASE frame by mistake in its calculations. This didn't end up in the final animation, but did cause a cache miss when building the animation.
* `GenerateFrameNumbers` can now accept the `start` and `end` parameters in reverse order, meaning you can now do `{ start: 10, end: 1 }` to create the animation in reverse.
2020-09-08 13:01:11 +01:00
Richard Davey
bd56b0bd59 Updated JSDocs 2020-09-08 12:17:45 +01:00
Richard Davey
09d96d4e5e Now only dispatches one single event per action. Also added getFrameName method. 2020-09-08 12:17:38 +01:00
Richard Davey
d476032e9f Animation no longer extends the EventEmitter 2020-09-08 12:17:18 +01:00
Richard Davey
bbbae648b9 Deleted un-used events, renamed Sprite events and added lots more documentation. 2020-09-08 12:16:39 +01:00
Richard Davey
cdd612a273 AnimationState has moved namespace to keep things logically together 2020-09-08 09:31:59 +01:00
Richard Davey
5344d39498 Better Group docs. Fix #5011 2020-09-07 16:40:05 +01:00
Richard Davey
4af38a4836
Merge pull request #5285 from samme/feature/arcade-config-fixedstep
Add ArcadeWorldConfig.fixedStep
2020-09-07 16:24:49 +01:00
Richard Davey
dc99fd03aa Don't create if vertices already provided. Fix #5280 2020-09-07 16:03:36 +01:00
Richard Davey
5224985e7f Update BitmapMaskPipeline.js 2020-09-07 16:03:18 +01:00
Richard Davey
bd19929006 JSDoc fix 2020-09-07 16:03:06 +01:00
Richard Davey
bc694ce4ac Beta 4 2020-09-07 15:34:04 +01:00
Richard Davey
98dc69ed23 Added in support for blending animations with addMix, getMix and removeMix. 2020-09-07 15:33:57 +01:00
Richard Davey
438fe3c0d1 No Update unless playing 2020-09-07 14:50:33 +01:00
Rex
a9e6604eb2 Support IE
IE and Firefox for Android do not have actualBoundingBoxAscent and actualBoundingBoxDescent properties.
Use origin solution to get ascent and descent.
2020-09-07 21:36:27 +08:00
Richard Davey
94298efc4d Because do/while loops are quite dangerous 2020-09-07 11:54:08 +01:00
Richard Davey
ec06e79b26 Catch stops 2020-09-07 11:52:37 +01:00
Richard Davey
2b374c7e14 AnimationState.skipMissedFrames is now used when playing an animation, allowing you to create animations that run at frame rates far exceeding the refresh rate, or that will update to the correct frame should the game lag. Close #4232 2020-09-07 11:32:55 +01:00
Richard Davey
ace5b8cafb Update Animation.js 2020-09-07 11:32:46 +01:00
Richard Davey
24beb01963 Update AnimationState.js 2020-09-07 10:26:16 +01:00
Richard Davey
6eae9ca598 Fixed reference 2020-09-07 10:26:10 +01:00
Richard Davey
70110825da Console warning if frame doesn't exist
* `GenerateFrameNames` will now console.warn if the generated frame isn't present in the texture, which should help with debugging animation creation massively.
* `GenerateFrameNumbers` will now console.warn if the generated frame isn't present in the texture, which should help with debugging animation creation massively.
2020-09-07 10:26:04 +01:00
Richard Davey
ad4f0ce0c4 Updated docs 2020-09-05 12:01:11 +01:00
Richard Davey
2cabbbd504 Renamed to AnimationState for clarity. 2020-09-05 11:45:00 +01:00
Richard Davey
b0872c188a The Component.Animation.updateFrame method has now been removed. Everything is handled by setCurrentFrame instead, which removes one extra step out of the update process. 2020-09-05 11:12:52 +01:00
Richard Davey
af0f207cbb Update BuildGameObjectAnimation.js 2020-09-04 17:16:51 +01:00
Richard Davey
a2d395661c GameObjects.Shape.Grid would render a white fill even if you passed undefined as the fill color in the constructor. It now doesn't render cells if no fill color is given. 2020-09-04 15:29:22 +01:00
Richard Davey
89332aad5f You can now create Animations directly on Sprite
* `Component.Animation.create` is a new method that allows you to create animations directly on a Sprite. These are not global and never enter the Animation Manager, instead risiding within the Sprite itself. This allows you to use the same keys across both local and global animations and set-up Sprite specific local animations.
* All playback methods: `play`, `playReverse`, `playAfterDelay` and `playAfterRepeat` will now check to see if the given animation key exists locally on the Sprite first. If it does, it's used, otherwise it then checks the global Animation Manager for the key instead.
* `Component.Animation.remove` is a new method that will remove a locally stored Animation instance from a Sprite.
* `Component.Animation.get` is a new method that will return a locally stored Animation instance from the Sprite.
* `Component.Animation.exists` is a new method that will check if a locally stored Animation exists on the Sprite.
* The internal `Component.Animation.remove` method has been renamed to `globalRemove`.
* `Component.Animation.textureManager` is a new property that references the global Texture Manager.
* `Component.Animation.anims` is a new property that contains locally created Animations in a Custom Map.
2020-09-04 14:03:57 +01:00
Richard Davey
cee9ca00eb Improved docs 2020-09-04 13:58:34 +01:00
Richard Davey
66f4ab69e7 When playing an animation in reverse, if it reached the first frame and had to repeat, it would then jump to the frame before the final frame and carry on, skipping out the final frame. 2020-09-04 13:06:00 +01:00
Richard Davey
cebd1d0101 Tidy up order 2020-09-04 11:52:19 +01:00
Richard Davey
5979864dc4 Use new method name and parameter order 2020-09-04 11:50:13 +01:00
Richard Davey
858ae68841 Removed startFrame, chain can take arrays, delayedPlay rename, playAfterRepeat method and playAfterDelay method. 2020-09-04 11:49:16 +01:00
Richard Davey
afef6da59c Exposed all of the new animation methods on a Sprite level 2020-09-04 11:48:17 +01:00
Richard Davey
1d798441f3 Support repeat count for stopping 2020-09-04 11:40:32 +01:00
Richard Davey
1a4b5b2779 AnimationManager.createFromAseprite is a new method that allows you to use animations created in the Aseprite editor directly in Phaser. 2020-09-04 00:02:51 +01:00
Richard Davey
1515357039 Lots of updates (see full description)
* `Component.Animation.timeScale` is a new public property that replaces the old private `_timeScale` property.
* `Component.Animation.delay` is a new public property that replaces the old private `_delay` property.
* `Component.Animation.repeat` is a new public property that replaces the old private `_repeat` property.
* `Component.Animation.repeatDelay` is a new public property that replaces the old private `_repeatDelay` property.
* `Component.Animation.yoyo` is a new public property that replaces the old private `_yoyo` property.
* `Component.Animation.inReverse` is a new public property that replaces the old private `_reverse` property.
* `Component.Animation.startAnimation` is a new public method that replaces the old private `_startAnimation` method.
* The `Component.Animation.getProgress` method has been fixed so it will return correctly if the animation is playing in reverse.
* The `Component.Animation.remove` method will now always be called when an animation is removed, not just once.
* The `Component.Animation.getRepeat` method has now been removed. You can get the value from the `repeat` property.
* The `Component.Animation.setRepeatDelay` method has now been removed. You can set the value using the `repeatDelay` config property, or changing it at run-time.
* `Component.Animation.complete` is a new method that handles the completion in animation playback.
* The `Component.Animation.setTimeScale` method has now been removed. You can set the value using the `timeScale` config property, or changing it at run-time.
* The `Component.Animation.getTimeScale` method has now been removed. You can read the value using the `timeScale` property.
* The `Component.Animation.getTotalFrames` method has been fixed and won't error if called when no animation is loaded.
* The `Component.Animation.setYoyo` method has now been removed. You can set the value using the `yoyo` config property, or changing it at run-time.
* The `Component.Animation.getYoyo` method has now been removed. You can read the value using the `yoyo` property.
2020-09-03 17:56:22 +01:00
Richard Davey
13601ad31b Removed completeAnimation, load and setFrame and updated other methods to use new component properties. 2020-09-03 17:44:46 +01:00
Richard Davey
96bc2e89d3 Removed load and fixed staggerPlay 2020-09-03 17:42:10 +01:00
Richard Davey
b4b5338f28 Added playReverse, delayedPlay and stop methods and better docs. 2020-09-03 17:38:36 +01:00
Richard Davey
33cc87121c The BuildGameObjectAnimation function now uses the PlayAnimationConfig object to set the values. 2020-09-03 17:37:21 +01:00
Richard Davey
050c2a61b6 Fixed data-type 2020-09-03 17:36:36 +01:00
Richard Davey
b9e5f3e9bc GroupCreateConfig, which is used when calling Group.createMultiple or Group.createFromConfig, can now accept the following new properties: setOrigin: { x, y, stepX, stepY } which are applied to the items created by the Group. 2020-09-03 17:36:05 +01:00
Richard Davey
f505f6a3e3 Actions.setOrigin will now call updateDisplayOrigin on the items array, otherwise the effects can't be seen when rendering. 2020-09-03 17:34:16 +01:00
samme
803c300ae4 Add ArcadeWorldConfig.fixedStep 2020-09-03 07:32:44 -07:00
Richard Davey
15c6e7718c New Animation events 2020-09-03 15:04:09 +01:00
Richard Davey
28c6635ea3 Utils.Array.SortByDigits is a new function that takes the given array of strings and runs a numeric sort on it, ignoring any non-digits. 2020-09-03 15:01:55 +01:00
Richard Davey
bba8285665 Return type fix 2020-09-03 11:27:12 +01:00
Richard Davey
d92195a8b8 Default rotation as well 2020-09-02 22:55:51 +01:00
Richard Davey
1562525a51 When using Camera.setRenderToTexture its zoom value would be applied twice. Fix #4221 2020-09-02 22:50:27 +01:00
Richard Davey
cf17dbe7e9 Previously, the easeParams array within a Tweens props object, or a multi-object tween, were ignored and it was only used if set on the root Tween object. It will now work correctly set at any depth. Fix #4292 2020-09-02 22:27:40 +01:00
Richard Davey
5e9b629a97
Merge pull request #5284 from samme/feature/scene-resume-wake-reset-keys
Reset keys when scene sleeps or pauses
2020-09-02 21:50:42 +01:00
Richard Davey
070fc70fe7 Lint fix 2020-09-02 18:07:21 +01:00
Richard Davey
e01f310d16 Added new properties, support for config playback and better delayed handling 2020-09-02 17:56:09 +01:00
Richard Davey
a2f0c2e7e3 Added getTotalFrames and calculateDuration methods. 2020-09-02 17:43:44 +01:00
Richard Davey
90fbb0f13d Updated jsdocs for play to show it can take the new config 2020-09-02 17:41:43 +01:00
Richard Davey
fe74eb70f7 Create PlayAnimationConfig.js 2020-09-02 17:41:23 +01:00
Richard Davey
f58f94ecf6 Formatting 2020-09-02 14:42:26 +01:00
Richard Davey
ace0ee7bab Fixed JSDoc event names 2020-09-02 12:34:58 +01:00
Richard Davey
8f8a90bedd Utils.Array.StableSort has been recoded. It's now based on Two-Screens stable sort 0.1.8 and has been updated to fit into Phaser better and no longer create any window bound objects. The inplace function has been removed, just call StableSort(array) directly now. All classes that used StableSort.inplace have been updated to call it directly. 2020-09-02 12:24:27 +01:00
Richard Davey
27fd496e8f Updated to stablesort 0.1.8 and recoded to fit our style. Removed inplace static function. 2020-09-02 12:21:36 +01:00
Richard Davey
0d934c730e Every single Tilemap.Component function has now been made public. This means you can call the Component functions directly, should you need to, outside of the Tilemap system. 2020-09-02 11:54:24 +01:00
Richard Davey
2980a416c9
Merge pull request #5278 from samme/fix/arcade-body-resetFlags
Reset flags when resetting an Arcade Body
2020-09-02 11:11:34 +01:00
samme
288d023bab Reset keys when scene sleeps or pauses #5281 2020-09-01 12:42:57 -07:00
Richard Davey
07865a5823 Final set of namespace changes. Fix #5062 2020-09-01 20:28:42 +01:00
Richard Davey
d2cc809fdb Exported functions to namespace 2020-09-01 18:56:01 +01:00
Richard Davey
da3f9b22c3 Exposed on the main API namespace 2020-09-01 18:38:57 +01:00
Richard Davey
302a49863b Improved jsdocs 2020-09-01 18:38:44 +01:00
Richard Davey
5b96ade1c7 Types.GameObjects.Text.GetTextSizeObject 2020-09-01 18:38:35 +01:00
Richard Davey
506426f706 The Color.HSVToRGB function has been rewritten to use the HSL and HSV formula from Wikipedia, giving much better results. Fix #5089 2020-09-01 18:06:23 +01:00
Richard Davey
02ac6bcb7d If inputWindowEvents is set in the Game Config, then the MouseManager will now listen for the events on window.top instead of just window, which should help in situations where the pointer is released outside of an embedded iframe. Fix #4824 2020-09-01 17:51:17 +01:00
Richard Davey
4c353571ca Removed protected status 2020-09-01 17:44:07 +01:00
Richard Davey
84a867c2ac ArcadePhysics.disableUpdate is a new method that will prevent the Arcade Physics World update method from being called when the Scene updates. By disabling it, you're free to call the update method yourself, passing in your own delta and time values.
`ArcadePhysics.enableUpdate` is a new method that will make the Arcade Physics World update in time with the Scene update. This is the default, so only call this if you have specifically disabled it previously.
2020-09-01 17:42:38 +01:00
Richard Davey
d3778bb4bb ArcadeWorldConfig.customUpdate is a new boolean property you can set in the Arcade Physics config object, either in the Scene or in the Game Config. If true the World update will never be called, allowing you to call it yourself from your own component. Close #5190 2020-09-01 17:42:19 +01:00
Richard Davey
18cdb5e618 The Animation.play and playReverse methods have a new optional parameter timeScale. This allows you to set the Animations time scale as you're actually playing it, rather than having to chain two calls together. Close #3963 2020-09-01 17:00:16 +01:00
Richard Davey
6aef37572d WebGLRenderer.previousPipeline is a new property that is set during a call to clearPipeline and used during calls to rebindPipeline, allowing the renderer to rebind any previous pipeline, not just the Multi Pipeline.
The `WebGLRenderer.rebindPipeline` method has been changed slightly. Previously, you had to specify the `pipelineInstance`, but this is now optional. If you don't, it will use the new `previousPipeline` property instead. If not set, or none given, it will now return without throwing gl errors as well.
2020-09-01 13:05:31 +01:00
samme
11c0520d36 Clear wasTouching when resetting body 2020-08-29 11:56:15 -07:00
Richard Davey
9451ac0285 Group.getMatching is a new method that will return any members of the Group that match the given criteria, such as getMatching('visible', true) 2020-08-29 11:00:55 +01:00
samme
57ee895437 Reset flags during reset 2020-08-27 12:35:01 -07:00
Richard Davey
ab83fd7e38 Tween.seek will no longer issue a console warning for 'Tween.seek duration too long', it's now up to you to check on the performance of tween seeking. 2020-08-26 13:50:54 +01:00
Richard Davey
80c571963c Textures.Parsers.JSONHash will now perform a hasOwnProperty check when iterating the frames, skipping anything that isn't a direct property. This should allow you to use generated atlas data that comes from JSON.parse. Fix #4768 2020-08-26 13:06:04 +01:00
Richard Davey
55e56b1eff Clock.addEvent can now take an existing TimerEvent object, as well as a config object. If a TimerEvent is given it will be removed from the Clock, reset and then added. This allows you to pool TimerEvents rather than constantly create and delete them. Fix #4115
`Clock.removeEvent` is a new method that allows you to remove a `TimerEvent`, or an array of them, from all internal lists of the current Clock.
2020-08-26 10:58:06 +01:00
Richard Davey
809b8a41d9 The WebGLRenderer.updateCanvasTexture method will now set gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL to true, which should stop issues where you update a Text Game Object, having added a Render Texture or Spine Game Object to the Scene after it, which switches the PMA setting. Fix #5064 2020-08-26 00:19:19 +01:00
Richard Davey
791704febe WebGLRenderer.finalType is a new boolean property that signifies if the current Game Object being rendered is the final one in the list. 2020-08-25 18:24:42 +01:00
Richard Davey
0bbe67dafd When using the GameObjectCreator for Containers you can now specify the children property in the configuration object. 2020-08-25 15:51:11 +01:00
Richard Davey
de0133e3cc Spine Game Objects can now be rendered to Render Textures. Fix #5184 2020-08-25 14:11:37 +01:00
Richard Davey
ca99c4564f Added reset property to Bind to get new vertex attrib locations 2020-08-25 13:24:56 +01:00
Richard Davey
e4ec0bd182 Bumped version (and added source-map) 2020-08-25 13:24:20 +01:00
Richard Davey
7d1ad38b4a Updated shader names 2020-08-25 13:23:59 +01:00
Richard Davey
7e572c3577 Improves JSDocs 2020-08-25 09:54:09 +01:00
Richard Davey
1f50b49eff Earcut has now been exposed and is available via Geom.Polygon.Earcut and is fully documented. 2020-08-25 09:54:03 +01:00
Richard Davey
795a190ce3 The BaseShader default vertex shader now includes the outTexCoord vec2 varying, mapped to be the same as that found in the pipeline shaders. Fix #5120 2020-08-24 19:51:20 +01:00
Richard Davey
cda4f05fb9
Merge pull request #5272 from jaabberwocky/fix-animationmanager-docs
Fix typo for documentation on create method of AnimationManager
2020-08-24 19:33:33 +01:00
Richard Davey
157be83f7c The Container will now test to see if any Game Object added to it is already on the display list, or not, and emit its ADDED and REMOVED events accordingly. Fix #5267 #3876 2020-08-24 19:26:19 +01:00
Richard Davey
3bd91ea3de Update ParticleManagerCreator.js 2020-08-24 19:24:11 +01:00
Richard Davey
a9072cadf2 Sprite, Rope, ParticleEmitterManager, Extern and DOMElement now all override the addedToScene and removedFromScene callbacks to handle further set-up tasks. 2020-08-24 19:24:02 +01:00
Richard Davey
f4259deb37 DOMElementFactory, ExternFactory, ParticleManagerFactor, RopeFactory and SpriteFactory all no longer add the objects to the Update List, this is now handled by the ADDED events instead. 2020-08-24 19:22:58 +01:00
Richard Davey
7b83d31cae The Update List now uses the new checkQueue property to ensure no duplicate objects are on the active list. 2020-08-24 19:21:35 +01:00
Richard Davey
7f5e4d4538 ProcessQueue.checkQueue is a new boolean property that will make sure only unique objects are added to the Process Queue. 2020-08-24 19:21:01 +01:00
Richard Davey
19c4980c5b GameObjectFactory.events is a new property that references the Scene's Event Emitter. This is now used internally. 2020-08-24 19:20:20 +01:00
Richard Davey
0b9dd4aae7 GameObjectCreator.events is a new property that references the Scene's Event Emitter. This is now used internally. 2020-08-24 19:19:19 +01:00
Richard Davey
671c92e450 Added addedToScene and removedFromScene methods
* `GameObject.addedToScene` is a new method that custom Game Objects can use to perform additional set-up when a Game Object is added to a Scene. For example, Sprite uses this to add itself to the Update List.
* `GameObject.removedFromScene` is a new method that custom Game Objects can use to perform additional tear-down when a Game Object is removed from a Scene. For example, Sprite uses this to remove themselves from the Update List.
* Game Objects no longer automatically remove themselves from the Update List during `preDestroy`. This should be handled directly in the `removedFromScene` method now.
2020-08-24 19:18:29 +01:00
Richard Davey
bc93416ec7 Added events property and new add and remove callbacks
* `DisplayList.events` is a new property that references the Scene's Event Emitter. This is now used internally.
* `DisplayList.addChildCallback` is a new method that overrides the List callback and fires the new ADDED events.
* `DisplayList.removeChildCallback` is a new method that overrides the List callback and fires the new REMOVED events.
2020-08-24 19:15:53 +01:00
Richard Davey
ae4ed0ac54 Expose the new events 2020-08-24 19:13:18 +01:00
Richard Davey
48f94be449 Scenes.Events.REMOVED_FROM_SCENE is a new event, emitted by a Scene, when it a Game Object is removed from the display list in the Scene, or a Container that is on the display list. 2020-08-24 19:13:06 +01:00
Richard Davey
1423ade7b3 Scenes.Events.ADDED_TO_SCENE is a new event, emitted by a Scene, when a new Game Object is added to the display list in the Scene, or a Container that is on the display list. 2020-08-24 19:12:54 +01:00
Richard Davey
98cd70cd6c GameObjects.Events.REMOVED_FROM_SCENE is a new event, emitted by a Game Object, when it is removed from a Scene, or a Container that is part of the Scene. 2020-08-24 19:11:22 +01:00
Richard Davey
ef91518da5 GameObjects.Events.ADDED_TO_SCENE is a new event, emitted by a Game Object, when it is added to a Scene, or a Container that is part of the Scene. 2020-08-24 19:10:50 +01:00
tobias
9f1cd22882 Fix typo for documentation on create method of AnimationManager on line 190 2020-08-25 00:43:22 +08:00
Richard Davey
e93d36f38e The Pointer.getDuration method now uses the new Pointer downTime and upTime values, meaning it will accurately report the duration of when any button is being held down, not just the primary one. Fix #5112
* `Pointer.downTime` now stores the event timestamp of when the first button on the input device was pressed down, not just when button 1 was pressed down.
* `Pointer.upTime` now stores the event timestamp of when the final depressed button on the input device was released, not just when button 1 was released.
2020-08-24 17:32:21 +01:00
Richard Davey
2af65b2a1d Improved JSDocs and types. Fix #5217 2020-08-24 15:04:00 +01:00
Richard Davey
1766f66984 Update JSDocs 2020-08-24 14:58:24 +01:00
Richard Davey
f586cd472a global.Phaser = Phaser has been removed, as it's no longer required by the UMD loader, which should make importing in Angular 10 easier. Fix #5212 2020-08-24 14:47:53 +01:00
halilcakar
7593a80880 Merge branch 'master' of https://github.com/photonstorm/phaser 2020-08-22 13:25:32 +03:00
Richard Davey
3484ded2b7 You can now use this.renderer from within a Scene, as it's now a Scene-level property and part of the Injection Map. 2020-08-22 10:33:46 +01:00
Richard Davey
0cd4d0fc54 Update WebGLRenderer.js 2020-08-21 16:23:04 +01:00
Richard Davey
9a1dc640f8 Fix gl access 2020-08-21 16:17:29 +01:00
Richard Davey
0dd07333af Updated to use MultiPipeline 2020-08-21 16:14:59 +01:00
Richard Davey
5c39254f36 Testing new config approach 2020-08-21 16:04:26 +01:00
Richard Davey
209b39b38c New pipeline names and single texture flag 2020-08-21 16:03:29 +01:00
Richard Davey
468c03dfe5 Much better docs and handling of config values 2020-08-21 16:03:07 +01:00
Richard Davey
4b4af50ca9 Quicker return 2020-08-21 16:02:43 +01:00
Richard Davey
37fdde7911 New typedefs for pipeline configs 2020-08-21 16:02:30 +01:00
Richard Davey
600385ac29 A brand new pipeline for single-texture custom pipelines 2020-08-21 16:01:53 +01:00
Richard Davey
57040554ef Renamed the pipelines to make them less ambiguous and sorted out lots of config properties 2020-08-21 16:01:39 +01:00
Richard Davey
8f5ee5391f Removed redundant consts 2020-08-21 15:59:41 +01:00
Richard Davey
6435772646 Shaders renamed to match new pipeline names 2020-08-21 15:41:12 +01:00
Richard Davey
14ad202adc Use new Utils function 2020-08-21 09:44:52 +01:00
Richard Davey
8edbbb2e2d Renderer.WebGL.Utils.parseFragmentShaderMaxTextures is a new function that will take fragment shader source and search it for %count% and %forloop% declarations, replacing them with the required GLSL for multi-texture support, returning the modified source. 2020-08-21 09:44:43 +01:00
Rex
29e317db39 Get ascent and descent from context.measureText method
Get ascent and descent from context.measureText method instead of scanning image data.
2020-08-21 10:42:24 +08:00
halilcakar
8aa54e86a0 Remove console.log 2020-08-20 23:29:15 +03:00
halilcakar
b4e1b5af77 Fix for #5019 2020-08-20 15:27:29 +03:00
Richard Davey
84ef02743b The WebGL Renderer will now add the pipelines during the boot method, instead of init. 2020-08-20 10:48:30 +01:00
Richard Davey
e3142f313f WebGLPipeline.hasBooted is a new boolean property that tracks if the pipeline has been booted or not, which is now far more important in 3.5 than in previous versions. This is checked in the WebGLRenderer.addPipeline method, and if not set, the pipeline is booted. Fix #5251 #5255 2020-08-20 10:47:21 +01:00
Richard Davey
50c629dca8 Merge branch 'master' of https://github.com/photonstorm/phaser 2020-08-20 10:22:43 +01:00
Richard Davey
8c55fc7ee2 TweenManager.getTweensOf has a new parameter includePending. If set, it will also check the pending tweens for the given targets and return those in the results as well. Fix #5260 2020-08-20 10:22:35 +01:00
Richard Davey
ed33253fb1
Merge pull request #5235 from mk360/text-padding
[types] allow Text#setPadding to receive an object
2020-08-20 10:04:35 +01:00
Richard Davey
c98a43c9d4
Merge pull request #5258 from khasanovbi/font
Allow to pass font in TextStyle
2020-08-20 10:03:02 +01:00
Richard Davey
733de64d46
Merge pull request #5257 from halilcakar/master
Fix incorrect event names in ProcessQueue.js#205, 222
2020-08-20 09:57:08 +01:00
Richard Davey
ab605eed78 Remove false import 2020-08-19 13:19:07 +01:00
Richard Davey
b1b8a74cf9 RenderTexture.fill would fail to fill the correct area under WebGL if the RenderTexture wasn't the same size as the Canvas. It now fills the given region properly. 2020-08-19 13:14:36 +01:00
Richard Davey
2db1496511 Geom.Polygon.Simplify is a new function that takes a polygon and simplifies the points by running them through a combination of Douglas-Peucker and Radial Distance algorithms, potentially dramatically reducing the number of points while retaining its shape. 2020-08-18 18:05:45 +01:00
Richard Davey
305ea40baf Update GetRaysFromPointToPolygon.js 2020-08-18 18:05:38 +01:00
Richard Davey
616dbfceb5 Earcut, used for polygon triangulation, has been updated from 2.1.4 to 2.2.2. 2020-08-18 17:24:45 +01:00
Richard Davey
995cfb6271 Expose new function 2020-08-18 17:05:12 +01:00
Richard Davey
74f24a06f3 Use new GetLineToPoints function 2020-08-18 17:05:06 +01:00
Richard Davey
1a1275958f Only test unique angles 2020-08-18 17:04:55 +01:00
Richard Davey
4678fc7186 Geom.Intersects.GetLineToPoints is a new function that checks for the closest point of intersection between a line segment and an array of points, where each pair of points form a line segment. 2020-08-18 17:04:32 +01:00
Richard Davey
06c92f9af8 Geom.Intersects.GetRaysFromPointToPolygon is a new function that emits rays out from the given point and detects for intersection against all given polygons, returning the points of intersection in the results array. 2020-08-17 15:05:46 +01:00
Richard Davey
ceb96665b8 Bumped version 2020-08-17 15:05:39 +01:00
mk360
748e699d43 update setPadding jsdoc 2020-08-10 08:21:26 +03:00
Bulat Khasanov
8e1b5e757d Allow to pass font in TextStyle 2020-08-09 23:34:31 +03:00
halilcakar
6915fd3420 Fix incorrect event names in ProcessQueue.js#205, 222 2020-08-09 19:55:09 +03:00
Richard Davey
7cc616c7b8 Bump version 2020-08-06 17:07:16 +01:00
Richard Davey
75da5b2f22 Reset all textures on rebind, which is what Externs need when finishing 2020-08-06 17:06:26 +01:00
Richard Davey
e77639561b Use charIndex, not i 2020-08-06 17:06:10 +01:00
Richard Davey
6aaf54e8a7 Don't add frame if empty 2020-08-05 14:15:01 +01:00
Richard Davey
96a64eae4e ParseXMLBitmapFont has a new optional parameter texture. If defined, this Texture is populated with Frame data, one frame per glyph. This happens automatically when loading Bitmap Text data in Phaser. 2020-08-05 12:46:28 +01:00
Richard Davey
d98d305e2f Frame.setUVs is a new method that allows you to directly set the canvas and UV data for a frame. Use this if you need to override the values set automatically during frame creation. 2020-08-05 12:45:07 +01:00
Richard Davey
a2c9c3cef6 Fix char right adjustment 2020-08-05 11:48:25 +01:00
Richard Davey
00e5c5fe0f Update BitmapTextSize.js 2020-08-04 11:25:10 +01:00
Richard Davey
ee01d36918 Update BitmapTextCharacter.js 2020-08-04 11:25:07 +01:00
Richard Davey
1db3ba72f8 Cache shadow values 2020-08-04 11:25:03 +01:00
Richard Davey
50dcc624df Get Character using char top, right and bottom 2020-08-04 11:24:56 +01:00
Richard Davey
1ae0cfc619 Include char top, right and bottom values 2020-08-04 11:24:43 +01:00
Richard Davey
380cc422b2 The ScaleManager.updateBounds method is now called every time the browser fires a 'resize' or 'orientationchange' event. This will update the offset of the canvas element Phaser is rendering to, which is responsible for keeping input positions correct. However, if you change the canvas position, or visibility, via any other method (i.e. via an Angular route) you should call the updateBounds method directly, yourself. 2020-08-04 10:35:29 +01:00
samme
981a4b1a0a Rename all setInteractive() arguments, and docs 2020-08-03 13:33:30 -07:00
Richard Davey
0d04e40e28 Updated jsdocs 2020-08-03 17:54:40 +01:00
Richard Davey
111a4e1ce2 Calling Rectangle.setSize() wouldn't change the underlying geometry of the Shape Game Object, causing any stroke to be incorrectly rendered after a size change. 2020-08-03 17:54:29 +01:00
Richard Davey
47a62cd30c If you apply setSize to the Dynamic BitmapText the scissor is now calculated based on the parent transforms, not just the local ones, meaning you can crop Bitmap Text objects that exist within Containers. Fix #4653 2020-08-03 11:33:41 +01:00
Richard Davey
2f574070d5 Setting the color value in the DynamicBitmapText.setDisplayCallback would inverse the red and blue channels if the color was not properly encoded for WebGL. It is now encoded automatically, meaning you can pass normal hex values as the colors in the display callback. Fix #5225 2020-08-03 10:53:27 +01:00
Richard Davey
0402717834 Expose new function 2020-08-03 10:49:27 +01:00
Richard Davey
ec845ce015 Use GetColorFromValue 2020-08-03 10:49:05 +01:00
Richard Davey
6a32ff56f3 Display.Color.GetColorFromValue is a new function that will take a hex color value and return it as an integer, for use in WebGL. This is now used internally by the Tint component and other classes. 2020-08-03 10:48:52 +01:00
Richard Davey
0266c7f0a2 Updated docs #5231 2020-08-03 10:37:01 +01:00
Richard Davey
8db2543e27
Merge pull request #5242 from samme/fix/collide-with-friction
Fix collisions for objects moved by friction
2020-08-03 10:27:01 +01:00
Richard Davey
08e346952a
Merge pull request #5234 from samme/patch-4
Docs: Phaser.Physics.Arcade.Group#defaults
2020-08-03 10:23:15 +01:00
Richard Davey
da05cfa1ad
Merge pull request #5244 from 16patsle/Fix_Text_types
Fix types for Text, TextFactory and TextCreator
2020-08-03 10:20:40 +01:00