private setEvent(): void {
const cellClick = (cell: Cell) => {
if (this.occupiedCells.has(cell)) {
console.log('DESTROY');
} else {
console.log('empty');
}
};
this.engine.on(this.shovelNode, 'click', (e) => {
this.toggleState();
this.engine.events.click.eventBubbling = !!this.isActive;
if (this.isActive) {
this.cells.forEach((cellRow) => cellRow.forEach((cell) => {
this.engine.on(cell.node, 'click', () => cellClick(cell));
}));
} else {
this.cells.forEach((cellRow) => cellRow.forEach((cell) => {
this.engine.off(cell.node, 'click', () => cellClick(cell));
}));
}
});
}
this.engine.on и this.engine.off то же самое, что и addEventListener, removeEventListener
this.cells - двумерный массив (игровое поле)
то есть мне надо поставить событие на каждую клетку поля(узел cell в canvas)
но если я сделаю неактиный узел shovel, то тогда удалить все прослушивания
И я точно не уверен, сработает ли такой вариант
с учетом того, что параметры переадаются разные