Commit graph

312 commits

Author SHA1 Message Date
Richard Davey
d3ed47b250 Added duration to config def 2022-12-22 14:57:16 +00:00
Richard Davey
264dcc1d8f ParticleEmitter can now interpolate particles, emits 3 new events and has a new duration option 2022-12-22 14:38:33 +00:00
Richard Davey
f0a39d8bd0 Added new Particle Emitter events 2022-12-22 14:38:11 +00:00
Richard Davey
8d0f7ee0f3 Added ability to interpolate particle onUpdate 2022-12-22 12:20:14 +00:00
Richard Davey
5f8c4ddbac Chainable 2022-12-22 11:21:30 +00:00
Richard Davey
21299a48ee You can now 'fast forward' a Particle Emitter. This can be done via either the emitter config, using the new advance property, or by calling the new ParticleEmitter.fastForward method. If, for example, you have an emitter that takes a few seconds to 'warm up' and get all the particles into position, this allows you to 'fast forward' the emitter to a given point in time. The value is given in ms. All standard emitter events and callbacks are still handled, but no rendering takes place during the fast-forward until it has completed. 2022-12-22 11:09:11 +00:00
Richard Davey
a5b7ffdb08 Particle tint working correctly 2022-12-19 18:35:40 +00:00
Richard Davey
58533686d5
Merge pull request #6321 from samme/docs/constructor-types
Docs: change "Constructor" types to `function`
2022-12-19 16:43:31 +00:00
Richard Davey
91a1b351f0 Testing tint vs color 2022-12-19 13:48:53 +00:00
Richard Davey
0c575fd859 Remove un-used parameter 2022-12-18 17:22:39 +00:00
Richard Davey
b71b29d353 Added EmitterOps jsdocs 2022-12-17 18:56:44 +00:00
Richard Davey
34c159b678 Added speed getter 2022-12-17 17:54:08 +00:00
Richard Davey
b8094cc078 Fixed null comparison 2022-12-17 17:51:35 +00:00
samme
09be12612b Docs: change "Constructor" types to function
- Phaser.Types.GameObjects.Group.GroupClassTypeConstructor
- Phaser.Types.GameObjects.Particles.ParticleClassConstructor
- Phaser.Types.Tilemaps.CreateFromObjectsClassTypeConstructor

Fixes #6318
2022-12-16 15:37:09 -08:00
Richard Davey
da96b39179 Fixed flow of position and velocity and allowed bounce and moveTo to be updateable 2022-12-15 17:32:15 +00:00
Richard Davey
cad71d1747 Updated docs and made moveToX/Y and bounce onUpdate'able 2022-12-15 17:31:47 +00:00
Richard Davey
f344b2109e Added support for stepped yoyo and fixed random max value 2022-12-15 17:31:17 +00:00
Richard Davey
9c52f8a651 Testing all ops as onUpdate capable 2022-12-15 13:33:58 +00:00
Richard Davey
380e2ca760 Access values from new ops object 2022-12-15 00:51:22 +00:00
Richard Davey
bf870d5165 Swapped to new ops object and public getters 2022-12-15 00:51:11 +00:00
Richard Davey
e5695cabff If it's a new callback we need it 2022-12-15 00:40:23 +00:00
Richard Davey
2879b12a10 Added active, method, getMethod and new setMethod functions. Optimized flow. 2022-12-15 00:34:34 +00:00
Richard Davey
b553398ad8 Testing using _x for EmitterOps and public accessors 2022-12-14 18:42:53 +00:00
Richard Davey
3bb68b45ae Better destroy handling. preUpdate won't run unless active. Added setEmitterAnims method. 2022-12-14 18:16:03 +00:00
Richard Davey
3efc22a127 Added AnimationState component and related properties, Event Emitter proxy and destroy method 2022-12-14 18:12:50 +00:00
Richard Davey
98b0123004 Move configs to global vars, save memory. Add getAnim and setAnim and related properties. Vastly improve destroy handling. 2022-12-14 18:12:23 +00:00
Richard Davey
dd8f9e42b0 Now uses setQuad and skips particles with scale o 2022-12-14 16:38:22 +00:00
Richard Davey
6867ca5b82 Give Particles an animation component 2022-12-13 18:51:15 +00:00
Richard Davey
1121cedf60 Adding in Particle Manager destroy handling 2022-12-13 18:51:04 +00:00
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
64ede38b9d Added more docs confirming overrides. Fix #6046 2022-11-22 23:37:20 +00:00
samme
6960205f46
Docs: correct EdgeZoneSourceCallback return type 2022-10-13 12:59:26 -07:00
Richard Davey
15c58bc71c Added maxAliveParticles
`maxAliveParticles` is a new Particle Emitter config property that sets the maximum number of _alive_ particles the emitter is allowed to update. When this limit is reached a particle will have to die before another can be spawned.
2022-07-12 16:28:12 +01:00
Jonah Jeleniewski
e8c8be0385
Let texture scaleMode override the antialias setting under CANVAS 2022-06-11 18:07:29 +10:00
samme
f393cb9c43 Allow particle frequency smaller than delta 2022-05-30 10:55:30 -07:00
Richard Davey
a4d8e87095 Fixed lint errors 2022-05-10 17:06:53 +01:00
Richard Davey
919fa39faa
Merge pull request #6067 from TJ09/commonjs-import-change
Don't reassign the return values from require()
2022-05-09 16:49:58 +01:00
Richard Davey
da9296eae7
Merge pull request #6038 from samme/patch-10
Docs: correct args in ParticleEmitter#explode()
2022-04-14 15:40:20 +01:00
Richard Davey
4b752aad2e
Merge pull request #6061 from samme/misc/opt-particle-moveTo
Simplify the particle moveTo calculations
2022-04-14 15:39:28 +01:00
Richard Davey
fb6f9d370b
Merge pull request #6060 from samme/feature/particle-moveTo-zero
Allow moving particles to (0, 0)
2022-04-14 15:37:55 +01:00
samme
0b6d26b114
Docs: clarify ParticleEmitter#moveTo
#6046
2022-04-08 09:55:42 -07:00
T.J. L
ff4ef2872b Don't overwrite the return values from require() 2022-04-02 01:49:19 -07:00
samme
d083179cbb Allow moving particles to (0, 0)
moveToX and moveToY are initialized to null instead of 0
2022-03-29 18:20:26 -07:00
samme
8b70cf643d Simplify the moveTo calculation 2022-03-25 11:24:59 -07:00
samme
0e22b0ecd6
Docs: correct args in ParticleEmitter#explode()
All arguments are optional
2022-03-11 14:00:05 -08:00
Richard Davey
59fbcc5ca3 Updated copyright year 2022-02-28 14:29:51 +00:00
Richard Davey
7aa7187a0f
Merge pull request #5870 from samme/docs/class-types
Add GroupClassTypeConstructor and ParticleClassConstructor types
2022-02-28 13:53:39 +00:00
Richard Davey
a4308cfa3a Skips Canvas drawImage calls if invalid frame sizes given. Fix #5951 2022-02-03 16:44:24 +00:00
Richard Davey
20d4391c29 Calling ParticleEmitter.setScale would set the scaleY property to null, causing calls to setScaleY to throw a runtime error. scaleY is now a required property across both the Particle and Emitter classes and all of the conditional checks for it have been removed 2021-10-28 15:01:51 +01:00
samme
ba5e4ffab7 Docs: add Phaser.Types.GameObjects.Particles.ParticleClassConstructor
Fixes #5731 ?
2021-10-13 13:23:31 -07:00
Richard Davey
cca537b66b
Merge pull request #5841 from samme/feature/warn-particle-missing-frame
Warn, throw for particle texture frame mistakes
2021-09-24 14:38:20 +01:00
samme
023336f826 Throw an error for missing particle texture frame 2021-09-23 11:15:58 -07:00
samme
da86ea7029 Warn for missing texture frames 2021-09-23 11:15:29 -07:00
Richard Davey
93db763f69
Merge pull request #5340 from 16patsle/Fix_object_types
Add more specific 'object' types, including GO Configs
2021-09-23 15:30:43 +01:00
Emil Schnedler Vad
9fa971902b fixed type of ParticleEmitterConfig deathCallback to function 2021-05-24 16:42:01 +02:00
samme
3248971411 Fix wrong particle follow position
Fixes #5457
2021-02-21 11:30:32 -08:00
Richard Davey
1c8662dc1f Call addToRenderList 2021-01-07 14:52:08 +00:00
Richard Davey
00d8b6a009 Invoke camera.addToRenderList method 2021-01-07 12:31:31 +00:00
Richard Davey
e08b5386dd Removed follow from render code 2020-12-14 11:51:16 +00:00
Richard Davey
7ff4c5958b Fire particle from follower position. Fix #5437 2020-12-14 11:46:19 +00:00
Richard Davey
59e89fa788 All Game Objects will now listen for ADDED_TO_SCENE and REMOVED_FROM_SCENE events and call the handlers. Therefore, removed GO specific implementations. 2020-12-11 11:44:21 +00:00
Patrick Sletvold
d327a4da34
Add Config types for ParticleEmitterManager and Mesh 2020-12-10 11:40:01 +01:00
Richard Davey
0ee1338765 Better post pipeline call (less code) 2020-11-26 09:51:40 +00:00
Richard Davey
09c49ac288 Fixed emitter mask pipeline 2020-11-24 14:52:57 +00:00
Richard Davey
d2e2e86ef1 Updated accessor 2020-11-23 16:22:11 +00:00
Richard Davey
ec5da6930c Added post pipeline support to all Game Objects 2020-11-23 16:17:13 +00:00
Richard Davey
28d925b875 JSDoc fixes 2020-11-23 15:06:45 +00:00
Richard Davey
417f7684c3 More integer to number changes 2020-11-23 10:32:00 +00:00
Richard Davey
02c34cd64e Replace integer with number 2020-11-23 10:22:13 +00:00
Richard Davey
eee3feb667 Pass Game Object to batchQuad 2020-11-09 13:19:31 +00:00
Richard Davey
d3c70002ea Removed use of _tempMatrix from all renderers 2020-11-06 09:44:29 +00:00
Richard Davey
4ba2b0eb7b All swapped to using renderer matrices to make pipelines smaller 2020-10-28 16:52:59 +00:00
Richard Davey
85a284d095 Particles.EmitterOp now cleanly separates between the different types of property configuration options. start | end will now ease between the two values, min | max will pick a random value between them and random: [] will pick a random element. They no longer get mixed together. Fix #3608 2020-10-16 17:52:59 +01:00
Richard Davey
1aaecbe703 Particles.EmitterOp.setMethods will now reset both onEmit and onUpdate to their default values. This allows you to reconfigure an emitter op with a new type of value and not have it stuck on the previous one. Fix #3663 2020-10-16 17:32:22 +01:00
Richard Davey
ae6112297a Default tint value should now be 0xffffff. Fix #5358 2020-10-15 12:19:17 +01:00
Richard Davey
24de03ca96 Added missing ADDED_TO_SCENE handlers 2020-09-29 20:14:30 +01:00
Richard Davey
12c8ddfd05 Use getXRound 2020-09-29 18:05:39 +01:00
Richard Davey
9619995527 Add to UpdateList if not on Display List 2020-09-29 18:05:29 +01:00
Richard Davey
b86d982c00 The ParticleManagerCanvasRenderer now calculates its transform matrix differently, splitting out the parent matrix and factoring in the follow offsets separately. It also uses setToContext internally. This fixes numerous issues with particle emitters being incorrectly offset when added to Containers, or having the Camera zoomed, running under Canvas. Fix #4908 #4531 #4131 2020-09-23 12:06:29 +01:00
Richard Davey
a459ec090f Fixed lint issue 2020-09-23 11:50:07 +01:00
Richard Davey
fb849ae0dc The ParticleManagerWebGLRenderer now calculates its transform matrix differently, splitting out the parent matrix and factoring in follow offsets separately. This fixes numerous issues with particle emitters being incorrectly offset when added to Containers. Fix #5319 #5195 #4739 #4691 2020-09-23 11:50:00 +01:00
Vladislav Forsh
4d7301a4be Improve types for particle emitter deathZone and emitZone 2020-09-21 12:38:29 +03:00
Vladislav Forsh
530c7a3d92 Add reserve property to particle emitter config 2020-09-21 12:06:49 +03:00
Vladislav Forsh
8fd4754b03 Add ability to use custom easing function(s) with particle emitters 2020-09-16 12:43:38 +03:00
Richard Davey
6a966e3f3b Removed interpolationPercentage parameter from all render methods, as it has never been used. 2020-09-14 15:33:58 +01:00
Richard Davey
951457c881 As a result of the change to the shader, all uses of the WebGL Util function getTintAppendFloatAlphaAndSwap have been replaced with getTintAppendFloatAlpha instead. 2020-09-14 15:02:13 +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
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
da3f9b22c3 Exposed on the main API namespace 2020-09-01 18:38:57 +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
786f78e91d Particle Emitter Game Objects now support rendering in Light2d. 2020-07-16 15:32:06 +01:00
Richard Davey
99af20aa68 The Particle Emitter Game Object WebGL Renderer function has been updated to support multi-texture units. 2020-07-15 18:03:36 +01:00
Richard Davey
dea68135fd Correct texture type. Fix #5199 2020-07-13 13:29:01 +01:00
Jason Kwok
fca63274e2 Fixed this return types for Phaser.GameObjects.Particles.Zones.EdgeZone 2020-01-26 21:21:25 +08:00
Jason Kwok
022fa20673 Fixed this return types for Phaser.GameObjects.Particles.EmitterOp 2020-01-26 21:18:14 +08:00
Jason Kwok
270f7b33a3 Fixed this return types for Phaser.GameObjects.Particles.ParticleEmitterManager 2020-01-26 21:15:30 +08:00
Jason Kwok
1fd71ae088 Fixed this return types fro Phaser.GameObjects.Particles.ParticleEmitter 2020-01-26 21:13:11 +08:00
Richard Davey
ff65e69cd1 Changed copyright date to 2020 2020-01-15 12:07:09 +00:00
Richard Davey
5130fccbf5
Merge pull request #4921 from samme/feature/emitter-remove
Add ParticleEmitter.remove() and ParticleEmitterManager#removeEmitter()
2019-12-28 16:35:07 +00:00
samme
15506e0faf Add ParticleEmitter.remove() and ParticleEmitterManager#removeEmitter() 2019-12-23 10:36:35 -08:00
samme
559c89eaf2 Add ParticleEmitter#setTint() 2019-12-23 09:25:35 -08:00
Richard Davey
d405bab92c Set image smoothing based on renderer or scale mode. 2019-10-01 16:10:46 +01:00
samme
df3953e604 Require truthy random value for randomness 2019-06-11 11:38:29 -07:00
samme
c55ee432ce Docs for easedValueEmit() 2019-06-07 13:32:12 -07:00
samme
cf627a07e1 Correct emitOnly values for angle, lifespan, x, y 2019-06-07 13:31:01 -07:00
samme
d3407c5e44 Add EmitterOpOnEmitType and EmitterOpOnUpdateType
Also some corrections in ParticleEmitterConfig docs
2019-06-01 13:33:06 -07:00
Richard Davey
c91ed91ce3 License link update 2019-05-10 16:15:04 +01:00
Richard Davey
a6341a97a8 Fixed Types references 2019-05-09 15:32:53 +01:00
Richard Davey
29aee69aa0 Particles Types 2019-05-09 11:57:00 +01:00
Richard Davey
78e1ef9df0 Particle Emitters and Containers can now have geometry masked children 2019-04-15 16:46:47 +01:00
Richard Davey
754ae7caa2 Particle Emitters can now be masked 2019-04-12 17:46:52 +01:00
Richard Davey
9dd3e7cd15 Added missing Mask component 2019-04-12 17:46:39 +01:00
Richard Davey
70a87a576d Some legacy instances of float moved to number. 2019-02-13 12:39:36 +00:00
Richard Davey
e7b1d086e7 Moving all of the typedefs to properly namespaced scopes, rather than globals
\o/ ~ "Someone, save me!"
2019-02-13 12:35:12 +00:00
Brian Lui
af085646eb
Fix: Type declaration for blendMode 2019-02-08 15:58:18 +08:00
Richard Davey
44f4ac3598 Type def fix 2019-01-29 23:49:23 +00:00
Richard Davey
aa341854c7 Happy New Year 2019-01-15 16:20:22 +00:00
Richard Davey
4b27b37a0c Added texture and unit arguments to batchQuad and batchTri, fixing the y2k bug. 2018-12-12 11:08:52 +00:00
Richard Davey
6f8759c186 Whenever Camera.roundPixels was enabled it would use a bitwise operation to truncate the float (x |= 0) - this has been replaced across all files that used it, with a call to Math.round instead. This gives far better results when zooming cameras both in and out of a Scene, stopping thin gaps appearing between closely packed Game Objects. 2018-11-30 10:27:25 +00:00
Richard Davey
18af31ffb7 Fixed how dead particles are managed, reduced gc churn and reset particle positions. Also removed un-needed stable sort. 2018-11-21 11:53:46 +00:00
Richard Davey
fca695f632 Removed Particle.index as it's no longer required 2018-11-21 11:53:21 +00:00
Piotr 'Waclaw I' Hanusiak
893310d5bb array of dead particles is now being filled up with dead particles. 2018-10-29 22:19:57 +01:00
Richard Davey
d13984f460 Added jsdocs 2018-10-19 18:32:10 +01:00
Richard Davey
0b3d54a198 Added jsdocs 2018-10-19 18:29:36 +01:00
Richard Davey
4b1c762296 Updated @memberOf to @memberof 2018-10-10 10:49:13 +01:00
Richard Davey
4d13702c33 The Particle Emitter Manager has been given a NOOP method called setBlendMode to stop warnings from being thrown if you added an emitter to a Container in the Canvas renderer. Fix #4083 2018-10-05 16:31:43 +01:00
Richard Davey
b45df05ddb Updated to get the frame names 2018-09-27 14:15:58 +01:00
Richard Davey
dedc939fdd initPipeline now defaults to the Texture Tint Pipeline if nothing else is specified. 2018-09-05 11:19:02 +01:00
Richard Davey
4deb8e49ad eslint fixes 2018-08-03 19:37:42 +01:00
Richard Davey
9f44896a3f The Blend Mode is now set directly in all Canvas Renderers without comparing it to what's stored in the Canvas Renderer. This fixes problems where the blend mode would be lost between two different Game Objects because they restored the context, but didn't update the renderer flag. Game Objects in Canvas can now mix and match blend modes across the display list. 2018-08-03 01:29:18 +01:00
Richard Davey
e0918df6b0 Canvas particle renderer now using same matrix math as webgl 2018-08-03 01:04:46 +01:00
Richard Davey
0a035353fa lint fix 2018-08-03 01:04:25 +01:00
Richard Davey
7313573161 The ParticleEmitterManager now has the Transform component. This means you can now set the position, rotation or scale of the Emitter Manager, and it will influence every Emitter it is rendering. The Managers transform is mixed with that of the Camera. This works in both Canvas and WebGL. 2018-07-31 23:21:07 +01:00
Richard Davey
c3cc4317dd Particle.color has been removed as it's now calculated during rendering to allow for Camera alpha support. 2018-07-31 23:18:49 +01:00
Richard Davey
34b27fd57a ParticleEmitter would fail to draw a textured particle in Canvas mode 2018-07-29 12:16:42 +01:00
Richard Davey
4481795d32 Swapped to using getX / getY 2018-07-27 00:53:00 +01:00
Richard Davey
8873bdcbf6 Fixed pipeline method call 2018-07-26 23:50:54 +01:00
Thomas Felix
43f6b1d231 fix: Corrects the wrong JSdoc comments
Wrong comments lead to a faulty Typescript Definition file missing
the depth attribute.
2018-07-25 22:13:38 +02:00
Richard Davey
fc5eb2511c Particles using a blend mode wouldn't render correctly after the updates in 3.11. If the blend mode changes during the processing of an emitter manager it'll now correctly rebind the texture, stopping the particles from vanishing. Fix #3851 2018-07-23 01:39:21 +01:00
Richard Davey
106e32a4f5 Removed un-used imports 2018-07-19 13:26:11 +01:00
Richard Davey
ec5bd1912e GameObject.willRender now takes a Camera as its only argument and uses it within the check. This has allowed me to remove 23 duplicate checks spread across the various Game Objects, all of which did the same thing, saving both KB and CPU time as the flags were being checked twice in most cases. 2018-07-19 13:19:02 +01:00
Richard Davey
5ba80defb7 Pass GO to setPipeline 2018-07-11 16:23:44 +01:00
Richard Davey
82b15c8695 Removed drawEmitterManager and moved to emitter render function 2018-07-11 14:40:36 +01:00
Richard Davey
7a23378015 Unified use of roundPixels, antialias and pixelArt modes 2018-06-27 15:15:00 +01:00
Richard Davey
7aa46657c2 Tidying up jsdocs and changing float to number 2018-06-26 23:19:14 +01:00
Richard Davey
8391042ff9
Merge pull request #3783 from samme/feature/particle-emitter-stop
Add ParticleEmitter#stop()
2018-06-25 22:42:00 +01:00
Richard Davey
51468fdefc Merge branch 'master' of https://github.com/photonstorm/phaser 2018-06-25 16:25:42 +01:00
Richard Davey
90ba2608fa Added in Camera alpha support to all canvas renderers 2018-06-25 16:24:08 +01:00