matter-js: add mouse events (#42794)

This commit is contained in:
slikts 2020-03-03 20:39:10 +02:00 committed by GitHub
parent a8a7b34a50
commit 89a45f74a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 5 deletions

View File

@ -3170,6 +3170,9 @@ declare namespace Matter {
pairs: Array<IPair>;
}
export interface IMouseEvent<T> extends IEvent<T> {
name: 'mousedown' | 'mousemove' | 'mouseup';
}
export class Events {
@ -3381,7 +3384,7 @@ declare namespace Matter {
* @param name
* @param callback
*/
static on(obj: MouseConstraint, name: "mousedown", callback: (e: any) => void): void;
static on(obj: MouseConstraint, name: "mousedown", callback: (e: IMouseEvent<MouseConstraint>) => void): void;
/**
* Fired when the mouse has moved (or a touch moves) during the last step
@ -3389,7 +3392,7 @@ declare namespace Matter {
* @param name
* @param callback
*/
static on(obj: MouseConstraint, name: "mousemove", callback: (e: any) => void): void;
static on(obj: MouseConstraint, name: "mousemove", callback: (e: IMouseEvent<MouseConstraint>) => void): void;
/**
* Fired when the mouse is up (or a touch has ended) during the last step
@ -3397,7 +3400,7 @@ declare namespace Matter {
* @param name
* @param callback
*/
static on(obj: MouseConstraint, name: "mouseup", callback: (e: any) => void): void;
static on(obj: MouseConstraint, name: "mouseup", callback: (e: IMouseEvent<MouseConstraint>) => void): void;
static on(obj: any, name: string, callback: (e: any) => void): void;

View File

@ -7,8 +7,10 @@ var Engine = Matter.Engine,
Constraint = Matter.Constraint,
Events = Matter.Events,
Query = Matter.Query,
Plugin = Matter.Plugin,
Render = Matter.Render;
Plugin = Matter.Plugin,
Render = Matter.Render,
Mouse = Matter.Mouse,
MouseConstraint = Matter.MouseConstraint;
Matter.use('matter-attractors');
@ -110,3 +112,10 @@ const runner1 = Matter.Runner.create({
});
const runner2 = Matter.Runner.create({});
const runner3 = Matter.Runner.create();
// Mouse
const mouse = Mouse.create(render.canvas);
const mouseConstraint = MouseConstraint.create(engine, { mouse });
Events.on(mouseConstraint, 'mousemove', (e: Matter.IMouseEvent<Matter.MouseConstraint>) => {})