Commit graph

440 commits

Author SHA1 Message Date
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
Richard Davey
ecfbea8bd4 Updated change log. 2018-06-04 15:19:32 +01:00
Richard Davey
130ab75c74 Updated change log 2018-06-04 13:24:55 +01:00
Richard Davey
e7fec396e1 If a Body collides with a Static Body it will now set the blocked properties accordingly 2018-06-03 21:17:33 +01:00
Richard Davey
e3e4130a15 Updated log 2018-06-03 17:08:16 +01:00
Richard Davey
fb817833a5 Updated change log 2018-06-02 12:45:34 +01:00
Richard Davey
95826aa95f Merge branch 'master' of https://github.com/photonstorm/phaser 2018-06-01 19:19:21 +01:00
Richard Davey
2a4e6ae56e Updated log with Arcade Physics changes 2018-06-01 19:19:18 +01:00
Chris Andrew
4750e92be4 Fixed a method signature issue with the Animation component's 'remove' event handler.
This prevented removed animations from stopping correctly, when they were removed from the AnimationManager.
2018-06-01 14:37:15 +01:00
Richard Davey
2dc7f1dc4e Updated change log 2018-06-01 00:06:05 +01:00
Chris Andrew
b2ef86534e Updated change log. 2018-05-31 18:05:54 +01:00
Chris Andrew
ee6f48b10c Fixed an incorrect usage of Math.abs() in Quaternion.calculateW() (thanks @qxzkjp). 2018-05-31 18:05:31 +01:00
Chris Andrew
fb55b9bb44 Updated change log. 2018-05-31 17:44:22 +01:00
Richard Davey
f45ab89f8d The ForwardDiffuseLightPipeline, used by the Lights system, now sets a flag if the Scene doesn't contain any lights. All of the Game Objects now check this flag and don't even bother adding themselves to the batch if there are no lights in the Scene, as they'd never render anyway. This also avoids the ghost-image problem if you swap Scenes to a new Scene with the Light Manager enabled, but no actual lights defined. Fix #3707 2018-05-31 16:57:30 +01:00
Richard Davey
20e21ff5ac Rectangle.RandomOutside is a new function that takes two Rectangles, outer and inner, and returns a random point that falls within the outer rectangle but is always outside of the inner rectangle. 2018-05-31 14:07:39 +01:00
Richard Davey
a739be27a1 RenderTexture.resize will allow you to resize the underlying Render Texture to the new dimensions given. Doing this also clears the Render Texture at the same time 2018-05-29 12:07:40 +01:00
Richard Davey
a7da8dc28f The Canvas RenderTexture drawImage method incorrectly set the values of the frame, causing them to appear wrongly scaled in the canvas renderer. Fix #3710 2018-05-29 11:50:23 +01:00
Richard Davey
d2981a8576 Preparing for 3.10 dev work 2018-05-25 00:21:01 +01:00
Richard Davey
23d3fe3774 3.9.0 Release 2018-05-24 23:42:40 +01:00
Richard Davey
6cfc5d49e7 The AudioContextMonkeyPatch has been updated to use an iife. Fix #3437 2018-05-24 23:17:33 +01:00
Richard Davey
3d9da060c5 Camera.shake would not effect dynamic tilemap layers. Fix #3669 2018-05-24 23:02:59 +01:00
Richard Davey
7d692bc7dc Added Camera.followOffset property and helper methods setLerp and setFollowOffset. 2018-05-24 17:30:28 +01:00
Richard Davey
f8cda698e4 Added Camera.lerp and implemented linear interpolation when following targets 2018-05-24 15:29:38 +01:00
Richard Davey
57c2ccbf5e Formatting fix and doc update 2018-05-24 14:03:29 +01:00
Richard Davey
35a5a6d2da updated change log 2018-05-24 13:49:51 +01:00
Richard Davey
68303622f2 Setting an existing Game Object as a static Arcade Physics body would sometimes incorrectly pick-up the dimensions of the object, such as with TileSprites. Fix #3690 2018-05-23 15:17:26 +01:00
Richard Davey
6eea9db9b2 jsdoc fixes. FIx #3694 2018-05-23 15:04:54 +01:00
Richard Davey
63bb14c37c Log update 2018-05-23 14:58:44 +01:00
Richard Davey
b6768f8a0f Added contributor 2018-05-22 23:23:01 +01:00
Richard Davey
8aa116ca4b The dragend event would be broadcast even if the drag distance or drag time thresholds were not met. Fix #3686 2018-05-22 21:24:50 +01:00
Richard Davey
de8462efed Added default values and tidied up docs a little 2018-05-22 16:19:18 +01:00
Richard Davey
a9cbf23b4e Log update 2018-05-22 16:13:05 +01:00
Richard Davey
457ab68ef4 Container updated to use preDestroy and remove event hooks 2018-05-22 16:02:28 +01:00
Richard Davey
0b1d32b571 New registerFileType argument, new Global Plugin mapping and createEntry method
* PluginManager.registerFileType has a new property `addToScene` which allows you to inject the new file type into the LoaderPlugin of the given Scene. You could use this to add the file type into the Scene in which it was loaded.
* PluginManager.install has a new property `mapping`. This allows you to give a Global Plugin a property key, so that it is automatically injected into any Scenes as a Scene level instance. This allows you to have a single global plugin running in the PluginManager, that is injected into every Scene automatically.
* PluginManager.createEntry is a new private method to create a plugin entry and return it. This avoids code duplication in several other methods, which now use this instead.
2018-05-18 18:43:27 +01:00
Richard Davey
56888fd5db Game will now auto-focus and prevent focus loss for the keyboard when clicking away and back again
* Game has a new property `hasFocus` which is a read-only boolean that lets you know if the window the game is embedded in (including in an iframe) currently has focus or not.
* Game.Config has a new property `autoFocus`, which is `true` by default, and will automatically call `window.focus()` when the game starts.
* Clicking on the canvas will automatically call `window.focus`. This means in games that use keyboard controls if you tab or click away from the game, then click back on it again, the keys will carry on working (where-as before they would remain unfocused)
2018-05-18 17:37:45 +01:00
Richard Davey
7c28a7bd08 Bob.reset will now reset the position, frame, flip, visible and alpha values of the Bob, plus JSDocs completed. 2018-05-18 14:44:25 +01:00
Richard Davey
9429a28574 The Particle tint value was incorrectly calculated, causing the color channels to be inversed. Fix #3643 2018-05-18 13:16:17 +01:00
Richard Davey
ef2b8d68b6 setInteractive now works on non-zero sized Containers. Sorting fixed. 2018-05-18 12:48:12 +01:00
Richard Davey
919676ae10 PluginManager.destroy didn't reference the plugin correctly, throwing an Uncaught TypeError if you tried to destroy a game instance. Fix #3668 2018-05-17 12:16:14 +01:00
Richard Davey
b4f371edc5 Preparing for 3.9 dev 2018-05-16 22:05:25 +01:00
Richard Davey
0d0846a415 Calling a creator, such as GraphicsCreator, without passing in a config object, would cause an error to be thrown. All Game Object creators now catch against this. 2018-05-16 15:17:08 +01:00
Richard Davey
dfc3cb92c0 3.8.0 Release 2018-05-16 15:08:01 +01:00
Richard Davey
26faa58ad7 Corrected an error in Container.getBoundsTransformMatrix that called a missing method, causing a getBounds on a nested container to fail. Fix #3624 2018-05-15 16:23:33 +01:00
Richard Davey
5b0cb0faf3 All Game Objects have a new method setRandomPosition which will randomly position them anywhere within the defined area, or if no area is given, anywhere within the game size. 2018-05-15 15:58:53 +01:00
Richard Davey
2f4358fed4 The keycodes for 0 to 9 on the numeric keypad have been added. You can now use them in events 2018-05-15 15:57:26 +01:00
Richard Davey
9500a6ee32 When calling generateFrameNames to define an animation from a texture atlas you can now leave out all of the config properties and it will create an animation using every frame found in the atlas. Please understand you've no control over the sequence of these frames if you do this and it's entirely dictated by the json data 2018-05-15 15:34:57 +01:00
Richard Davey
6ef465a734 Animation.yoyo was ignored when calculating the next frame to advance to, breaking the yoyo effect. It now yoyos properly 2018-05-15 09:40:22 +01:00
Richard Davey
f410dc3d88 The Headless renderer was broken due to an invalid access during TextureSource.init. 2018-05-15 08:51:54 +01:00
Richard Davey
bdf9f5ce60 Utils.Array.BringToTop failed to move the penultimate item in an array due to an index error. Fix #3658 2018-05-15 08:45:39 +01:00
Richard Davey
4741ee02b1 Updated docs and lint fixes 2018-05-11 18:55:44 +01:00
Richard Davey
2f4c52b7e4 Remapped EventEmitter correctly to Phaser.Events.EventEmitter 2018-05-11 14:05:34 +01:00
Richard Davey
0a46c13f4c Working through new plugin structure 2018-05-11 01:50:37 +01:00
Richard Davey
11cbf0cf8d Marked the children parameter as optional. Fix #3657 2018-05-10 23:32:46 +01:00
Richard Davey
cc9d3160b1 Update type 2018-05-10 13:07:49 +01:00
Richard Davey
7a4b29872e Allow for custom canvas and context game config options. Game.context now set in WebGL mode. Allows WebGL2 contexts to be passed in. Fix #3653 2018-05-10 12:25:33 +01:00
Richard Davey
835bc37e32 Optimized TextureTintPipeline.drawBlitter so it skips bobs that have alpha of zero and only calls setTexture2D if the bob sourceIndex has changed, previously it called it for every single bob. 2018-05-09 15:13:06 +01:00
Richard Davey
056e74d6dc Added compression object for future texture compression support. 2018-05-09 13:46:19 +01:00
Richard Davey
6350976329 Updated change log 2018-05-09 13:02:31 +01:00
Richard Davey
89329a2315 Added getMaxTextures and getMaxTextureSize methods 2018-05-09 12:12:16 +01:00
Richard Davey
d90e012898 Preparing for 3.8.0 2018-05-09 11:23:41 +01:00
Richard Davey
7788602518 3.7.1 Release 2018-05-08 23:47:33 +01:00
Richard Davey
57918bb50f Removed the need for raw-loader in webpack. Shaders now build to standard JS files. Removed fs requirement. 2018-05-08 23:04:57 +01:00
Richard Davey
ec3bd4c729 The WebAudioSoundManager will now listen for 'click' events on the document body, as well as touch events, before resuming the AudioContext. 2018-05-08 16:51:43 +01:00
Richard Davey
672a535d88 Added disableInteractive and removeInteractive methods. #3621 2018-05-08 16:15:50 +01:00
Richard Davey
cfef9c97aa Updated change log 2018-05-08 13:16:59 +01:00
Richard Davey
560b0ca84b Binary files have a new optional dataType property to cast the data to upon load. 2018-05-08 01:12:41 +01:00
Richard Davey
ad6c08a4d0 Preparing for 3.7 release next week 2018-05-04 18:57:34 +01:00
Richard Davey
7c53e13e81 Finished jsdocs 2018-05-04 18:50:10 +01:00
Richard Davey
8e7df2a234 You can now set the X-Requested-With header in the XHR requests by specifying it in your XHRSettings config, either in the game, scene or file configs. 2018-05-04 17:33:48 +01:00
Richard Davey
8b574f271f Loader.enableParallel has been removed. If you don't want parallel file loads then set the maximum parallel limit to 1. Related to this, the Game Config loaderEnableParallel property has been removed. 2018-05-04 17:13:27 +01:00
Richard Davey
faef3449f5 Added jsdocs 2018-05-04 16:00:02 +01:00
Richard Davey
6d83cae2dc The Texture class has a new method getDataSourceImage which will return the raw image data of the data source. 2018-05-04 14:33:02 +01:00
Richard Davey
97dd683ea1 The Forward Diffuse Light Pipeline was hard coded to assume the normal map would be stored in the source index zero. It now correctly obtains the normal map from the frame source index, which means all Game Objects that used frames from multi-atlas textures will now work with lights properly. 2018-05-04 14:31:19 +01:00
Richard Davey
82591113bd Updated change log 2018-05-04 02:36:53 +01:00
Richard Davey
107ca71d6b BitmapText, both static and dynamic, can now take any data-type, including numbers, for the text argument in the constructor. Before they only worked via setText 2018-05-03 15:52:12 +01:00
Richard Davey
ab303f0f1f Updated change log 2018-05-03 00:36:37 +01:00
Richard Davey
28251fd0f5 addToScene added to all Game Object Creators 2018-05-02 10:57:26 +01:00
Richard Davey
a14ce15685 Fixed setActive and setVisible 2018-05-01 12:35:56 +01:00
Richard Davey
e1532b3154 The Scene Systems will emit a ready event when it has fully finished starting up and all plugins are available. Fix #3636 2018-05-01 12:22:18 +01:00
Richard Davey
5d3c06d8b7 ScenePlugin.getIndex will return the index of the given Scene in the Scene List. 2018-05-01 01:23:19 +01:00
Richard Davey
63dbd9fd12 The Animation Component setProgress method was setting the frame on the wrong object. Fix #3633 2018-04-30 12:37:50 +01:00
Richard Davey
fbb6143f81 Updated change log 2018-04-30 12:28:33 +01:00
Richard Davey
9a974514ff Added new LinkFile class and updated other file types to use it. 2018-04-27 18:44:12 +01:00
Richard Davey
ef136f684d Polygon.setTo would fail if given an array of arrays as a list of points. Fix #3619 2018-04-26 15:55:27 +01:00
Richard Davey
65c54f4b8d Array.AddAt would fail if it branched to the fast-path within a Container due to an invalid property. Fix #3617 2018-04-26 15:44:56 +01:00
Richard Davey
b421499b89 Updated log 2018-04-26 13:05:57 +01:00
Richard Davey
b4ddfe3181 Updated log 2018-04-26 13:05:00 +01:00
Richard Davey
103e0c8727 Updated RandomDataGenerator.shuffle to remove several internal calls as min is always zero 2018-04-26 13:02:13 +01:00
Richard Davey
038bbcc7bc Fixed the remaining file types. 2018-04-25 23:16:17 +01:00
Richard Davey
d258fc30e9 Change log udpated 2018-04-25 17:16:46 +01:00
Richard Davey
8bdeb69716 Updated change log 2018-04-23 23:53:04 +01:00
Richard Davey
6c3ed1e455 Updated change log 2018-04-23 23:47:14 +01:00
Richard Davey
ced2d34b34 BitmapMask and GeometryMask both have new destroy methods which clear their references, freeing them for gc. 2018-04-23 00:13:04 +01:00
Richard Davey
a7651349f0 Updated change log 2018-04-22 23:10:14 +01:00
Richard Davey
445439e253 The Texture Manager will now emit an addtexture event whenever you add a new texture to it, which includes when you load images files from the Loader (as it automatically populates the Texture Manager). Once you receive an addtexture event you know the image is loaded and the texture is safe to be applied to a Game Object. 2018-04-20 18:57:23 +01:00
Richard Davey
1185586b23 Web Audio context.close now picks up the Promise. 2018-04-20 14:01:57 +01:00
Richard Davey
e3aa437340 DataManagerPlugin would throw an error on Game.destroy if you had any Scenes in the Scene Manager had not been run. Fix #3596 2018-04-20 13:34:45 +01:00
Richard Davey
4018d6ab39 Added require.extensions and eslint rule. Fix #3598 2018-04-20 01:10:04 +01:00
Richard Davey
6299019838 Updated to use typeof DefinePlugin check. 2018-04-20 00:23:24 +01:00
Richard Davey
fc4fdc4e3c Preparing for 3.6.1 2018-04-19 22:47:10 +01:00
Richard Davey
75b250ba5b 3.6.0 Release 2018-04-19 14:45:54 +01:00
Richard Davey
cfc4528370 Containers no longer in beta. 2018-04-19 14:35:17 +01:00
Richard Davey
305ffdf840 Updated change log 2018-04-19 14:28:22 +01:00
Richard Davey
3d0be3e20c Group.remove and clear have optional destroyChild arguments 2018-04-19 14:13:46 +01:00
Richard Davey
176b085402 jsdoc fix 2018-04-19 13:28:10 +01:00
Richard Davey
f2c629c588 Updated change log 2018-04-18 22:46:49 +01:00
Richard Davey
f57ab02fe6 Recoded how RTree generations its functions. Solves perf issue introduced in 3.4 Fix #3594 2018-04-18 22:32:52 +01:00
Richard Davey
c391662faa Updated log and changed version 2018-04-18 13:29:15 +01:00
Richard Davey
6772a548dc Preparing for 3.6.0 2018-04-17 20:55:47 +01:00
Richard Davey
765730c4b6 3.5.1 Release 2018-04-17 20:51:31 +01:00
Richard Davey
152a01731b Updated log 2018-04-17 18:17:50 +01:00
Richard Davey
89c9da54ac Added more contributors 2018-04-17 17:04:43 +01:00
Richard Davey
8eef87b858 Log update 2018-04-17 16:00:02 +01:00
Richard Davey
d8c519c88c Updated change log 2018-04-17 02:37:56 +01:00
Richard Davey
07a55e5d1f Removed debug call and merged Scene Systems boot and start sequences. Fix #3579 2018-04-17 02:34:07 +01:00
Richard Davey
1eff0b2889 Phaser 3.5.0 Build 2018-04-16 19:44:39 +01:00
Richard Davey
5ccac599a6 Updated docs and destroy properties 2018-04-16 17:14:12 +01:00
Richard Davey
b28a7276f4 Fixed Game.destroy 2018-04-16 17:02:32 +01:00
Richard Davey
c37c6365d3 The RandomDataGenerator class is now exposed under Phaser.Math should you wish to instantiate it yourself. Fix #3576 2018-04-16 16:07:52 +01:00
Richard Davey
ccb2ed5f50 Updated change log 2018-04-15 23:45:59 +01:00
Richard Davey
ccf72228e3 Updated change log 2018-04-15 23:34:01 +01:00
Richard Davey
e8d50a9796 Explained changes to cameras 2018-04-15 13:00:43 +01:00
Richard Davey
ce7d67297f Moving from 3.4.1 to 3.5.0 so we can release new camera fx and scene transitions 2018-04-15 12:44:47 +01:00
Richard Davey
02be81cc48 Merge branch 'master' of https://github.com/photonstorm/phaser 2018-04-15 05:05:09 +01:00
Richard Davey
ae603240e1 Camera.cullHitTest has been removed. It was never used internally and duplicates the code in Camera.cull. 2018-04-15 04:01:39 +01:00
Pavle Goloskokovic
8b2473104e Fixes #3309 2018-04-14 19:04:50 +02:00
Richard Davey
06e5fc0336 Camera extends Event Emitter and moved to effect based system 2018-04-14 12:35:14 +01:00
Richard Davey
b5ba6a6afb Added enabled property 2018-04-14 04:23:11 +01:00
Richard Davey
a01535ea78 Group.add and Group.addMultiple now respect the Group.maxSize property, stopping you from over-populating a Group. 2018-04-13 17:59:29 +01:00
Richard Davey
f53430ec54 Log update 2018-04-13 17:52:28 +01:00
Richard Davey
7aad8afa02 Log update 2018-04-13 17:21:34 +01:00
Richard Davey
59bc9dd0d9 Added GameObject.ignoreDestroy 2018-04-13 17:20:46 +01:00
Richard Davey
6b2307594a Scene plugin flow overhaul
Every Plugin has been updated to correctly follow the same flow through the Scene lifecycle. Instead of listening for the Scene 'boot' event, which is only dispatched once (when the Scene is first created), they will now listen for the Scene 'start' event, which occurs every time the Scene is started. All plugins now consistently follow the same Shutdown and Destroy patterns too, meaning they tidy-up after themselves on a shutdown, not just a destroy. Overall, this change means that there should be less issues when returning to previously closed Scenes, as the plugins will restart themselves properly.
2018-04-13 17:12:17 +01:00
Richard Davey
c8bbea552d Fixed issue in HTMLAudioSound where mute would get into a recursive loop. 2018-04-13 12:53:03 +01:00
Richard Davey
623df29522 The Scene Manager would never reach an isBooted state if you didn't add any Scenes into the Game Config. Fix #3553 2018-04-13 12:24:02 +01:00
Richard Davey
a193210171 Log update 2018-04-13 12:16:21 +01:00
Richard Davey
e99f2e78e4 Updated log 2018-04-13 12:10:03 +01:00
Richard Davey
8afa6c9c7f MatterEvents.off() would cause a TypeError if you destroyed the Matter world. Fix #3562 2018-04-13 12:07:27 +01:00