调用gameOver函数时如何隐藏Score函数的分数显示?
解决游戏结束时隐藏分数的问题
你之前写的Score() = "none"是不符合JavaScript语法的——函数调用不能被赋值,而且"none"也没法直接控制Canvas元素的显示逻辑。Canvas是基于即时绘制的,要让分数不显示,核心思路是在游戏结束后不再执行Score函数里的绘制代码。
给你一个简单易懂的解决方案:
- 先定义一个全局状态变量,用来标记游戏是否结束:
let gameIsOver = false;
- 修改你的
Score函数,只有当游戏未结束时才绘制分数:
function Score() { // 仅在游戏未结束时渲染分数 if (!gameIsOver) { ctx.fillStyle = "#000"; ctx.font = "27px Arial"; // 小提醒:你之前写的"Ariel"是拼写错误,正确字体名是Arial ctx.fillText ("Score: " + score, 18.89, 30); } }
- 最后修改
gameOver函数,先把状态标记为结束,再绘制游戏结束文本:
function gameOver() { gameIsOver = true; ctx.fillStyle = "#f00"; ctx.fillText ("GAME OVER!", 424, 236.25); }
这样调用gameOver()后,gameIsOver会变为true,后续执行Score()时就会跳过绘制分数的逻辑,自然就看不到分数了。
内容的提问来源于stack exchange,提问作者user13627411
相关产品推荐
相关产品推荐

