Commit graph

9519 commits

Author SHA1 Message Date
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
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
Svipal
40a26256c4 oop 2020-08-09 15:55:00 +02:00
Svipal
809d0b7495 merged master 2020-08-09 13:13:09 +02:00
Svipal
241d4193e8 let's try again 2020-08-09 12:33:52 +02:00
Svipal
97bb9b4a8f bad bad idea 2020-08-09 12:33:26 +02:00
Svipal
c77731d127 bad idea 2020-08-09 12:24:56 +02:00
Svipal
b4a1473fea test 2020-08-09 12:13:29 +02:00
Svipal
a72efc8ac8 Update ParseTileLayers.js 2020-08-09 11:50:25 +02: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
Richard Davey
c9330fd469
Merge pull request #5241 from samme/docs/add-existing
Docs: generic return for add.existing()
2020-08-03 10:19:42 +01:00
Richard Davey
4ac240f280 Added String.RemoveAt 2020-08-02 23:52:45 +01:00
Richard Davey
2810396dc7 The KeyboardPlugin will now track the key code and timestamp of the previous key pressed and compare it to the current event. If they match, it will skip the event. On some systems if you were to type quickly, you would sometimes get duplicate key events firing (the exact same event firing more than once). This is now prevented from happening. 2020-08-01 21:06:42 +01:00
Richard Davey
c4000843ec The KeyboardManager and KeyboardPlugin were both still checking for the InputManager.useQueue property, which was removed several versions ago. 2020-08-01 20:54:45 +01:00
Richard Davey
fccd00e8c5 Remove deprecated events 2020-08-01 20:32:50 +01:00
Patrick Sletvold
edf0c17703
Use TextPadding type in Text game object 2020-08-01 13:35:02 +02:00
Patrick Sletvold
87e8eba213
Correctly type style in TextFactory 2020-08-01 13:34:37 +02:00
Patrick Sletvold
a525e43dcf
Add TextConfig type for TextCreator 2020-08-01 13:34:07 +02:00
Richard Davey
42d6456993 Encode dropshadow color 2020-08-01 11:24:26 +01:00
Richard Davey
959645d1f0 Always render drop shadow behind text 2020-08-01 11:24:15 +01:00
Richard Davey
22e8d22e3f BitmapText.setWordTint is a new method that allows you to set a tint color (either additive, or fill) on all matching words within a static Bitmap Text. You can specify the word by string, or numeric offset, and the number of replacements to tint. 2020-07-31 18:36:27 +01:00
Richard Davey
b9407967e3 If you give an invalid Bitmap Font key, the Bitmap Text object will now issue a console.warn. 2020-07-31 18:00:31 +01:00
Richard Davey
79e985dd93 Updated docs 2020-07-31 17:09:40 +01:00
Richard Davey
c0109c1ec9 BatchChar is a new internal private function for batching a single character of a Bitmap Text to the pipeline. 2020-07-31 16:54:29 +01:00
Richard Davey
2e378b68d1 Apply the dropShadow 2020-07-31 16:39:21 +01:00
Richard Davey
c228dd596a BitmapText.setDropShadow is a new method that allows you to apply a drop shadow effect to a Bitmap Text object. You can set the horizontal and vertical offset of the shadow, as well as the color and alpha levels. Call this method with no parameters to clear a shadow. 2020-07-31 16:39:05 +01:00
Richard Davey
aac2276692 BitmapText.preDestroy is a new method that will tidy-up all of the BitmapText data during object destruction. 2020-07-31 16:22:53 +01:00
Richard Davey
7ce39b991c Removed un-used properties 2020-07-31 16:17:36 +01:00
Richard Davey
9419606f12 BitmapText.setCharacterTint is a new method that allows you to set a tint color (either additive, or fill) on a specific range of characters within a static Bitmap Text. You can specify the start and length offsets and a per-corner tint color. 2020-07-31 16:17:23 +01:00
Richard Davey
fc6e7ef759 Removed un-used properties 2020-07-31 15:46:05 +01:00
Richard Davey
2ef28cd0e4 Added getXRound and getYRound 2020-07-31 15:45:55 +01:00
Richard Davey
4baa0522b9 Bumping to 3.50 2020-07-31 13:41:29 +01:00
Richard Davey
d16d8dc9ce BitmapTextWebGLRenderer has been rewritten from scratch to make use of the new pre-cached WebGL uv texture and character location data generated by GetBitmapTextSize. This has reduced the number of calculations made in the function dramatically, as it no longer has work out glyph advancing or offsets during render, but only when the text content updates. 2020-07-31 13:39:49 +01:00
Richard Davey
49682e744d Update BitmapText.js 2020-07-31 13:34:50 +01:00
Richard Davey
72654e04d3 Fixed bounds sizes 2020-07-31 13:34:28 +01:00
Richard Davey
c166976fcc Update BitmapTextCharacter.js 2020-07-31 12:06:57 +01:00
Richard Davey
a4577e2135 The GetBitmapTextSize function has a new boolean parameter updateOrigin, which will adjust the origin of the parent BitmapText if set, based on the new bounds calculations. 2020-07-31 12:06:45 +01:00
Richard Davey
a682b83b7c BitmapText.getCharacterAt is a new method that will return the character data from the BitmapText at the given x and y corodinates. The character data includes the code, position, dimensions and glyph information. 2020-07-31 11:36:48 +01:00
Richard Davey
a72fdd44f8 Bumping to 3.50 2020-07-31 11:32:47 +01:00
Richard Davey
e195aac919 ParseXMLBitmapFont will now calculate the WebGL uv data for the glyphs during parsing. This avoids it having to be done during rendering, saving CPU cycles on an operation that never changes. 2020-07-31 11:32:37 +01:00
Richard Davey
0385d108a8 Transform.getLocalPoint is a new method, available on all Game Objects, that takes an x / y pair and translates them into the local space of the Game Object, factoring in parent transforms and display origins. 2020-07-31 10:28:09 +01:00
Richard Davey
214b383fcd Use correct scale and added start of getCharacterAt method 2020-07-30 23:59:06 +01:00
Richard Davey
a39bcfe69a Always return chars 2020-07-30 22:38:06 +01:00
Richard Davey
a678f723c6 Always calculate includeChars 2020-07-30 22:37:34 +01:00
Richard Davey
1579069c50 Pixel accurate character data 2020-07-30 18:24:04 +01:00
Richard Davey
eef67b6c11 Update BitmapTextWebGLRenderer.js 2020-07-30 18:23:50 +01:00
Richard Davey
77feb773fd Fixed descriptions 2020-07-30 18:23:45 +01:00
Richard Davey
bf4c475e85 Floor drawFillRect values 2020-07-30 18:10:23 +01:00
Richard Davey
b108cd03f0 Fix call to GetBitmapTextSize 2020-07-30 15:43:43 +01:00
Richard Davey
408a545aac BitmapTextWord, BitmapTextCharacter and BitmapTextLines are three new type defs that are now part of the BitmapTextSize config object, as returned by getTextBounds. This improves the TypeScript defs and JS Docs for this object. 2020-07-30 15:24:49 +01:00
Richard Davey
286be7df49 The GetBitmapTextSize and BitmapText.getTextBounds functions have a new boolean parameter includeChars. When set to true it will include a characters array in the returned bounds object that contains the scaled position coordinates of each character in the BitmapText, which you could use for tasks such as determining which character of the object was clicked. 2020-07-30 15:14:25 +01:00
Richard Davey
cc3d3f7da3 The GetBitmapTextSize function used Math.round on the values, if the round parameter was true, which didn't create integers. It now uses Math.ceil instead to give integer results. 2020-07-30 14:47:31 +01:00
Richard Davey
841389628e The BitmapText.getTextBounds method was being called every frame, even if the bounds didn't change, potentially costing a lot of CPU depending on the text length and quantity of them. It now only updates the bounds if they change. 2020-07-30 14:46:32 +01:00
Richard Davey
ce9c750175 Geom.Polygon.Translate is a new function that allows you to translate all the points of a polygon by the given values. 2020-07-30 12:58:35 +01:00
samme
f653a51cc0 Docs: generic return for add.existing() 2020-07-29 12:19:09 -07:00
Richard Davey
ee92d1dac9 Geom.Intersects.GetLineToPolygon is a new function that checks for the closest point of intersection between a line segment and an array of polygons. 2020-07-29 18:12:40 +01:00
Richard Davey
771509d6c2 Phaser.Types.Math.Vector4Like is a new data type representing as Vector 4 like object. 2020-07-29 17:42:12 +01:00
Richard Davey
23c00d148d Phaser.Types.Math.Vector3Like is a new data type representing as Vector 3 like object. 2020-07-29 17:41:59 +01:00
Richard Davey
517183fd2e Geom.Intersects.GetLineToLine is a new function that will return a Vector3 containing the point of intersection between 2 line segments, with the z property holding the distance value. 2020-07-29 17:15:57 +01:00
mk360
a7371b9a85 [types] allow Text#setPadding to receive an object 2020-07-24 18:48:17 +03:00
Richard Davey
41c76d88b1 Beta tag 2020-07-24 15:34:00 +01:00
Richard Davey
fb1306e8f2 The MatterAttractors plugin, which enables attractors between bodies, has been fixed. The original plugin only worked if the body with the attractor was _first_ in the world bodies list. It can now attract any body, no matter where in the world list it is. Fix #5160 2020-07-23 18:06:17 +01:00
samme
7685067310
Docs: Phaser.Physics.Arcade.Group#defaults
#4171, #5153
2020-07-23 09:48:53 -07:00
Richard Davey
86f35ef9cf Updated docs 2020-07-23 17:35:47 +01:00
Richard Davey
b6b570fb91
Merge pull request #5233 from samme/patch-3
Docs: protect ScaleManager#onFullScreenChange
2020-07-23 17:10:14 +01:00
Richard Davey
b51a40c1a1 Update RenderTexture.js 2020-07-23 17:01:37 +01:00
Richard Davey
bb3b67c16f Update RenderTextureWebGLRenderer.js 2020-07-23 17:01:25 +01:00
Richard Davey
c31a9ad4e5 WebGLRenderer.unbindTextures is a new method that will activate and then null bind all WebGL textures. 2020-07-23 16:24:44 +01:00
Richard Davey
556b5b05be Update TextureSource.js 2020-07-23 16:23:14 +01:00
Richard Davey
9607ce89c7 Update RenderTextureWebGLRenderer.js 2020-07-23 16:22:46 +01:00
Richard Davey
9b278554d3 RenderTexture.resize (which is called from setSize) wouldn't correctly set the TextureSource.glTexture property, leading to bindTexture: attempt to use a deleted object errors under WebGL. 2020-07-23 16:22:38 +01:00
samme
02f6c51ff5
Docs: protect ScaleManager#onFullScreenChange
#5229
2020-07-22 11:22:43 -07:00
Richard Davey
27426dd0b6 Testing RenderTextures (currently broken, will fix next week) 2020-07-17 18:08:39 +01:00
Richard Davey
0ff08a2994 Update RopeWebGLRenderer.js 2020-07-17 17:07:34 +01:00