add mouse events
This commit is contained in:
parent
76831e0300
commit
e38fa82d3b
@ -2,6 +2,16 @@ export class Gamelib {
|
|||||||
keysPressed = new Set();
|
keysPressed = new Set();
|
||||||
keyPressHandlers = new Map();
|
keyPressHandlers = new Map();
|
||||||
keyReleaseHandlers = new Map();
|
keyReleaseHandlers = new Map();
|
||||||
|
mouseMoveHandler = null;
|
||||||
|
mouseButtonsPressed = new Set();
|
||||||
|
mouseDownHandlers = new Map();
|
||||||
|
mouseUpHandlers = new Map();
|
||||||
|
mouseX = null;
|
||||||
|
mouseY = null;
|
||||||
|
|
||||||
|
MouseButtonLeft = 0;
|
||||||
|
MouseButtonRight = 1;
|
||||||
|
MouseButtonMiddle = 2;
|
||||||
|
|
||||||
constructor(console, codeStopper, assetProvider, canvasElement) {
|
constructor(console, codeStopper, assetProvider, canvasElement) {
|
||||||
this.console = console;
|
this.console = console;
|
||||||
@ -25,6 +35,27 @@ export class Gamelib {
|
|||||||
this.keysPressed.delete(ev.key);
|
this.keysPressed.delete(ev.key);
|
||||||
this.keyReleaseHandlers.get(ev.key)?.();
|
this.keyReleaseHandlers.get(ev.key)?.();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
canvasElement.addEventListener("mousemove", (ev) => {
|
||||||
|
this.mouseX = ev.offsetX;
|
||||||
|
this.mouseY = ev.offsetY;
|
||||||
|
|
||||||
|
this.mouseMoveHandler?.(ev.offsetX, ev.offsetY, ev.movementX, ev.movementY);
|
||||||
|
});
|
||||||
|
|
||||||
|
canvasElement.addEventListener("mousedown", (ev) => {
|
||||||
|
this.mouseButtonsPressed.add(ev.button);
|
||||||
|
this.mouseDownHandlers.get(ev.button)?.(ev.offsetX, ev.offsetY);
|
||||||
|
});
|
||||||
|
|
||||||
|
canvasElement.addEventListener("mouseup", (ev) => {
|
||||||
|
this.mouseButtonsPressed.delete(ev.button);
|
||||||
|
this.mouseUpHandlers.get(ev.button)?.(ev.offsetX, ev.offsetY);
|
||||||
|
});
|
||||||
|
|
||||||
|
canvasElement.addEventListener("contextmenu", (ev) => {
|
||||||
|
ev.preventDefault();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
println(msg) {
|
println(msg) {
|
||||||
@ -65,6 +96,22 @@ export class Gamelib {
|
|||||||
this.keyReleaseHandlers.set(key, handlerFunction);
|
this.keyReleaseHandlers.set(key, handlerFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMouseMove(handlerFunction) {
|
||||||
|
this.mouseMoveHandler = handlerFunction;
|
||||||
|
}
|
||||||
|
|
||||||
|
isClicking(button = this.MouseButtonLeft) {
|
||||||
|
return this.mouseButtonsPressed.has(button);
|
||||||
|
}
|
||||||
|
|
||||||
|
onClick(handlerFunction, button = this.MouseButtonLeft) {
|
||||||
|
this.mouseDownHandlers.set(button, handlerFunction);
|
||||||
|
}
|
||||||
|
|
||||||
|
onClickRelease(handlerFunction, button = this.MouseButtonLeft) {
|
||||||
|
this.mouseUpHandlers.set(button, handlerFunction);
|
||||||
|
}
|
||||||
|
|
||||||
rgb(red, green, blue) {
|
rgb(red, green, blue) {
|
||||||
return `rgb(${red}, ${green}, ${blue})`;
|
return `rgb(${red}, ${green}, ${blue})`;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user