如何暂停用js和html5制作的简单画布游戏?

2024-01-03

在遵循 YouTube 上的一些简单教程后,我创建了一个简单的贪吃蛇游戏。

问题是游戏没有暂停功能(例如,当按 P 时,游戏应该暂停/恢复),并且当蛇碰到画布边界时,游戏会自行重新启动(但这是另一个问题)。

这是我拥有的游戏的完整代码:https://pastebin.com/URaDxSvF https://pastebin.com/URaDxSvF

我创建的与暂停相关的函数:

function gamePaused{ /**i need help on this**/ }

function keyDown(e) {
  if (e.keyCode == 80) pauseGame();
}

function pauseGame() {
  if (!gamePaused) {
    game = clearTimeout(game);
    gamePaused = true;
  } else if (gamePaused) {
    game = setTimeout(loop, 1000 / 30);
    gamePaused = false;
  }
}

创建一个名为“paused”的布尔变量,并在玩家按下 p 时将其设置为 true,然后在运行游戏的循环周围放置一个 if 语句。并说 if (!paused){runloop}

您可以为按下 p 时创建切换暂停功能。

function togglePause()
{
    if (!paused)
    {
        paused = true;
    } else if (paused)
    {
       paused= false;
    }

}

您还需要为按下 p 时创建一个事件侦听器 像这样

window.addEventListener('keydown', function (e) {
var key = e.keyCode;
if (key === 80)// p key
{
    togglePause();
}
});

在顶部放置 Game 对象和常量,并在循环函数中执行此操作

 draw(); 
if(!paused)
{ 
update(); 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何暂停用js和html5制作的简单画布游戏? 的相关文章

  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • 如何从画布中删除路径区域(Android)

    我需要裁剪角落ImageView 不要将它们弄圆 而是擦除每个角上的三角形 似乎唯一的方法就是覆盖onDraw方法并使用从画布上删除这些区域Path 问题是我没有纯色背景 所以我需要擦除这些区域 但不要用某种颜色填充它们 我为此使用以下代码
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • 加载新的 Turbo Frame 时如何执行 JavaScript

    我在 Rails 应用程序中使用 Turbo Frames 并且在每个页面上都有
  • javascript获取网页中选定文本的段落

    突出显示文本后 我想获取所选文本所在的段落 var select window content document getSelection 请问有什么指点吗 这实际上很难做到 因为你必须考虑六种情况 所选内容不在一个段落内 简单 整个选择都
  • 如何重定向到另一个页面并从表中传递 url 中的参数?

    如何重定向到另一个页面并从表中传递 url 中的参数 我在龙卷风模板中创建了类似的东西 table thead tr th Username th th Nation th th Rank th th th tr thead tbody f
  • Jquery 关注下一个带有类的元素

    我正在尝试创建一个函数 当按下 Enter 键时 会选择带有类的下一个输入 我已经设法 focus 同一行中的下一个元素 但是 如果我需要选择下一行的下一个输入 它将无法继续 下一行中的第一个 quantity 文本框需要获得焦点 控制台没
  • 是否有 IE 渲染完成事件?

    在尝试确定页面加载时间为 20 秒的原因时 我发现 IE8 中有一些奇怪的行为 场景是这样的 我进行 ajax 调用 它返回并且回调看起来像这样 StoreDetailsContainer html tableHtml var StoreD
  • 在 JavaScript/ActionScript 中重新定义 Math.constructor 有任何实际用途吗?

    Math 对象没有原型属性 但有构造函数属性 在任何情况下重新定义构造函数会有用吗 The Math对象 准确地说 由初始值引用的对象MathECMAScript 全局对象的属性 not have a constructor属性 请参阅EC
  • 有什么简单的方法可以清理 Google Maps v3 API 上的所有标记、折线和其他叠加层吗?

    我想获得一张新地图 而不是使用刷新网页 thanks 并有简单的方法来获取地图上的所有叠加层 在 v2 API 中 有clearOverlays http code google com apis maps documentation ja
  • 为什么 "asdf".replace(/.*/g, "x") == "xx" ?

    我偶然发现了一个令人惊讶的 对我来说 事实 console log asdf replace g x Why two替代品 似乎任何没有换行符的非空字符串都会产生此模式的两个替换 使用替换函数 我可以看到第一个替换是整个字符串 第二个替换是
  • 如何从代码隐藏文件中的asp.net用户控件注册(调用)jQuery函数?

    如何从代码隐藏文件中的asp net用户控件注册 调用 jQuery函数 您可以使用ClientScriptManager RegisterStartupScript http msdn microsoft com en us librar
  • 变量值的 swap() 函数[重复]

    这个问题在这里已经有答案了 我无法达到下面这个交换函数的预期结果 我希望将值打印为 3 2 function swap x y var t x x y y t console log swap 2 3 任何线索将不胜感激 您的函数正在内部交
  • 带有子节点的拖放区域

    我有一个带有多个子节点的拖放区域 主要元素有dropenter and dropleave事件 但是 如果您将文件拖动到主元素内部和子节点上方 则dropleave被触发 如何处理 以便dropleave仅当拖动的元素和鼠标位于主元素之外时
  • 将 MathJax 脚本添加到 Office 365 Sharepoint 中的页面

    我正在尝试将 Mathjax 库添加到 SharePoint 库 以便我们可以使用 LaTex 语法来添加方程 我在网上搜索时看到了多种方法 但似乎没有一种方法可以与最新版本的 MathJax 和 Office 365 版本的 ShareP
  • 创建响应式眼睛焦点图标

    我一直在尝试制作响应式彩色眼睛焦点图标 但到目前为止我所尝试的一切均不成功 我试图在某种程度上复制真眼的颜色 我使用边框 框阴影来获取颜色 但该部分没有缩放 也尝试过轮廓 但也失败了 那个甚至不是圆的 div 的高度当前是静态的 但我希望它
  • 路由和干净路径(无主题标签)在 angularJS 中不起作用

    伙计们 这让我发疯了 我为此奋斗了几个小时 却找不到解决方案 我知道为了从 URL 路径中清除主题标签 我需要使用 locationProvider html5Mode true 但由于某种原因 这对我来说效果不佳 我使用 tomcat 7
  • 使 div 的大小与其内部图像的大小相同

    我有一个带有以下代码的div HTML div img src img logo png div CSS div imgContainer width 250px height 250px padding 13px 问题是用户可以编辑图像大
  • (A == B == C) 比较在 JavaScript 中如何工作?

    我预计以下比较会给出错误 var A B 0 if A B 0 console log true else console log false 但奇怪的是它又回来了false 更奇怪的是 console log A B 1 returns
  • AngularJS 应用程序:如何将 .js 文件包含到 index.html 中

    我是 angularJS 的新手 我设法使用 AngularJS 构建了一个phonegap应用程序 该应用程序正常并且运行良好 问题是 现在我对 angularJS 的工作原理有了更多的了解 至少我认为我已经了解了 我担心我的应用程序文件

随机推荐

  • CSS3 中漂亮的插入边框

    我真的很喜欢最近在管子上看到的这种边框样式 如果您只是在网站上查看它可能看起来会更好 http markdotto com bootstrap http markdotto com bootstrap 我对他们如何创建这种效果特别感兴趣 似
  • 点击 UITextField 时防止键盘出现

    我正在使用一个UI文本字段显示计算结果 但我don t希望当用户点击时显示键盘UI文本字段 我使用 UITextField 是因为我仍然希望用户能够将计算复制并粘贴回 UITextField 但我不希望显示键盘 UI键盘将隐藏仅在显示键盘后
  • 用于具有多重分派的数组数组的 Julia 参数函数

    我正在尝试编写两个同名的函数 它们可以利用 Julia 的多重调度功能 并涉及数组和数组数组 假设有这三个输入变量 typeof a gt Array Array T N 1 a Array 1 2 3 4 5 6 typeof b gt
  • 以编程方式将程序集安装到 GAC 中

    我需要使用 C 在 GAC 中安装程序集 下面是我的代码 new System EnterpriseServices Internal Publish GacInstall MyAssembly dll 上面的代码给出了错误 需要绝对路径
  • Objective-C 和 Core Data 中的正则表达式

    有在 Objective C 中使用正则表达式的指南吗 具体要在 Reg Ex 中输入什么内容 核心数据属性中的字段 特别是 如何将输入限制为仅限一定数量的数字 字母以及英国邮政编码 Thanks 根据 Apple 文档 NSPredica
  • 使用 jquery 模板的多维数组

    我有以下 JavaScript 对象 var arr id 1 name one id 2 name two id 3 name three id 4 name four id 5 name five id 6 name six I m t
  • 在 Google 电子表格中导入 XML 并返回 Google 搜索结果

    我正在尝试使用以下命令将 Google 搜索结果上传到我的 Google 电子表格中importxml以前有效的代码不再有效了 我有 IMPORTXML https www google com search q site query nu
  • 在 hibernate 中检索单个字段而不是整个 pojo

    我对休眠有一些疑问 表 Employee Master 身份证号 名称 varchar 工资长 POJO EmployeeMaster java public class EmployeeMaster private int id priv
  • 从 jQuery 调用 Web 服务

    我正在尝试使用 jQuery 来使用我的 Web 服务 并且基本上只需要 Web 服务来调用函数即可 我在 NET 中使用的代码是这样的 ServiceContract Namespace http Sinvise Service publ
  • 对角线移动使玩家走得更快

    我有这个简单的移动脚本 if x gt 0 if key pygame K a or key pygame K LEFT rect player move ip 1 speed 0 if x lt SCREEN WIDTH 110 if k
  • 保存禁用字段

    在我的 edit ctp 中 我有一个不需要用户更改的选择框 所以我把array disabled gt true 但是这个字段不会出现 pr this gt data 并在保存时显示错误 有什么选择可以解决这个问题 如果您知道数据的值 则
  • Python Pandas Drop Duplicates 保持倒数第二

    选择 pandas 数据框中每个重复集的倒数第二个的最有效方法是什么 例如我基本上想做这个操作 df df drop duplicates Person Question take last True 但是这个 df df drop dup
  • 如何在 Clojure 中的嵌套数组映射中查找键到值的路径?

    假设我有 def a map foo bar biz baz qux 我如何找到给定值 qux 的键路径 这样 get in a map
  • gcc 4.5 特有的 C++ 数组创建问题

    以下代码适用于 gcc 2 9 至 4 4 版本 但不适用于 4 5 版本 struct Pass int main void Pass passes new Pass 10 gcc 4 5 的具体错误消息是 prob cc In func
  • 如何保留 int 变量的前导零?

    下面是一段代码 是功能性解密和加密程序的一部分 while checkvar lt maxvar is set to lt as maxvar is 1 to high for the index of var output append
  • 正则表达式阻止 nginx 中的 url

    我想阻止访问末尾有多余字符的网址 例如 我希望 nginx 阻止请求https www example com url pattern amp extra chars more extra 但希望它允许https www example c
  • 获取android中的账户列表

    我正在开发一个应用程序 我需要在其中查看用户手机中的帐户列表 我已经执行了这段代码 它似乎工作得很好 我面临的唯一问题是我想要获取帐户列表而不仅仅是一个帐户 那么如何实现这一目标呢 我很确定需要一个列表视图 但我没有得到任何关于如何在这里使
  • 移动Web应用程序的服务器端架构

    在我开发过的大多数桌面 Web 应用程序中 您都需要一个服务器端 Web 框架 服务器端 Web 框架 Struts Spring MVC 等 具有某种用于处理请求的控制器 然后是用于生成动态内容的模板引擎 Velocity JSP 等 现
  • Oracle 10G XE 的 JDBC 驱动程序

    我已经安装了Oracle 10G XE 我想使用 JDBC 连接到它 我应该使用哪个驱动程序以及从哪里下载它 谢谢 在安装了服务器的机器上 Oracle JDBC 驱动程序位于ORACLE HOME jdbc lib 就放ojdbc14 j
  • 如何暂停用js和html5制作的简单画布游戏?

    在遵循 YouTube 上的一些简单教程后 我创建了一个简单的贪吃蛇游戏 问题是游戏没有暂停功能 例如 当按 P 时 游戏应该暂停 恢复 并且当蛇碰到画布边界时 游戏会自行重新启动 但这是另一个问题 这是我拥有的游戏的完整代码 https