Files
tetris.js/js/tetris-manager.js
Marcel 06a2e582fd Major rework of basic game code - pre-work for multiplayer
Includes automatic generation of required HTML elements and better responsiveness
2019-07-18 11:49:06 +02:00

57 lines
1.2 KiB
JavaScript

class TetrisManager {
constructor() {
this.container = document.querySelector('.game-container');
this.instances = new Set;
}
createPlayer() {
const game = new Game();
this.instances.add(game);
}
init() {
this.callAll('rescale', []);
}
removePlayer(tetris) {
this.instances.delete(tetris);
}
start() {
this.instances.forEach(instance => {
instance.start();
});
this.init();
}
resume() {
this.instances.forEach(instance => {
instance.g.isPaused = false;
instance.g.lastTimeUpdate = Date.now();
if (!firstRun) {
instance.update(instance.g.lastTime);
}
});
}
pause() {
this.instances.forEach(instance => {
instance.g.isPaused = true;
});
}
callAll(method, args) {
if (typeof method === 'string') {
this.instances.forEach(instance => {
instance[method](...args);
});
} else if (typeof method === 'function') {
this.instances.forEach(instance => {
method(instance);
});
}
}
}