Commit graph

577 commits

Author SHA1 Message Date
Richard Davey
702e738ffc When a Static Tilemap Layer is generated in WebGL it will use the Cameras roundPixels value to clamp the tile coordinates. 2018-08-06 14:16:36 +01:00
Richard Davey
50821c29ac Updated jsdocs 2018-08-06 13:45:56 +01:00
Richard Davey
86965c28e4 The Tilemap Culling function now uses the Tilemap tile dimensions for its bounds calculations, instead of the layer tile sizes, as they two don't have to match and it's the underlying grid size that takes precedence when calculating visible tiles. Fix #3893 2018-08-06 13:31:27 +01:00
Richard Davey
41c9f8b1e1 Docs update 2018-08-06 00:41:34 +01:00
Richard Davey
c2782d89ca Updated log. 2018-08-03 19:31:02 +01:00
Richard Davey
c6cb0edf60 Updated log. 2018-08-03 19:17:17 +01:00
Richard Davey
ca68904953 The Canvas Renderer has a new batchSprite method that consolidates the process of drawing a texture-based Game Object to the canvas. It processes the alpha, blend mode and matrix calculations in a single function and now is used by nearly all Game Object canvas renderers. 2018-08-03 18:53:50 +01:00
Richard Davey
c98f5edc23 Added resetCropObject method to cut down on duplicate code. 2018-08-03 18:50:36 +01:00
Richard Davey
b65cf0647b New Crop Game Object component. 2018-08-03 18:49:10 +01:00
Richard Davey
8c842f67de Phaser.Utils.String.UUID will return an RFC4122 complaint UUID as a string. This is used internally to avoid cache key conflicts, but is exposed for your own use as well. 2018-08-03 18:47:27 +01:00
Richard Davey
fc0dc13930 Removed use of currentBlendMode and currentAlpha 2018-08-03 01:53:51 +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
31421ee00a The CullTiles updates from 3.11 didn't factor in the position of the Tilemap Layer to its bounds calculations, causing Static layers displayed out of the Camera viewport to never render in Canvas mode. The method has also been optimized further, with less divisions and less checks if culling is disabled. 2018-08-03 00:40:56 +01:00
Richard Davey
eff01adbc9 Added divide argument to the Snap methods. 2018-08-03 00:34:11 +01:00
Richard Davey
c4c8b9e6ea Added copyToContext method 2018-08-02 17:23:52 +01:00
Richard Davey
2a66e01577 Added source property so we can purge TSs based on origin 2018-08-02 16:16:46 +01:00
Richard Davey
51163e6d4e If you set window.FORCE_WEBGL or window.FORCE_CANVAS in the window in which the Phaser game is loaded it will over-ride the renderer type setting in your game config, and force either WebGL or Canvas. This is handy for quickly testing the differences between renderers without having to do a new build each time. 2018-08-02 15:58:36 +01:00
Richard Davey
7566236d9b Added isRenderTexture property. 2018-08-02 12:34:57 +01:00
Richard Davey
3efc800bf7 Use global string to cut down on size a little. 2018-08-02 12:33:48 +01:00
Richard Davey
7ebf5766e8 Added docs for blankTexture and setBlankTexture. 2018-08-01 13:23:03 +01:00
Richard Davey
73524df816 The Game boot event flow has changed slightly. The Game will now listen for a texturesready event, which is dispatched by the Texture Manager when the default textures have finished processing. Upon receiving this, the Game will emit the ready event, which all the other systems listen for and respond to. The difference is that the Renderer uses the texturesready event to ensure that it is the first thing to be activated, before any other system. 2018-08-01 13:18:28 +01:00
Richard Davey
030911cf60 Log update 2018-07-31 23:22:45 +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
bc40830f00 Log update 2018-07-31 17:10:46 +01:00
Richard Davey
f26f78f0fe Updated log 2018-07-31 11:53:02 +01:00
Richard Davey
fa2b78192c The CameraManager was accidentally adding extra destroy event calls when a Scene was restarted, causing an Uncaught TypeError: Cannot read property 'events' of null when trying to destroy a game instance having swapped from a Scene to another, and back again. Fix #3878 2018-07-31 11:34:59 +01:00
Richard Davey
7e73024d83 Added new noReturn destroy boolean for when you absolutely want to nuke the site from orbit. 2018-07-31 10:29:11 +01:00
Richard Davey
3d23013b86 Body setSize changes to fix #3863 PR 2018-07-31 09:39:22 +01:00
Richard Davey
e799a0557a Updated log 2018-07-31 09:31:13 +01:00
Richard Davey
a8b605f42d Zone now calls updateDisplayOrigin in its constructor, causing the displayOriginX and displayOriginY values to now be correct if you create a Zone and then don't resize it. Fix #3865 2018-07-29 12:34:21 +01:00
Richard Davey
2889d68f93 Updated change log 2018-07-29 12:24:14 +01:00
Richard Davey
b30e4185b9 Updated log 2018-07-27 11:19:26 +01:00
Richard Davey
1abe90433f Updated log and docs 2018-07-27 02:49:05 +01:00
Richard Davey
6163340f58 Updated log 2018-07-27 00:53:07 +01:00
Richard Davey
a3c4c60519 Log update. 2018-07-26 16:34:13 +01:00
Richard Davey
c65e7dc5fa Updated log 2018-07-25 23:00:36 +01:00
Richard Davey
e2517486a1 Updated log 2018-07-23 15:52:55 +01:00
Richard Davey
9df7fbaa68 Adding an array of children to a Group would cause it to mistakenly think you were passing a config object. Fix #3854 2018-07-23 13:29:39 +01:00
Richard Davey
09bee35693 Updated log 2018-07-23 01:53:48 +01:00
Richard Davey
2c7280a2c0 Updated log 2018-07-23 01:39:37 +01:00
Richard Davey
2a008e6713 FileType.HTML is a new file type loader that will load an HTML snippet and store it in the new html cache. Access it via load.html (this method was previously used to load html to textures, please see load.htmlTexture for this feature now) 2018-07-19 13:21:51 +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
1d697b1371 Updated log 2018-07-19 00:42:37 +01:00
Richard Davey
ab35dfab95 The setCrop method stored its crop object on the prototype chain by mistake, causing all Images or Sprites that were cropped to display the same frame. The crop data has been moved to the Game Object instance, where it should be, fixing this issue 2018-07-19 00:18:09 +01:00
Richard Davey
20f1b37256 eslint fix and log update 2018-07-18 15:06:56 +01:00
Richard Davey
b6a1033dbd Fixed Camera FX for scaled camera sizes 2018-07-18 15:03:06 +01:00
Richard Davey
14ba51d928 Added Text.setResolution methods. 2018-07-18 14:45:10 +01:00
Richard Davey
1b9f5dc76d Updated change log 2018-07-18 14:32:55 +01:00
Richard Davey
e29671282b Updated change log 2018-07-17 22:44:28 +01:00
Richard Davey
73292c892a Updated change log 2018-07-16 15:16:29 +01:00
Richard Davey
05e6f65d51 3.11 Release 2018-07-13 11:37:57 +01:00
Richard Davey
9a82bd33e5 Updated change log 2018-07-13 11:14:29 +01:00
Richard Davey
944ca91e85 Updated log 2018-07-13 08:30:57 +01:00
Richard Davey
b4ddd44105 Added cullCallback support - the final step in culling. Don't like ours? Roll your own! 2018-07-12 17:06:36 +01:00
Richard Davey
8981cf4a03 Swapped from vec2 to explicit values for cullPadding 2018-07-12 16:51:54 +01:00
Richard Davey
b03d3ff783 Added support for cull padding 2018-07-12 16:44:36 +01:00
Richard Davey
52f50028c3 Updated change log 2018-07-12 16:32:36 +01:00
Richard Davey
7ea53767cd Updated change log 2018-07-12 16:13:00 +01:00
Richard Davey
049f59da70 Updated log and packages 2018-07-12 01:14:52 +01:00
Richard Davey
872788db1e Updated info 2018-07-11 17:20:13 +01:00
Richard Davey
e588ccc321 Updated log 2018-07-11 16:25:03 +01:00
Richard Davey
82b15c8695 Removed drawEmitterManager and moved to emitter render function 2018-07-11 14:40:36 +01:00
Richard Davey
497fa1f2ff Added copyFromArray method 2018-07-11 12:36:49 +01:00
Richard Davey
cced09bad6 Added Pointer.prevPosition and getInterpolatedPosition method 2018-07-11 12:34:00 +01:00
Richard Davey
14354fd151 Added deprecation warning 2018-07-10 17:18:08 +01:00
Richard Davey
9c9e9cecbb Updated log and lint fixes 2018-07-10 16:49:53 +01:00
Richard Davey
f813c3a4e3 Updated log 2018-07-10 16:34:29 +01:00
Richard Davey
469f6b6880 TransformMatrix.multiply has a new optional argument out which is a matrix to store the multiplication results in. If not given it will act as before, multiplying the current matrix. 2018-07-10 14:01:14 +01:00
Richard Davey
4d5eb4755b Updated log 2018-07-09 23:02:31 +01:00
Richard Davey
6560f51699 Added jsdocs and updated change log 2018-07-09 22:35:48 +01:00
Richard Davey
a3803a286f Fixed origin addition post-scale 2018-07-09 16:17:52 +01:00
Richard Davey
91a48c30c4 GetBitmapTextSize, which is used internally in the BitmapText Game Objects, will now produce different bounds from the previous version. Previously, the bounds were tight against the letters in the text. However, this meant the bounds were not properly aligned with the origin of the BitmapText, and consequently you'd get different bounds if the text consisted of different characters. The bounds are now calculated purely based on the glyph data and letter spacing values. This will give a far more consistent overall experience, but it does mean if you were using the bounds to position text previously, you'll need to revisit that code again. See issue #3799 for more details (and to discuss this further if you wish) 2018-07-09 16:06:36 +01:00
Richard Davey
17653fcf7d BitmapMask.destroy will now remove the textures and framebuffers that it created from the WebGL Renderer as part of the destroy process. Fix #3771 2018-07-09 14:26:45 +01:00
Richard Davey
cd508ab3f1 The ScenePlugin will now queue all of the following ops with the Scene Manager: start, run, pause, resume, sleep, wake, switch and stop. This means for all of these calls the Scene Manager will add the call into its queue and process it at the start of the next frame. 2018-07-09 14:08:55 +01:00
Richard Davey
84c7960a48 The Quad Game Object now has a new setFrame method that allows you to change the frame being rendered by the Quad, including using frames that are part of a texture atlas. Fix #3161 2018-07-09 13:42:33 +01:00
Richard Davey
ecd99869bd Explained mask positioning better in docs. Fix #3770 2018-07-08 23:38:13 +01:00
Richard Davey
cb7510b2e5 Updated log 2018-07-08 23:19:33 +01:00
Richard Davey
8b13631107 Removed batchMesh and moved to the Mesh WebGL Renderer. Another one bites the dust. 2018-07-06 19:35:46 +01:00
Richard Davey
6aa1526ea9 Graphics.arc has a new optional argument overshoot. This is a small value that is added onto the end of the endAngle and allows you to extend the arc further than the default 360 degrees. You may wish to do this if you're trying to draw an arc with an especially thick line stroke, to ensure there are no gaps. Fix #3798 2018-07-06 17:15:46 +01:00
Richard Davey
a64d747c98 clearMask(true) would throw an exception if the Game Object didn't have a mask. Now it checks first before destroying the mask. Fix #3809 2018-07-06 16:34:11 +01:00
Richard Davey
1931716da3 Exposed isTinted bool 2018-07-06 16:22:42 +01:00
Richard Davey
901a75d053 setCrop will accept numbers or a Rectangle object 2018-07-06 12:57:42 +01:00
Richard Davey
f195a09530 Rectangle.Intersection will take two Rectangle objects and return the area of intersection between them. If there is no intersection, an empty Rectangle is returned. 2018-07-05 23:54:51 +01:00
Richard Davey
f3a446797d Added new TextureCrop component 2018-07-05 13:06:28 +01:00
Richard Davey
43fc988034 Moved crop UV handler to the Frame method. Cleaner and easier. 2018-07-04 15:18:08 +01:00
Richard Davey
ee8c1b403a Fixed cropping with flipped images 2018-07-04 14:50:26 +01:00
Richard Davey
4b0ed8a0da Merge branch 'master' of https://github.com/photonstorm/phaser 2018-07-03 00:14:28 +01:00
Richard Davey
c82c09914e Updated UV values 2018-07-02 23:51:42 +01:00
Chris Andrew
3360825ec3 Fixed minor change log typos. 2018-07-02 23:10:16 +01:00
Richard Davey
a02d5ffdc8 Updated change log 2018-07-02 16:44:32 +01:00
Richard Davey
cf008e612c Added e and f properties and multiplyWithOffset and copyFrom 2018-07-02 15:33:54 +01:00
Richard Davey
8a7ead03a8 Frame.glTexture is a new property that maps to the WebGL Texture for the Frames Texture Source image. It's used internally by the renderer to avoid expensive object look-ups and is set automatically in the Frame constructor. 2018-07-02 13:43:35 +01:00
Richard Davey
390ae5f683 Update 2018-07-02 13:32:20 +01:00
Richard Davey
fe61cfe2d1 You can now set the WebGL batch size in the Game Config via the property batchSize. The default is 2000 before the batch will flush, which is a happy average between desktop and mobile. If targeting desktop specifically, you may wish to increase this value to reduce draw calls. 2018-07-02 12:33:46 +01:00
Richard Davey
b57d94ae33 Typo fixes 2018-06-29 01:07:14 +01:00
Richard Davey
f97ce72e16 Added the Mask compontent to Container. It worked without it, but this brings it in-line with the documentation and other Game Objects. Fix #3797 2018-06-28 14:17:04 +01:00
Richard Davey
217779604c Added tileScaleX and tileScaleY support for Tile Sprites 2018-06-28 12:59:27 +01:00
Richard Davey
7a23378015 Unified use of roundPixels, antialias and pixelArt modes 2018-06-27 15:15:00 +01:00
Richard Davey
1bfe58ab55 remove can take an array of cameras and also no longer needs total to be > 0 2018-06-27 13:03:40 +01:00
Richard Davey
183f5c4260 CameraManager.getTotal is a new method that will return the total number of Cameras being managed, with an optional isVisible argument, that only counts visible cameras if set. 2018-06-27 12:45:54 +01:00
Richard Davey
f2b7fd0a32 Removed the cameraX properties because they fall out of sync on camera remove 2018-06-27 12:13:37 +01:00
Richard Davey
da2b91b460 ArrayUtils.AddAt didn't calculate the array offset correctly if you passed an array in to be merged with an existing array. This also caused Container.addAt to fail if an array was passed to it. Fix #3788 2018-06-27 11:31:51 +01:00
Richard Davey
d02d6532fd TileSprite was using the Size compontent instead of ComputedSize, meaning its getBounds and displayWidth and displayHeight results were incorrect. Fix #3789 2018-06-27 11:20:21 +01:00
Richard Davey
0fdeec2e26 Updated docs 2018-06-26 17:43:05 +01:00
Richard Davey
c2fbad8356 Added jsdocs. Now 100% complete! 2018-06-26 17:24:51 +01:00
Richard Davey
f1190529d2 ScenePlugin.start and ScenePlugin.restart will now always queue the op with the Scene Manager, regardless of the state of the Scene, in order to avoid issues where plugins carry on running for a frame before closing down. Fix #3776 2018-06-26 16:35:45 +01:00
Richard Davey
b95f980023 Added in data object passing to all relevant methods #3748 2018-06-26 16:08:14 +01:00
Richard Davey
bb7b99a4db Updated log and formatting 2018-06-25 22:53:42 +01:00
Richard Davey
c6c9b25fdc Camera.alpha (and its related method Camera.setAlpha) allows you to get an alpha level for the entire camera. This impacts everything it is rendering, even if those objects also have their own alpha values too. You can tween the property to make the camera contents fade in / out, or you can set it as needed in your game. 2018-06-25 17:35:36 +01:00
Richard Davey
51468fdefc Merge branch 'master' of https://github.com/photonstorm/phaser 2018-06-25 16:25:42 +01:00
Richard Davey
d20188b75d Removed camera pool, renamed current ID and added accessor properties 2018-06-25 16:10:50 +01:00
Richard Davey
0c55745206 Updated log 2018-06-25 16:06:31 +01:00
Chris Andrew
3b3005926a Updated change log. 2018-06-24 00:55:57 +01:00
Richard Davey
6df877cfa3 Docs update 2018-06-23 12:33:20 +01:00
Richard Davey
472df6a7be Camera.centerOn is a new method that will move the camera so its viewport is centered on the given coordinates. A handy way of jumping to different points around a map without needing to calculate the scroll offsets. 2018-06-21 15:54:54 +01:00
Richard Davey
2ff6845360 Camera.centerToBounds didn't take the bounds offset into account, so bounds at non-zero positions wouldn't center properly. All bounds now center correctly. Fix #3706 2018-06-21 14:03:31 +01:00
Richard Davey
3e3b0d6397 Fixed issue where negative camera bounds wouldn't clamp properly 2018-06-21 12:33:20 +01:00
Richard Davey
2c8c4c7a16 Bob.setFrame didn't actually set the frame on the Bob, now it does. Fix #3774 2018-06-20 19:33:59 +01:00
Richard Davey
8fadf99c85 Updated change log 2018-06-20 17:52:23 +01:00
Richard Davey
7d573a35eb Added Camera.setDeadzone method, updated startFollow and added jsdocs. 2018-06-20 14:26:36 +01:00
Richard Davey
d15ac52f02 Updated log 2018-06-19 23:37:08 +01:00
Richard Davey
f1fe131e56 Tidying up Render Texture to make it more useful 2018-06-19 14:14:37 +01:00
Richard Davey
62661b46fb Updated rounded rect functions 2018-06-19 13:17:38 +01:00
Richard Davey
56df2ea829 Updated change log 2018-06-19 12:40:29 +01:00
Richard Davey
e5fbcd5574 Calling Tween.play on a tween created via TweenManager.create wouldn't actually start playback until the tween was first added to the Tween Manager. Now, calling play will have it automatically add itself to the Tween Manager if it's not already in there. Fix #3763 2018-06-19 12:28:29 +01:00
Richard Davey
28851ff69b Use hyphens instead of underscores. Fix #3751 2018-06-14 13:30:33 +01:00
Richard Davey
52d04ee5f9 The LoaderPlugin didn't emit the filecomplete event if any of files failed to load, causing it to fail to run the Scene create function as well. Fix #3750 2018-06-14 13:23:15 +01:00
Richard Davey
62deef81d8 Preparing for 3.11.0 development 2018-06-13 15:51:07 +01:00
Richard Davey
6456ef10a6 Touch pointer total fix
The InputManager would only create 1 Pointer, even if Touch input was enabled in the config, which meant you couldn't use touch events unless you first called `addPointer` or specified one in the config. Now, it Touch is enabled in the config, it'll always create 2 pointers by default.
2018-06-13 13:51:04 +01:00
Richard Davey
16f61b402b 3.10 Release 2018-06-13 09:00:40 +01:00
Richard Davey
641abd300b Updated the change log 2018-06-12 16:21:44 +01:00
Richard Davey
6dba00a9a7 Updated change log 2018-06-12 13:15:07 +01:00
Richard Davey
5313343730 Pointers capped at 10 max. 2018-06-11 13:39:28 +01:00
Richard Davey
e6e33f5e21 Added Game.isOver and mouseover and mouseout events. 2018-06-11 12:32:25 +01:00
Richard Davey
c24f3b8fdb Updated change log 2018-06-11 11:54:09 +01:00
Richard Davey
0b8915520b Added eslint rules. Fixed incorrect ES6 use. 2018-06-11 09:05:52 +01:00
Richard Davey
4304811dde Added new Pixel Perfect input handler and makePixelPerfect method. 2018-06-08 17:50:47 +01:00
Richard Davey
680d34b3c4 Convert Gamepad Manager to an Input Plugin 2018-06-08 16:17:58 +01:00
Richard Davey
02554984fe Removed KeyboardManager and replaced with KeyboardPlugin
The `KeyboardManager` class has been removed. It has been replaced with `KeyboardPlugin` which is now an Input level plugin, that registers itself with the new `InputPluginCache`. The Input Plugin class (which belongs to a Scene) will now automatically inject registered plugins into itself on boot. Every Scene has its own instance of the Input Plugin (if enabled in the scene plugins), which in turn has its own instance of the KeyboardPlugin. The `InputManager` no longer has any reference to the Keyboard class at all. The benefits of this are two-fold: First, it allows you to now entirely exclude all of the keyboard classes from a custom build, saving a lot of space if not required. Secondly, it means that the Scenes themselves are now responsible for keyboard events, where-as before they were entirely global. This means a Scene can be paused and stop processing keyboard events, and stop having its Key objects updated, while another Scene can still carry on doing this. It also prevents key related callbacks in sleeping Scenes from being fired (which resolves issue #3733, thanks @JoeMoov2)
2018-06-08 15:16:35 +01:00
Richard Davey
43fd10bbc1 ScenePlugin.run is a new method that will run the given Scene and not change the state of the current Scene at all. If the scene is asleep, it will be woken. If it's paused, it will be resumed. If not running at all, it will be started. 2018-06-08 15:07:00 +01:00
Richard Davey
a2c20a9aa7 lint fixes 2018-06-05 01:08:32 +01:00
Richard Davey
c0ac1259ea Significant Data Manager overhaul.
Adds in values property, removes redundant functions, streamlines the event flow, adds features to the get and set handlers.
2018-06-05 01:01:13 +01:00
Richard Davey
a0e4a07920 In TimeStep.step the rawDelta and delta values are checked to make sure they are non-negative, which can happen in Chrome when the delta is reset and out of sync with the value passed to Request Animation Frame. Fix #3088 2018-06-04 22:29:58 +01:00
Richard Davey
dced3a2090 Updated log. 2018-06-04 22:15:05 +01:00
Richard Davey
719a2eedca Interactive Objects inside of Containers would still fire their input events even if the Container (or any ancestor) was set to be invisible. Objects now check their ancestor tree during the input cull and now properly skip input events if not visible. Fix #3620 2018-06-04 21:04:27 +01:00
Richard Davey
a804d7fc75 Formatting fixes. 2018-06-04 17:26:47 +01:00
Richard Davey
8aacb7fe77 Typo 2018-06-04 17:13:38 +01:00
Richard Davey
6092088afc Updated change log. 2018-06-04 17:03:38 +01:00
Richard Davey
699951bc40 Updated change log 2018-06-04 16:49:17 +01:00