Commit graph

810 commits

Author SHA1 Message Date
Richard Davey
3f511a73cd Replace integer[] with number[] 2020-11-23 10:23:10 +00:00
Richard Davey
02c34cd64e Replace integer with number 2020-11-23 10:22:13 +00:00
Richard Davey
619fd18028 MouseManager.preventDefaultWheel is a new boolean property, set via the inputMousePreventDefaultWheel config option that allows you to toggle capture of mouse wheel at runtime. 2020-10-07 10:14:02 +01:00
Richard Davey
a16ab01e22 MouseManager.isTop is a new boolean read-only property that flags if the mouse event listeners were attached to window.top (true), or just window (false). By default Phaser will attempt window.top, but this isn't possible in all environments, such as cross-origin iframes, so it will fall back to window in those cases and set this property to false 2020-10-05 10:40:35 +01:00
Richard Davey
0fb0c094c6 Removed inner loop 2020-10-05 08:07:06 +01:00
Richard Davey
76deec0ef6 When destroying an interactive Game Object that had useHandCursor enabled, it would reset the CSS cursor to default, even if the cursor wasn't over that Game Object. It will now only reset the cursor if it's over the Game Object being destroyed. Fix #5321
The `InputPlugin.shutdown` method will now reset the CSS cursor, in case it was set by any Game Objects in the Scene that have since been destroyed.
2020-09-22 22:40:56 +01:00
Richard Davey
aea0e4c925 Pointer.down will now check if the browser is running under macOS and if the ctrl key was also pressed, if so, it will flag the down event as being a right-click instead of a left-click, as per macOS conventions. Fix #4245 2020-09-22 20:42:38 +01:00
samme
08b2ea467b Docs: correct CursorKeys
Properties not optional
2020-09-18 08:57:05 -07:00
Richard Davey
b63cc75154 Remove Camera.resolution use 2020-09-12 11:55:38 +01:00
Richard Davey
f2fca49b3f Remove Camera resolution use 2020-09-12 11:55:26 +01:00
Richard Davey
2acfbfbe71 Gamepad._created is a new private internal property that keeps track of when the instance was created. This is compared to the navigator timestamp in the update loop to avoid event spamming. Fix #4890. 2020-09-11 14:01:55 +01:00
Richard Davey
5ecdc3b4a2 The GamepadPlugin will now call refreshPads as part of its start process. This allows you to use Gamepads across multiple Scenes, without having to wait for a connected event from each one of them. If you've already had a connected event in a previous Scene, you can now just read the pads directly via this.input.gamepad.pad1 and similar. Fix #4890 2020-09-11 14:00:14 +01:00
Richard Davey
57657ce76c Updated JSDocs. Fix #5268 2020-09-11 11:08:43 +01:00
Richard Davey
56bbfbcb62 Removed capture and added preventDefaultDown, Up and Move instead. Also better passive handling and smaller listeners. 2020-09-11 10:59:47 +01:00
Richard Davey
a04690d5af The onMouse events in the Input Manager didn't reset the activePointer property to the mouse, meaning on dual-input systems such as Touch Screen devices, the active pointer would become locked to whichever input method was used first. Fix #4615 #5232 2020-09-11 09:48:13 +01:00
Richard Davey
205552d69c Fix namespaces. Fix #5289 2020-09-10 17:04:56 +01:00
Richard Davey
5e9b629a97
Merge pull request #5284 from samme/feature/scene-resume-wake-reset-keys
Reset keys when scene sleeps or pauses
2020-09-02 21:50:42 +01:00
samme
288d023bab Reset keys when scene sleeps or pauses #5281 2020-09-01 12:42:57 -07:00
Richard Davey
d2cc809fdb Exported functions to namespace 2020-09-01 18:56:01 +01:00
Richard Davey
02ac6bcb7d If inputWindowEvents is set in the Game Config, then the MouseManager will now listen for the events on window.top instead of just window, which should help in situations where the pointer is released outside of an embedded iframe. Fix #4824 2020-09-01 17:51:17 +01: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
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
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
Richard Davey
6c7437cdc4
Merge pull request #5198 from samme/feature/KeyboardPlugin-removeAllKeys
Add KeyboardPlugin#removeAllKeys
2020-07-13 13:04:53 +01:00
Richard Davey
a7ded1ee21 KeyboardPlugin.checkDown didn't set the duration to zero if the parameter was omitted, causing it to always return false. Fix #5146 2020-07-13 12:12:28 +01:00
Richard Davey
9a34fa9197
Merge pull request #5171 from samme/fix/input-noop
Fix NOOP import
2020-07-13 11:42:32 +01:00
Jay Mattis
c5cfae0118 Fix drag coordinates with camera zoom (issue 4755)
The dragX and dragY passed to 'dragStart' and 'drag' events are supported to be in world coordinates (as specified by the docs) but the coordinates used (pointer.x and pointer.y) were not transformed by the camera into world space. The drags now use pointer.worldX and pointer.worldY which are the post-transform coordinates.
2020-07-12 21:13:33 -07:00
samme
af141f6bf0 Add KeyboardPlugin#removeAllKeys 2020-06-23 11:58:26 -07:00
samme
4722750f62 Fix NOOP import
Fixes #5170
2020-05-27 18:20:05 -07:00
Richard Davey
afe3d7ff7b Update InputPlugin.js 2020-04-27 16:40:33 +01:00
Richard Davey
2d05802125
Merge pull request #4851 from rexrainbow/Input-event-of-container-bug
Fix input-event bug in nested container
2020-04-27 13:50:16 +01:00
Richard Davey
e1b8b04623
Merge pull request #4975 from JasonHK/jsdoc
Fixed `this` return types
2020-04-27 13:25:58 +01:00
Richard Davey
e85a66f4e9 Shouldn't be part of the Container 2020-04-27 13:04:08 +01:00
Richard Davey
f66e05b81d
Merge pull request #5042 from Minious/master
Fix wrong Container.getBounds with child container
2020-04-27 13:01:53 +01:00
Richard Davey
2c80fad116 When enabling a Game Object for Input Debugging the created debug shape will now factor in the position, scale and rotation of the Game Objects parent Container, if it has one. #4998 2020-04-27 12:52:36 +01:00
Richard Davey
9f5ac5e46b
Merge pull request #4998 from scott20145/fix_inputdebug_shape_position
Fix inputDebug shape position when the target is inside a container
2020-04-27 12:45:25 +01:00
Godard
5fd94d76a7 fix Input enableDebug function, add debug Shape to parentContainer 2020-04-09 12:04:20 -04:00
scott.l
10322fcd3a use gameObject's world position as the debug shape position 2020-02-11 00:34:38 +08:00
Jason Kwok
f8fd901d96 Fixed this return types for Phaser.Input.Touch.TouchManager 2020-01-30 23:46:02 +08:00
Jason Kwok
fc51d38e47 Fixed this return types for Phaser.Input.Mouse.MouseManager 2020-01-30 23:43:02 +08:00
Jason Kwok
3367ddc1fe Fixed this return types for Phaser.Input.InputPlugin 2020-01-30 17:48:47 +08:00
Jason Kwok
23ad6e4241 Fixed this return types for Phaser.Input.Keyboard.KeyboardPlugin 2020-01-30 17:42:59 +08:00
Jason Kwok
c71acd3725 Fixed this return types for Phaser.Input.Keyboard.Key 2020-01-30 17:40:23 +08:00
mkt
912c0e3bbc
set depth of input debug body 2020-01-22 19:01:26 +01:00
Richard Davey
ff65e69cd1 Changed copyright date to 2020 2020-01-15 12:07:09 +00:00
Javier García Álvarez
9d418eae73 Fixed jsdoc types to get TS definition intellisense. 2019-12-18 12:25:14 +01:00
F. Selçuk Can
4354255602
changed L12 "pointerup" to "pointerout" 2019-11-26 13:33:29 +03:00
Richard Davey
1e20ad706e ADD and SUBTRACT added 2019-11-18 17:09:30 +00:00
Richard Davey
55a4146726
Merge pull request #4826 from Olliebrown/input-drag-thresholds
Fixes for malfunctioning Drag Threshold properties (Issue #4667)
2019-11-18 15:51:26 +00:00
Hua
3b47221d25 Fix input-event bug in nested container 2019-11-06 15:51:01 +08:00
Seth Berrier
174dcfdada Fixes for drawing of hitboxes in input.debug
- Offset hitboxes now draw properly when debug enabled for all shapes
- Addresses issue #4722
2019-10-28 09:43:25 -05:00
Seth Berrier
7b711bd11b Fixes for malfunctioning Drag Threshold properties
- According to issue #4667 drag thresholds have been broken since 3.18
- Changed processDragMove event to check thresholds if set
- Fixed use of '||' when it should be '&&' for skipping threshold checks
- Adding missing 'time' parameter when calling threshold check function
2019-10-25 14:03:43 -05:00
Richard Davey
c60530eedd Removed commented-out code 2019-10-11 18:35:27 +01:00
Richard Davey
be15a59093 Your guess is as good as mine \o/~? 2019-10-11 18:19:25 +01:00
Richard Davey
c1044379f3 TouchManager.disableContextMenu is a new method that will try to disable the context menu on touch devices, if the Game Config disableContextMenu is set. Previously, it only tried to do it for the Mouse Manager, but now does it for touch as well. Fix #4778 2019-10-11 13:42:33 +01:00
Richard Davey
4e8ab3dcae MouseManager.target can now be defined as either a string or by passing an HTMLElement directly. Fix #4353 2019-10-02 13:39:42 +01:00
Richard Davey
4be4ba4823
Merge pull request #4707 from MatthewAlner/Bug#4706-ignored-attempt-to-cancel-a-touchstart
Bug#4706 add `event.cancelable` check
2019-09-26 12:09:06 +01:00
Richard Davey
d875a59958 InteractiveObject.alwaysEnabled is a new boolean that allows an interactive Game Object to always receive input events, even if it's invisible or won't render. 2019-09-24 12:36:28 +01:00
Richard Davey
9f8e9d2afc InputPlugin.processDragMove has been updated so that the resulting dragX and dragY values, sent to the event handler, now compensate for the scale of the Game Objects parent container, if inside of one. This means dragging a child of a scale Container will now still drag at 'full' speed. 2019-09-16 15:47:18 +01:00
Matthew Alner
4b42bc426b Bug#4706 add event.cancelable check 2019-08-11 12:46:28 +01:00
Richard Davey
f872b1ece9 Updated docs 2019-08-07 12:20:17 +01:00
Richard Davey
5dd75b64fc Pointer.updateWorldPoint is a new method that takes a Camera and then updates the Pointers worldX and worldY values based on the cameras transform 2019-08-07 12:10:50 +01:00
Richard Davey
08c09b539d Added enableDebug and removeDebug from the Input Plugin, allowing you to create debug shapes to test where input hit areas are. 2019-07-19 15:16:10 +01:00
Richard Davey
aceecf0b95 InputManager.resetCursor will now check if the canvas element still exists before resetting the cursor on it. Fix #4662 2019-07-19 14:32:07 +01:00
Richard Davey
131bf336ee Update Pointers every frame, if not already updated. 2019-07-08 14:59:19 +01:00
Richard Davey
84522136d0 We can now use the locked property and don't need to add to the movement values every frame. Fix #4611 2019-07-08 14:59:06 +01:00
Richard Davey
af37728e31 Added onPointerLockChange handler. 2019-07-08 13:29:50 +01:00
Richard Davey
254f3843e5 Added locked property. 2019-07-08 13:29:39 +01:00
Richard Davey
c7e2fbb31c Calling input.mouse.requestPointerLock() will no longer throw an error about being unable to push to the Input Manager events queue. #4611 2019-07-08 13:27:46 +01:00
Richard Davey
14a6864f21 If you called Scene.destroy within a Game Object pointerdown or pointerup handler, it would cause the error "Cannot read property 'game' of null" if the event wasn't cancelled in your handler. It now checks if the manager is still there before accessing its property. Fix #4436 2019-06-27 01:13:27 +01:00
Richard Davey
839e298c4e Pointer.getDuration would return a negative / static value on desktop, or NaN on mobile, because the base time wasn't being pulled in from the Input Manager properly. Fix #4612 2019-06-24 10:58:44 +01:00
Rex
16a038674f Set customHitArea to false if shape is not defined
In setHitArea method, use setHitAreaFromTexture if shape is undefined. Suppose that it is not a case of `customHitArea`
2019-06-22 09:37:49 +08:00
Richard Davey
6004237d37 Get the correct time value 2019-06-20 09:58:59 +01:00
Richard Davey
8837cb3fd1 JSDocs fix 2019-06-20 09:58:48 +01:00
Richard Davey
8fe4b37a94 JSDoc fix 2019-06-19 15:52:08 +01:00
Richard Davey
1676f22360 Automatically handle the drag values in rotated containers 2019-06-19 10:41:48 +01:00
Richard Davey
4a91b1e560 Added dragStartXGlobal and dragStartYGlobal properties 2019-06-19 10:41:26 +01:00
Richard Davey
0791ae10d2 Added button property and methods for leftButtonReleased, rightButtonReleased and so on. 2019-06-12 11:19:00 +01:00
Richard Davey
9327351e86 Added deltaX, Y, Z and wheel method. 2019-06-05 15:31:25 +01:00
Richard Davey
98be6adfda Native support for wheel events 2019-06-05 15:31:13 +01:00
Richard Davey
62cb5c68a8 Added 3 new Wheel input events 2019-06-05 15:30:54 +01:00
Richard Davey
700c9daaa1 New input const (and changed order to be numeric order) 2019-06-05 15:30:42 +01:00
Richard Davey
af3efc9e2f Added more docs to make #4575 clearer 2019-06-05 14:08:01 +01:00
Richard Davey
4ed0f90bf7 Merged touch handler methods into one 2019-06-04 18:54:35 +01:00
Richard Davey
befbc788a3 Added new TouchCancelWindow handler 2019-06-04 18:54:00 +01:00
Richard Davey
15654be545 update motion automatically 2019-06-04 18:53:48 +01:00
Richard Davey
7f2feea4ae All the touch handlers now store the full TouchEvent, not just the Touch List entry 2019-06-04 15:46:16 +01:00
Richard Davey
bf48c53103 Added new over and out handlers for touch events 2019-06-04 15:43:02 +01:00
Richard Davey
9b93ad9985 Removed changed pointers IIFE and un-needed method methods 2019-06-04 15:40:05 +01:00
Richard Davey
78d15b0b0f Fixed arguments 2019-05-28 21:41:04 +01:00
Richard Davey
3c52a3b27a Pass the pointers array in directly, no need to iterate them all every time 2019-05-28 21:31:54 +01:00
Richard Davey
d87cb43a7f Removed touch limit on over/out 2019-05-28 17:26:31 +01:00
Richard Davey
e12002bf74 Use a switch instead 2019-05-28 17:21:40 +01:00
Richard Davey
520e2e621f Catch poll zero 2019-05-28 17:08:30 +01:00
Richard Davey
95f69bbd9e Split the drag method up into different parts, removed un-used properties and tided up the loop 2019-05-28 16:58:52 +01:00
Richard Davey
7142319f24 Removed un-used methods and properties 2019-05-28 16:58:31 +01:00
Richard Davey
094541d968 Removed dirty and just properties as no longer required, also removed reset method 2019-05-28 16:57:08 +01:00