Commit graph

11783 commits

Author SHA1 Message Date
Richard Davey
5d77e1fdc8 Particle.fire will now check to see if the parent Emitter is set to follow a Game Object and if so, and if the x/y EmitterOps are spread ops, then it'll space the particles out based on the follower coordinates, instead of clumping them all together. Fix #5847 2022-11-23 00:29:12 +00:00
Richard Davey
5f35c016f3 Upgrade Earcut
Earcut has been updated to version 2.2.4. This release improves performance by 10-15% and fixes 2 rare race conditions that could leave to infinite loops. Earcut is used internally by Graphics and Shape game objects when triangulating polygons for complex shapes.
2022-11-22 23:51:20 +00:00
Richard Davey
64ede38b9d Added more docs confirming overrides. Fix #6046 2022-11-22 23:37:20 +00:00
Richard Davey
03b1ed62d1 When using RTL (right-to-left) Text Game Objects, the Text would vanish on iOS15+ if you changed the text or font style. The context RTL properties are now restored when the text is updated, fixing this issue. Fix #6121 2022-11-22 22:58:48 +00:00
Richard Davey
886920155b Add generics 2022-11-22 21:55:30 +00:00
Richard Davey
49c2f106b5 Swapped to non-instance based checks and added generics 2022-11-22 20:35:59 +00:00
Richard Davey
9bdf022bed The BaseSoundManager.getAll method used to require a key parameter, to return Sounds matching the key. This is now optional and if not given, all Sound instances are returned. 2022-11-22 18:49:37 +00:00
Richard Davey
320317c884 The WebAudioSoundManager will now detect if the Audio Context enters a 'suspended' or 'interrupted' state as part of its update loop and if so it'll try to resume the context. This can happen if you change or disable the audio device, such as plugging in headphones with built-in audio drivers then disconnecting them, or swapping tabs on iOS. Fix #5353 2022-11-22 18:38:49 +00:00
Richard Davey
ee2b5f5e35 Clarify jsdocs. Fix #6043 2022-11-22 18:26:13 +00:00
Richard Davey
9357b8e609 The RenderTarget class will now create a Framebuffer that includes a Depth Stencil Buffer attachment by default. Previously, it didn't. By attaching a stencil buffer it allows things like Geometry Masks to work in combination with Post FX and other Pipelines. Fix #5802 2022-11-22 18:13:03 +00:00
Richard Davey
e7efa068a7 Previously, calling createBitmapMask on a Shape Game Object would fail unless you passed the shape to the method. Now, it will correctly create a mask from the Shape without needing to pass it. Fix #5976 2022-11-22 17:40:56 +00:00
Richard Davey
95ef3f9c25 Update Container.js 2022-11-22 00:19:02 +00:00
Richard Davey
436a42cfb4 The InputPlugin.sortGameObjects method was using the Camera Render List to determine the Game Object display list. This would exclude non-rendering objects, such as Game Objects with alpha set to zero, even if their Input alwaysEnable flag was set. This method now uses the Display List instead, which gives correct results for invisible 'always enabled' objects. Fix #5507 2022-11-21 23:26:44 +00:00
Richard Davey
154e262ae8 No point doing this twice 2022-11-21 22:46:01 +00:00
Richard Davey
45fbebb53a BaseSoundManager.getAllPlaying is a new method that will return all currently playing sounds in the Sound Manager.
Fix #6147
2022-11-21 21:38:54 +00:00
Richard Davey
d71b53a7f5 Updated jsdocs. Fix #5981 2022-11-18 22:14:59 +00:00
Richard Davey
0f4bd028ce Corrected jsdocs. Fix #6113 2022-11-18 22:09:05 +00:00
Richard Davey
d4b386aa90 Added generics to Container 2022-11-18 22:04:39 +00:00
Richard Davey
84cdbdd560 Added generics. Fix #6140 2022-11-18 21:30:28 +00:00
Richard Davey
b28eaf8da7 Added generics to Scene Manager functions. Fix #5662 2022-11-17 22:13:24 +00:00
Richard Davey
d48f548472 TS defs update. Fix #5665 2022-11-17 18:40:24 +00:00
Richard Davey
e608c2caf1 The CONTEXT_RESTORED Game Event has been removed and the WebGL Renderer no longer listens for the contextrestored DOM event, or has a contextRestoredHandler method. This never actually worked properly, in any version of Phaser 3 - although the WebGLRenderer would be restored, none of the shaders, pipelines or textures were correctly re-created. If a context is now lost, Phaser will display an error in the console and all rendering will halt. It will no longer try to re-create the context, leading to masses of WebGL errors in the console. Instead, it will die gracefully and require a page reload. 2022-11-17 18:04:51 +00:00
Richard Davey
1b8495f4ec Update TweenChain.js 2022-11-17 17:31:25 +00:00
Richard Davey
c9d7a76998 The Light fragment shader will now use the outTintEffect attribute meaning the Light Pipeline will now correctly light both tinted and fill-tinted Game Objects. Fix #5452 2022-11-17 17:25:47 +00:00
Richard Davey
8c7c8ee2a4 The batchLine method in the Multi Pipeline will now check to see if the dxdy len is zero, and if so, it will abort drawing the line. This fixes issues on older Android devices, such as the Samsung Galaxy S6 or Kindle 7, where it would draw erroneous lines leading up to the top-left of the canvas under WebGL when rendering a stroked rounded rectangle. Fix #5429 2022-11-17 16:49:10 +00:00
Richard Davey
ce12d63d01 The Tilemap.destroyLayer method would throw an error "TypeError: layer.destroy is not a function". It now correctly destroys the TilemapLayer. Fix #6268 2022-11-17 14:34:46 +00:00
Richard Davey
759599e4d1 MapData and ObjectLayer will now enforce that the Tilemap.objects property is always an array. Sometimes Tiled willl set it to be a blank object in the JSON data. This fix makes sure it is always an array. Fix #6139 2022-11-17 14:28:23 +00:00
Richard Davey
05845c6ee0 The ParseJSONTiled function will now run a DeepCopy on the source Tiled JSON, which prevents object mutation, fixing an issue where Tiled Object Layer names would be duplicated if used across multiple Tilemap instances. Fix #6212 2022-11-17 14:17:58 +00:00
Richard Davey
2f720246ab Reset the buffer and textures on rebind. 2022-11-15 21:54:43 +00:00
Richard Davey
6220d9b18d Fake this flag to allow Bobs to get a physics body. Fix #6284 2022-11-14 21:41:37 +00:00
Richard Davey
11def7bf38 Added addMultiple and removed ability from add and chain to pass in arrays of configs 2022-11-14 17:04:05 +00:00
Dmitry Omelchenko
4f30e0b5b9 fix advancedWordWrap concatenate when wrapping 2022-11-12 17:30:27 +02:00
Richard Davey
c5e10cd3f1 Fix #6052 2022-11-10 22:14:18 +00:00
Richard Davey
cfc8e4df3d Preparing for Beta 15 2022-11-10 16:21:07 +00:00
Richard Davey
064e8a3ec2 Fixed type issues 2022-11-10 16:05:20 +00:00
Richard Davey
c546a38ae2 Updated jsdocs 2022-11-10 15:10:50 +00:00
Richard Davey
465bf07334 The GameObjects.Components.Mask.createBitmapMask method can now accept the x, y, texture and frame parameters new to the BitmapMask constructor. 2022-11-10 15:09:27 +00:00
Richard Davey
b457e42a2f The Light Pipeline will now check to see if a Light2D enabled Game Object has a parent Container, or not, and factor the rotation and scale of this into the light calculation. Fix #6086 2022-11-09 18:18:35 +00:00
Richard Davey
6b9872fb33 The method Color.setFromHSV would not change the members h, s and v, only the RGB properties. It now correctly updates them both. Fix #6276 2022-11-09 16:30:38 +00:00
Richard Davey
778b3e7f52 Allow key presses during pre-create stage 2022-11-08 23:32:58 +00:00
Richard Davey
987e769b6b Scenes.Systems.canInput is a new internal method that determines if a Scene can receive Input events, or not. This is now used by the InputPlugin instead of the previous isActive test. This allows a Scene to emit and handle input events even when it is running init or preload. Previously, it could only do this after create had finished running. Fix #6123 2022-11-08 23:21:33 +00:00
Richard Davey
b182557d03 Added canInput method 2022-11-08 23:21:25 +00:00
Richard Davey
6943989f46 The BitmapText Game Object has two new read-only properties displayWidth and displayHeight. This allows the BitmapText to correctly use the GetBounds component.
The `BitmapText` Game Object now has the `GetBounds` component added to it, meaning you can now correctly get its dimensions as part of a Container. Fix #6237
2022-11-08 18:42:05 +00:00
Richard Davey
3b57593e47 When calling GameObject.getPostPipeline and passing in a string for the pipeline name it would error with 'Uncaught TypeError: Right-hand side of 'instanceof' is not an object'. This is now handled correctly internally 2022-11-08 18:10:16 +00:00
Richard Davey
6bde2f2706
Merge pull request #6273 from samme/patch-17
Docs: correct example code in FILE_KEY_COMPLETE
2022-11-08 18:04:22 +00:00
Richard Davey
ed5759b846 Improve jsdocs and restrict Tween.updateTo to active Tweens only. Fix #6009 2022-11-08 18:03:33 +00:00
Richard Davey
70fff93516 Reset TD on loop 2022-11-06 22:00:56 +00:00
Richard Davey
d7a15e92a6 Added activeBuffer and activeTextures check to avoid gl ops 2022-11-03 22:05:18 +00:00
Richard Davey
2d81a4a50e Reverting to forloop shader 2022-11-03 22:04:58 +00:00
Richard Davey
528e32a18a Reverting to forloop approach 2022-11-03 22:04:44 +00:00
Richard Davey
65e8dcbb6b Fix conditional check 2022-11-03 18:45:11 +00:00
Richard Davey
4e4218ea73 Add missing parameter 2022-11-03 18:45:03 +00:00
Richard Davey
6724cc6e91 texture can be a string, or a string in the properties block 2022-11-03 18:44:54 +00:00
Richard Davey
2a8250ef60 Modified return types to 'this' 2022-11-03 16:03:51 +00:00
Richard Davey
8ea3e09307 Removed global functions and tidied up 2022-11-03 15:22:50 +00:00
Richard Davey
2ca2bd5535 Added setStateFromEnd, setStateFromStart, reset and onRepeat 2022-11-03 15:22:37 +00:00
Richard Davey
4d4f3aeadc reset should return this 2022-11-03 15:22:10 +00:00
Richard Davey
755517f80b Removed init method - let's just call reset directly 2022-11-03 15:22:02 +00:00
Richard Davey
ce1cc86185 Add isSeeking parameter 2022-11-03 14:26:38 +00:00
Richard Davey
1ca43444f4 Only reset property if seeking 2022-11-03 14:26:30 +00:00
Richard Davey
9f0baeaab7 Update TweenManager.js 2022-11-03 13:24:51 +00:00
Richard Davey
b9004eff67 Made getValue more bullet proof 2022-11-03 13:24:48 +00:00
Richard Davey
e921c61b39 Improved jsdocs and removed this.delta property as we don't need to store it internally 2022-11-03 13:17:39 +00:00
Richard Davey
36c65618d7 Safer seek loop 2022-11-03 12:56:58 +00:00
Richard Davey
b7a109bd26 Updated docs to remove frame reference and add clarity 2022-11-03 12:45:10 +00:00
Richard Davey
fc007d39ef Updated docs and seeking 2022-11-02 19:00:16 +00:00
Richard Davey
57a49934af Use reset now 2022-11-02 19:00:08 +00:00
Richard Davey
a679efe03f Use MAX const 2022-11-02 18:03:07 +00:00
Richard Davey
2daa8c9853 New reset and seek methods 2022-11-02 18:03:01 +00:00
Richard Davey
9f89de4594 New reset method that fully resets this TweenData 2022-11-02 18:02:52 +00:00
Richard Davey
a7827ba52e Use MAX const 2022-11-02 18:02:28 +00:00
Richard Davey
3f0a466a8d Added MAX const 2022-11-02 18:02:18 +00:00
Richard Davey
59b0ca98bf Added isInfinite and redid seek handling. Added forward and rewind. 2022-11-02 13:35:30 +00:00
Richard Davey
3d9ac51338 Clamp the progress between 0 and 1 2022-11-02 13:34:55 +00:00
samme
0ba6261eff
Docs: correct example code in FILE_KEY_COMPLETE
AtlasJSONFile type is `atlasjson`
2022-11-01 20:16:10 -07:00
Richard Davey
3b50fa65d6 WebGLSnapshot will now flip the pixels in the created Image element if the source was a framebuffer. This means grabbing a snapshot from a Dynamic or Render Texture will now correctly invert the pixels on the y axis for an Image. Grabbing from the game renderer will skip this. 2022-10-31 22:47:14 +00:00
Richard Davey
7d594dd49a Clarify snapshot docs 2022-10-31 22:46:44 +00:00
Richard Davey
e878cebd16 Force it to return Color object 2022-10-31 22:17:39 +00:00
Richard Davey
22eae26007 WebRenderer.snapshotFramebuffer and by extension, the snapshot methods in Dynamic Textures and Render Textures, has been updated to ensure that the width and height never exceed the framebuffer dimensions, or it'll cause a runtime error. The method snapshotArea has had this limitation removed as a result, allowing you to snapshot areas that are larger than the Canvas. Fix #5707 2022-10-31 22:17:27 +00:00
Richard Davey
af7ba68a19 When playing a chained animation, the nextAnim property could get set to undefined which would stop the next animation in the queue from being set. The check now handles all falsey cases. Fix #5852 2022-10-31 18:08:01 +00:00
Richard Davey
8434d45912 Animation.stop is always called when a new animation is loaded, regardless if the animation was playing or not and the delayCounter is reset to zero. This stops animations with delays preventing other animations from being started until the delay has expired. Fix #5680 2022-10-31 18:02:50 +00:00
Richard Davey
dfc794c339 Animation.showBeforeDelay is a new optional boolean property you can set when creating, or playing an animation. If the animation has a delay before playback starts this controls if it should still set the first frame immediately, or after the delay has expired (the default). 2022-10-31 18:01:35 +00:00
Richard Davey
ba6af3a920 Conditionally set DEBUG 2022-10-31 16:17:16 +00:00
Richard Davey
e618e149e8 Update InputPlugin.js 2022-10-28 18:43:40 +01:00
Richard Davey
4f0029c03c Added captureFrame, captureNextFrame, getFps, startCapture and stopCapture methods 2022-10-28 18:23:24 +01:00
Richard Davey
4a5f6adfe4 Enable for debugging 2022-10-28 18:22:57 +01:00
Richard Davey
94942d6633 Update InputPlugin.js 2022-10-28 17:57:43 +01:00
Richard Davey
ae378e3820 Added resetPointers method 2022-10-28 17:56:57 +01:00
Richard Davey
598921b638 If in debug mode, add texture key to Spector meta data 2022-10-28 17:53:55 +01:00
Richard Davey
1657f9e843 If in debug mode, add to window 2022-10-28 17:53:41 +01:00
Richard Davey
d909af6b62 Added Pointer.reset 2022-10-28 17:50:26 +01:00
Richard Davey
f3e773d102 Much better docs and more concise function code. 2022-10-26 23:02:50 +01:00
Richard Davey
56561b2f6d Updated docs 2022-10-26 23:02:36 +01:00
Richard Davey
fa0cd537f4 Preparing for Beta 14 2022-10-26 17:09:49 +01:00
Richard Davey
e868c5b284 Fix #6264 2022-10-26 15:24:41 +01:00
Richard Davey
0fbedd349b Added getTarget and setTargetValue methods 2022-10-26 15:22:35 +01:00
Richard Davey
4c0ad6946d ScaleManager.listeners has been renamed to domlisteners to avoid conflicting with the EventEmitter listeners object. Fix #6260 2022-10-26 15:08:52 +01:00
Richard Davey
58ef1ebc39
Merge pull request #6263 from Trissolo/master
When calling the 'Phaser/Geom/Intersects#LineToLine' method without passing in the third parameter, 'out', avoid creating a new Phaser.Geom.Point, as it will be totally inaccessible.
2022-10-26 15:04:35 +01:00
Richard Davey
2759837f8a Fix #6265 2022-10-26 15:03:07 +01:00
Richard Davey
93a66e2ae2 Don't run a step with a negative delta
Fix #6253
2022-10-26 14:59:02 +01:00
Trissolo
822e1401cf Replace the typedef of the last parameter with the more appropriate 'Phaser.Math.Vector2Like' 2022-10-26 08:58:55 +02:00
Trissolo
b9467f6f5e If the 'out' parameter is not passed in, do not create an useless new Phaser.Geom.Point, because, having no external references, it will be unreachable. 2022-10-25 09:17:56 +02:00
Richard Davey
6d5bf93e24 Replace this.systems with this.events 2022-10-20 16:57:57 +01:00
Richard Davey
4f7bbc8b61 Update PlaceOnCircle.js 2022-10-19 22:06:12 +01:00
Richard Davey
10ff7a3712 Improved jsdocs 2022-10-19 21:14:31 +01:00
Richard Davey
252bc784d7 Fix Ropes for new pipeline batch 2022-10-19 15:34:07 +01:00
Richard Davey
147479c992 Update TextureSource.js 2022-10-19 15:33:57 +01:00
Richard Davey
27a4804978 Consolidate vars 2022-10-19 15:22:53 +01:00
Richard Davey
1eb692251b The tempZone used by GridAlign has now had setOrigin(0, 0) applied to it. This leads to more accurate / expected zone placement when aligning grid items. 2022-10-14 16:15:47 +01:00
Shin
96052dba5c Fix Tween.callbackScope 2022-10-14 21:10:21 +07:00
Richard Davey
3e65947cb2 When calling InputPlugin.clear it will now call removeDebug on the Game Object, making sure it clears up any Input Debug Graphics left in the Scene. Fix #6137 2022-10-14 13:32:59 +01:00
Richard Davey
051dadd02a Add 'willReadFrequently' to CanvasTexture 2022-10-14 13:25:01 +01:00
Richard Davey
ac2c9c8fb8 Fixed Texture Manager reference. Fix #6250 2022-10-14 13:24:46 +01:00
Richard Davey
e722904139 Merge branch 'master' of https://github.com/photonstorm/phaser 2022-10-13 22:03:37 +01:00
Richard Davey
bd1adbd67e Clear TEXTURE1. Fix #6248 2022-10-13 22:03:33 +01:00
Richard Davey
fe75fa2a09
Merge pull request #6246 from rexrainbow/RenderTexture-resize
Add resize method back
2022-10-13 21:09:34 +01:00
samme
6960205f46
Docs: correct EdgeZoneSourceCallback return type 2022-10-13 12:59:26 -07:00
Richard Davey
ac79cea3bc Update TweenManager.js 2022-10-13 14:56:53 +01:00
Rex
999a68c019 Update hitarea 2022-10-13 12:36:37 +08:00
Rex
d4093765be Add resize method back 2022-10-12 16:58:52 +08:00
Richard Davey
4bd64129e9 Only checkWorldBounds in Body.reset if the Body collides with it 2022-10-11 01:45:21 +01:00
Yuval Greenfield
080a30d789 More accurate "since" version for SceneType.js 2022-10-10 10:08:50 -07:00
Richard Davey
0301922bdc Preparing for Beta 13 2022-10-10 17:59:52 +01:00
Richard Davey
07e0753e74 Fixed type def 2022-10-10 17:54:34 +01:00
Richard Davey
ead9de5c04 Drawing a frame via draw, drawFrame or batchDrawFrame and specifying a tint value would inverse the Red and Blue channels. These are now handled properly. Fix #5509 2022-10-10 17:44:00 +01:00
Richard Davey
f3c804805f Update MultiPipeline.js 2022-10-10 17:43:53 +01:00
Richard Davey
3bb2a51f85
Merge pull request #6193 from JaroVDH/master
Add raw character index to BitmapText text bounds
2022-10-10 16:34:21 +01:00
Richard Davey
205dab8794 Abort update if stuck in a countdown 2022-10-10 16:32:54 +01:00
Jaro Vanderheijden
e4b3e1ac15 Move BitmapTextCharacter typedef to proper location 2022-10-10 17:05:56 +02:00
Jaro Vanderheijden
f8f8f38715
Merge branch 'photonstorm:master' into master 2022-10-10 16:59:05 +02:00
Richard Davey
a970e0bcfb Using DynamicTexture.fill in CANVAS mode only, after using the erase method, wouldn't reset the global composite operation correctly, resulting in fills. Fix #6124 2022-10-10 15:39:16 +01:00
Richard Davey
cb5d91f596 Fix #6242 2022-10-10 15:31:50 +01:00
Richard Davey
346aff2858 Don't get targets from destroyed tweens. Fix #6244 2022-10-10 15:28:11 +01:00
Richard Davey
a5b3b91da1
Merge pull request #6236 from samme/feature/group-post-creation-options
Skip the Group createMultiple() post-creation options if not set
2022-10-10 15:18:18 +01:00
Richard Davey
d68b0b7c91
Merge pull request #6155 from ef4/better-closest-type
Improve types for ArcdePhysics.closest
2022-10-10 14:50:36 +01:00
Richard Davey
8f4b57a018
Merge pull request #6007 from rexrainbow/scene-transition-onstart
Add onStart parameter into scene.transition(config)
2022-10-10 14:47:23 +01:00
Richard Davey
f56499f62b
Merge pull request #6221 from samme/fix/video-load-url
Update video texture after loading
2022-10-10 14:46:06 +01:00
Richard Davey
a6a83ca592 Testing customSampler 2022-10-10 13:27:33 +01:00
Richard Davey
ed679fc023 Don't try and stop destroyed tweens 2022-10-10 01:29:06 +01:00
Richard Davey
954eb00fa1 Give Shapes the FX component 2022-10-09 23:16:58 +01:00
Richard Davey
52f7ec621a Added destroy method back in again 2022-10-09 23:16:48 +01:00
Richard Davey
d0cc5f17d5 Extend the MultiPipeline and use new batch system 2022-10-09 23:16:38 +01:00
Richard Davey
6c2b45d99f Use setQuad 2022-10-09 21:40:22 +01:00
Richard Davey
2e2c6528b6 Preparing for beta 12 2022-10-09 18:25:34 +01:00
Richard Davey
5dd3a40342 Fixed data types 2022-10-09 18:11:00 +01:00
Richard Davey
76ce040bcb Fixed Mesh renderer 2022-10-09 18:04:36 +01:00
Richard Davey
01150a6efc Removed un-needed method 2022-10-09 17:49:21 +01:00
Richard Davey
6ff216d832 Create WebGLPipelineBatchEntry.js 2022-10-09 17:49:11 +01:00
Richard Davey
7600f2f6b6 Added all new jsdocs 2022-10-09 17:49:08 +01:00
Richard Davey
a2d5f25a55 Added new method 2022-10-09 17:30:36 +01:00