fix double event issue
This commit is contained in:
parent
fda5b5658f
commit
4dc27bc5b0
@ -22,27 +22,26 @@ export class Gamelib {
|
||||
this.mouseX = null;
|
||||
this.mouseY = null;
|
||||
this.spriteCache = new Map();
|
||||
this.eventAbortController = null;
|
||||
}
|
||||
|
||||
init() {
|
||||
document.body.addEventListener("keydown", this.keydownListener.bind(this));
|
||||
document.body.addEventListener("keyup", this.keyupListener.bind(this));
|
||||
this.eventAbortController = new AbortController();
|
||||
const signal = this.eventAbortController.signal;
|
||||
document.body.addEventListener("keydown", this.keydownListener.bind(this), { signal });
|
||||
document.body.addEventListener("keyup", this.keyupListener.bind(this), { signal });
|
||||
|
||||
this.canvas.addEventListener("mousemove", this.mousemoveListener.bind(this));
|
||||
this.canvas.addEventListener("mousedown", this.mousedownListener.bind(this));
|
||||
this.canvas.addEventListener("mouseup", this.mouseupListener.bind(this));
|
||||
this.canvas.addEventListener("contextmenu", this.contextMenuListener.bind(this));
|
||||
this.canvas.addEventListener("mousemove", this.mousemoveListener.bind(this), { signal });
|
||||
this.canvas.addEventListener("mousedown", this.mousedownListener.bind(this), { signal });
|
||||
this.canvas.addEventListener("mouseup", this.mouseupListener.bind(this), { signal });
|
||||
this.canvas.addEventListener("contextmenu", this.contextMenuListener.bind(this), {
|
||||
signal,
|
||||
});
|
||||
}
|
||||
|
||||
destroy() {
|
||||
document.body.removeEventListener("keydown", this.keydownListener.bind(this));
|
||||
document.body.removeEventListener("keyup", this.keyupListener.bind(this));
|
||||
|
||||
this.canvas.removeEventListener("mousemove", this.mousemoveListener.bind(this));
|
||||
this.canvas.removeEventListener("mousedown", this.mousedownListener.bind(this));
|
||||
this.canvas.removeEventListener("mouseup", this.mouseupListener.bind(this));
|
||||
this.canvas.removeEventListener("contextmenu", this.contextMenuListener.bind(this));
|
||||
|
||||
this.eventAbortController.abort();
|
||||
this.eventAbortController = null;
|
||||
this.spriteCache.clear();
|
||||
|
||||
clearInterval(this.loopInterval);
|
||||
@ -150,7 +149,6 @@ export class Gamelib {
|
||||
|
||||
drawSprite(x, y, sprite) {
|
||||
const cx = this.cx;
|
||||
console.log(sprite);
|
||||
|
||||
cx.drawImage(sprite, x, y);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user