escalator-web/src/screen.js

70 lines
1.2 KiB
JavaScript

const Status = {
Idle: 0,
Running: 1,
Finished: 2,
};
class Screen {
constructor(canvas) {
this.status = Status.Idle;
this.canvas = canvas;
this.context = canvas.getContext('2d');
this.listeners = [];
this.autoResize();
}
addEventListener(type, callback) {
this.listeners.push({
type: type,
callback: callback,
});
}
addListeners() {
for (let listener of this.listeners) {
document.addEventListener(listener.type, listener.callback);
}
}
removeListeners() {
for (let listener of this.listeners) {
document.removeElementListener(listener.type, listener.callback);
}
}
initialize() {
this.autoResize();
}
autoResize() {
this.resize(window.innerWidth, window.innerHeight);
}
resize(width, height) {
this.canvas.width = width;
this.canvas.height = height;
}
clear() {
this.context.clearRect(0, 0, this.width(), this.height());
}
render() {
}
update(time = 0.002) {
}
width() {
return this.canvas.width;
}
height() {
return this.canvas.height;
}
}