我正在尝试为我的 Vanilla Javascript 迷宫游戏项目创建一个简单的 3、2、1 倒数计时器。我正在尝试合并 MVC 原则以尝试拥有良好的编码结构,但我正在努力弄清楚如何配置我的应用程序的这一部分。
我已经设法将数字 3 呈现到页面上,但它只是停留在那里并且没有被 2、1 取代,这是预期的行为。
我的控制器(index.js)中有倒计时功能:
let timer;
const countDown = () => {
timer = 3;
let startTimer = setInterval(() => {
timer -= 1;
if (timer < 0) {
clearInterval(startTimer);
}
}, 1000);
}
我的第一个问题是,这种类型的功能应该在控制器中吗?我正在努力理解 MVC 原则。我认为它不应该放在模型文件中,因为它不是应用程序“数据”的一部分,而且我不认为它应该放在视图文件中,因为它在技术上实际上并不处理页面上的渲染。
计时器的渲染在我的视图文件(gameView.js)中完成:
export const renderCountdown = (timer) => {
elements.timer.innerHTML = timer;
}
countDown 方法和 renderCountdown 方法都会在控制器(index.js) 中的“startGame”方法中调用(当用户单击应用程序上的开始游戏按钮时会调用此方法):
const startGame = () => {
countDown();
renderCountdown(timer);
}
所以我的第二个问题是如何让 2 然后 1 出现在倒数计时器上?