生成成对水管 PipePareProducer
实现思路:
这个类主要用于生成成对的水管对,所以核心属性有下面
存放水管对的数组
pairs
生成水管对的计时器
timer
生成水管对的间隔
tick
需要注意的是,需要提供暂停生成和重新生成的方法,配合游戏操作暂停游戏和重新开始游戏
- 重新开始的时候,需要将页面上所有生成水管 dom 全部移除掉
实现代码
点击 展开/收起 jsx 代码
/**
* @description 生成 成对水管类
*/
import PipePare from './PipePare';
class PipePareProducer {
constructor(speed, gameDom) {
this.speed = speed;
this.gameDom = gameDom;
this.pairs = [];
this.timer = null;
this.tick = 2000;
}
startProduce() {
if (this.timer) {
return;
}
this.timer = setInterval(() => {
this.pairs.push(new PipePare(this.speed, this.gameDom));
}, this.tick);
}
stopProducer() {
clearInterval(this.timer);
this.timer = null;
}
initProducer() {
clearInterval(this.timer);
this.timer = null;
this.pairs = [];
// remove页面上所有的 pipe 类
const pipes = document.querySelectorAll('.pipe');
// 遍历并移除每个元素
pipes.forEach((pipe) => {
pipe.remove();
});
}
}
export default PipePareProducer;