当前位置: 首页 > news >正文

密室逃脱小游戏

欢迎来到程序小院

密室逃脱

玩法:
判断可生存的空间,鼠标点击屏幕进行人物左右移动,躲避闸道进行生存,每进行一次关卡都会有分数统计,赶紧去闯关吧^^。

开始游戏icon-default.png?t=N7T8https://www.ormcc.com/play/gameStart/176

html

<canvas id="jsGameScreen"></canvas>

css

.bandiv{float:left; width:100%; background-color:#DBD1BB;
}
.bandiv div{padding:10px; text-align:left;
}
#play68box{width: 190px;font-size: 12px;line-height: 15px;right: -172px;top: 35%;position: fixed;z-index: 100;
}#tab{float: left;list-style: none outside none;padding: 0;position: relative;z-index: 99;margin-top: 10px;margin-right: 0;margin-bottom: 0;margin-left: 0;
}#tab li span{display: block;padding: 0 5px;position: relative;
}#links{width: 100px;padding: 1px;float: left;background-color: #f6bb42;border-radius: 8px;
}

js

e.showClue = function() {window.scrollTo(0, -5);e.ctx.fillStyle = "#ffffff";e.ctx.fillRect(0, 0, window.innerWidth, window.innerHeight);t.canvas.drawImage("h", (window.innerWidth - 153) / 2, (window.innerHeight - 122) / 2)
};
var u = {x: (t.canvas.screen.getWidth() - 126) / 2,y: 180,w: 126,h: 35,isPressed: !1,draw: n
},
a = {x: (t.canvas.screen.getWidth() - 126) / 2,y: 260,w: 126,h: 35,isPressed: !1,draw: n
},
f = {x: (t.canvas.screen.getWidth() - 126) / 2,y: 660,w: 126,h: 35,isPressed: !1,draw: n
},
l = {x: (t.canvas.screen.getWidth() - 126) / 2,y: 740,w: 126,h: 35,isPressed: !1,draw: n
},
c = {x: (t.canvas.screen.getWidth() - 126) / 2,y: 660,w: 126,h: 35,isPressed: !1,draw: n
},
h = {x: (t.canvas.screen.getWidth() - 126) / 2,y: 740,w: 126,h: 35,isPressed: !1,draw: n
},
p = {jianRenStateType: {normal: 0,died: 1,stop: 2},jianRenDirection: {center: 0,left: 1,right: 2}
},
v = {baseY: 0,mission: 0,wall: {width: 30,topWallY: -150,bottomWallY: 0,timeout: 1e3,gapTimeout: 1e3,dropped: !1,tiles: {top: [],bottom: []}},jianren: {index: 0,y: 0,width: 30,height: 38,state: p.jianRenStateType.normal,direction: p.jianRenDirection.center,showAction: !1}
},
m,
g,
y,
b,
w,
E,
S = [20, 35, 50, 25],
x,
T = function(e) {if (0 < e) {switch (e) {case 10:y = 3;v.wall.timeout = 500;break;case 20:y = 2;v.wall.timeout = 350;break;case 30:y = 1;v.wall.timeout = 225;break;case 40:v.wall.timeout = 100;break;case 50:v.wall.timeout = 50}for (b = []; b.length < y;) if (w = t.commandFuns.getRandom(0, parseInt(t.canvas.screen.getWidth() / 2 / v.wall.width) - 1), 0 == b.length) b.push(w);else {E = !0;for (e = 0; e < b.length; e++) w == b[e] && (E = !1);E && b.push(w)}var n;v.wall.tiles.top = [];v.wall.tiles.bottom = [];for (e = 0; e < parseInt(t.canvas.screen.getWidth() / 2 / v.wall.width);e++) n = t.commandFuns.getRandom(220, 280),v.wall.tiles.top.push({height: n}),v.wall.tiles.bottom.push({height: t.canvas.screen.getHeight() - n});for (e = 0; e < b.length; e++) v.wall.tiles.top[b[e]].height -= S[t.commandFuns.getRandom(0, S.length - 1)]} else v.wall.tiles = {top: [{height: 250},{height: 250},{height: 250},{height: 250},{height: 215},{height: 250},{height: 250},{height: 250}],bottom: [{height: 70},{height: 70},{height: 70},{height: 70},{height: 70},{height: 70},{height: 70},{height: 70}]};m = [];for (e = 0; e < v.wall.tiles.top.length; e++) m.push({sx: e * v.wall.width,sy: v.baseY + v.wall.tiles.top[e].height,ex: (e + 1) * v.wall.width,ey: v.baseY + v.wall.tiles.top[e].height});g = [];for (e = 0; e < v.wall.tiles.bottom.length; e++) g.push({sx: e * v.wall.width,sy: v.baseY + t.canvas.screen.getHeight() - v.wall.tiles.bottom[e].height,ex: (e + 1) * v.wall.width,ey: v.baseY + t.canvas.screen.getHeight() - v.wall.tiles.bottom[e].height});v.wall.topWallY = -150;v.wall.bottomWallY = 0;v.wall.timeout = 1e3;v.wall.gapTimeout = 800;v.wall.dropped = !1;v.jianren.index = 4;v.jianren.y = 150;v.jianren.state = p.jianRenStateType.normal;v.jianren.showAction = !1;x = t.commandFuns.getRandom(0, 1)
},
N = 0,
C,
k,
L = 5,
A = 0,
O = 1,
M = 2,
_ = 3,
D = 0,
P = "",
H = 0,
P = "CHS",
D = null == P ? L: A,
H = t.localStorage.getItem("highScore2");
null == H && (H = 0);
updateShareScore(H);
var B = function() {N = 0;v.mission = 1;y = 3;v.jianren.direction = p.jianRenDirection.center;C = 0;k = 105;T(v.mission)
},
j = function() {t.canvas.drawImage("bl1", 0, 0, t.getImage("bl1").width, t.getImage("bl1").height, 0, 0, t.canvas.screen.getWidth(), t.canvas.screen.getHeight())
},
F = [],
I = 0,
q = [],
R,
U = 0,
z = [{sx: 0,sy: 0
},
{sx: 30,sy: 0
}],
W = 0,
X = [{sx: 60,sy: 0
},
{sx: 60,sy: 0
},
{sx: 90,sy: 0
},
{sx: 90,sy: 0
},
{sx: 120,sy: 0
},
{sx: 120,sy: 0
},
{sx: 150,sy: 0
},
{sx: 150,sy: 0
},
{sx: 180,sy: 0
},
{sx: 180,sy: 0
}],
V,
$ = [0, 1],
J = [2, 3],
K = 0,
Q = [{sx: 0,sy: 0
},
{sx: 30,sy: 0
},
{sx: 60,sy: 0
},
{sx: 90,sy: 0
},
{sx: 120,sy: 0
}],
G = 0,
Y = function(e, n) {6 > G ? (t.canvas.drawImage("han1", 20 * parseInt(G), 0, 20, 17, 2 * (e + 15), 2 * n, 40, 34), G += .5) : 12 > G && (t.canvas.drawImage("han2", 20 * parseInt(G - 6), 0, 20, 17, 2 * (e - 5), 2 * n, 40, 34),G += .5, G %= 12)
},
Z = [],
et = [],
tt,
nt = function(e, n, r) {t.canvas.beginPath();t.canvas.lineWidth(2 * (n + 2)).strokeStyle("#000000");for (var i = 0; i < e.length; i++) 0 == i ? t.canvas.moveTo(2 * e[i].sx, 2 * (r + e[i].sy)) : t.canvas.lineTo(2 * e[i].sx, 2 * (r + e[i].sy)),t.canvas.lineTo(2 * e[i].ex, 2 * (r + e[i].ey));t.canvas.stroke();t.canvas.lineWidth(2 * n).strokeStyle("#00FF00");for (i = 0; i < e.length; i++) 0 == i ? t.canvas.moveTo(2 * e[i].sx,2 * (r + e[i].sy)) : t.canvas.lineTo(2 * e[i].sx, 2 * (r + e[i].sy)),t.canvas.lineTo(2 * e[i].ex, 2 * (r + e[i].ey));t.canvas.stroke().closePath().lineWidth(2)
},
rt = 0,
it = {x: 0,y: 0
};
t.events.touchStart(function(e) {it = {x: e.touches[0].clientX,y: e.touches[0].clientY};i(it)
}).touchMove(function(e) {it = {x: e.touches[0].clientX,y: e.touches[0].clientY};s(it)
}).touchEnd(function(e) {o(it)
}).mouseMove(function(t) {it = {x: t.clientX - e.left,y: t.clientY - e.top};s(it)
}).mouseDown(function(t) {it = {x: t.clientX - e.left,y: t.clientY - e.top};i(it)
}).mouseUp(function(t) {it = {x: t.clientX - e.left,y: t.clientY - e.top};o(it)
});
},

源码icon-default.png?t=N7T8https://www.ormcc.com/

需要源码请关注添加好友哦^ ^

转载:欢迎来到本站,转载请注明文章出处https://ormcc.com/

相关文章:

密室逃脱小游戏

欢迎来到程序小院 密室逃脱 玩法&#xff1a; 判断可生存的空间&#xff0c;鼠标点击屏幕进行人物左右移动&#xff0c;躲避闸道进行生存&#xff0c;每进行一次关卡都会有分数统计&#xff0c;赶紧去闯关吧^^。开始游戏https://www.ormcc.com/play/gameStart/176 html <c…...

【MyBatis】MyBatis项目结构的搭建

Mybatis项目的搭建 依赖 将打包方式添加为jar包 <groupId>com.qinghe.mybatis</groupId><artifactId>Mybatis_demo3</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>添加如下依赖 <depen…...

Vant组件库入门知识

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

Java字符串查找

目录 1.查找字符 &#xff08;1&#xff09;以索引查找字符 &#xff08;2&#xff09;以字符查找索引 2.查找字符串 在给定的字符串中查找需要的字符或字符串是常见的操作&#xff0c;以下是String类中常用的查找方法。 1.查找字符 查找字符分为两种情况&#xff1a;一种…...

2023年7月京东投影仪行业品牌销售排行榜(京东大数据)

鲸参谋监测的京东平台7月份投影仪行业销售数据已出炉&#xff01; 7月份&#xff0c;投影仪市场呈现增长趋势。根据鲸参谋平台的数据可知&#xff0c;7月京东平台投影仪的销量将近20万&#xff0c;同比增长约16%&#xff1b;销售额将近3.8亿&#xff0c;同比增长约4%。 ​*数据…...

设计模式-01简单工厂模式详解 详细代码对比

目录 ChatGpt问答原生代码简单工厂模式代码 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;新增boat 对比两种方法原生代码为什么使用强制转换&#xff1f;简单工厂模式 简单工厂方法总结与原生代码的区别&#xff1a;优点:缺点&#xff1a; 参考 本文将介绍什么…...

IPD-PDT-POP角色的名称、定位和职责说明书

在IPD推进中&#xff0c;有一个不是很关键但却离不开的角色叫做POP&#xff0c;POP这个角色通常是设置在PDT团队中。 那么IPD的PDT团队中的POP这个角色到底是什么意思呢&#xff1f;POP如何开展工作&#xff0c;以及POP的主要岗位职责有哪些呢&#xff1f;华研荟今天给大家分享…...

在MySQL中查看数据库和表的数据大小

在MySQL中查看数据库和表的数据大小 在管理和维护MySQL数据库时&#xff0c;了解数据库和表的数据大小是非常重要的。这可以帮助您监控数据库的增长、优化性能以及规划存储需求。本博客将介绍如何使用SQL查询来查看MySQL数据库和表的数据大小。 查看MySQL数据库的总数据大小 …...

Android前端音视频数据接入GB28181平台意义

技术背景 在华脉智联研发Android平台GB28181前端音视频接入模块之前&#xff0c;业内听到最多的是&#xff0c;如何用Android端在没有国标摄像头设备的前提下&#xff0c;模拟GB28181的信令和媒体流交互流程&#xff0c;实现GB28181整体方案的测试。 Android端真的没有必要做…...

Ubuntu 20.04上docker安装Redis

要在Ubuntu 20.04上使用Docker安装Redis&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1.更新系统包列表&#xff1a;sudo apt update2.安装Docker&#xff1a;sudo apt install docker.io3.启动Docker服务并设置其开机自启动&#xff1a;sudo systemctl start docker …...

linux 压缩webfile文件夹 webfile.tar.gz和webfile.tar的区别

linux 压缩webfile文件夹 在Linux中&#xff0c;你可以使用tar命令来压缩文件夹。以下是将文件夹压缩为名为"webfile.tar"的示例命令&#xff1a; cd到webfile所在的文件夹&#xff0c;然后执行 tar -cvf webfile.tar webfile/上述命令中&#xff0c;-c选项表示创建…...

基于SSM的农产品推广应用网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

人大金仓分析型数据库身份鉴别

目录 前言 数据库总参数 口令尝试次数 口令更换周期 明文密码替换 用户登录信息显示 前言 身份鉴别功能包含口令尝试次数限制、口令更换周期管理、明文密码替换和用户登录信息显示等几部分。 数据库总参数 identity_auth.enable 是否使用身份鉴别功能&#xff0c;布尔值…...

基于SpringBoot的在线教育平台系统

基于SpringBootVue的线教育平台系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、学生、老师 …...

基于大规模测量和多任务深度学习的电子鼻系统目标识别、浓度预测和状态判断

Target discrimination, concentration prediction, and status judgment of electronic nose system based on large-scale measurement and multi-task deep learning 摘要 为了实现响应特征的自动提取&#xff0c;简化模型的训练和应用过程&#xff0c;设计了一种双块知识…...

Unity游戏客户端进阶路线(只针对本人)

一、初级Unity游戏开发工程师需要掌握以下内容&#xff1a; 1.掌握编程语言&#xff0c;一般都会学C#&#xff0c;需要掌握C#编程语言的基础内容以及Unity3D的引擎配置。 2.掌握Unity引擎&#xff0c;对使用的引擎有深入的了解&#xff0c;掌握它的特性以及局限性。 3.熟悉游戏…...

【C++】封装map和set(红黑树实现)

前言&#xff1a; 前面&#xff0c;我们学习了set和map的用法&#xff0c;这两个容器可以完成查找&#xff0c;排序等操作&#xff0c;后来我们在学习过二叉搜索树的基础上又学习了两种特殊的二叉搜索树——AVL树和红黑树&#xff0c;他们俩可以是效率进一步提高&#xff0c;其…...

【补】代码随想录算法训练营day38|动态规划 |509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯

动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推…...

C语言sizeof()计算空间大小为8的问题

在练习数据结构过程中&#xff0c;定义指针p&#xff0c;并且申请了10个char类型空间&#xff0c;但在计算p所指空间大小时候&#xff0c;发现了一些奇怪的现象。 #include <stdio.h> #include <stdlib.h>int main(){char s[12];printf("the size of memory …...

时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化

时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于LMD局部均值分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 LMD局部均值分解 直接替换Excel即可运行包含频谱图相关系数图 Matlab语言 1.算法新颖…...

Next.js部署(Vercel)

Vercel 部署 为什么选择 Vercel&#xff1f; 与 Next.js 同源&#xff1a;Vercel 与 Next.js 由同一团队维护&#xff0c;新版本特性、运行时行为与文档往往最先在 Vercel 上得到验证&#xff0c;踩坑相对较少。边缘网络&#xff1a;部署在全球边缘节点&#xff0c;静态资源与…...

MMDetection实战:如何将训练好的Faster R-CNN模型部署到视频流进行实时目标检测

MMDetection实战&#xff1a;Faster R-CNN模型在视频流中的高效部署与优化 当计算机视觉开发者完成Faster R-CNN模型的训练后&#xff0c;如何将其部署到实际视频分析场景成为关键挑战。本文将深入探讨基于MMDetection框架的模型部署全流程&#xff0c;从基础实现到高级优化技巧…...

Linux主机名管理进阶:除了hostnamectl,你还需要知道这些配置文件和坑

Linux主机名管理进阶&#xff1a;从配置文件到云环境的深度实践 在Linux系统中&#xff0c;主机名远不止是一个简单的标识符。它像系统的DNA&#xff0c;贯穿于网络通信、服务发现、日志追踪等各个环节。许多管理员习惯使用hostnamectl命令快速修改主机名&#xff0c;却对背后的…...

模拟IC设计避坑指南:从gm/id曲线看懂增益、带宽与噪声的三角博弈

模拟IC设计中的gm/id方法论&#xff1a;增益、带宽与噪声的三角平衡艺术 在模拟集成电路设计的精密世界里&#xff0c;每个参数选择都如同走钢丝&#xff0c;需要设计师在相互制约的性能指标间找到完美平衡点。gm/id设计方法正是为这种复杂决策而生的一套系统化工具&#xff0c…...

禅论结构量化:通达信可视化分析插件的算法实现与实践应用

禅论结构量化&#xff1a;通达信可视化分析插件的算法实现与实践应用 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 禅论量化分析插件通过算法自动识别K线图中的线段结构和中枢区域&#xff0c;为交易者…...

AK7739 TDM调试避坑指南:从tinymix命令到SA6125平台时钟极性BUG排查

AK7739 TDM音频接口深度调试&#xff1a;从寄存器配置到时钟极性异常实战解析 当我们在嵌入式音频系统中集成AK7739编解码器时&#xff0c;TDM&#xff08;时分复用&#xff09;接口的调试往往是工程师面临的最大挑战之一。不同于标准的I2S协议&#xff0c;TDM接口的高度可配置…...

Browser-Use:基于LLM的智能浏览器自动化框架入门与实践

1. 项目概述&#xff1a;当AI学会“上网冲浪” 如果你和我一样&#xff0c;在过去的几年里尝试过各种RPA工具或者写爬虫脚本来处理网页上的重复性工作&#xff0c;那你一定对那种“脚本一跑就崩&#xff0c;网站一改版就废”的体验深有感触。我们总在幻想&#xff0c;要是能直…...

【Matlab】MATLAB教程:Simulink与MATLAB交互(MATLAB函数模块案例+混合编程仿真)

MATLAB教程:Simulink与MATLAB交互(MATLAB函数模块案例+混合编程仿真) 本教程适配MATLAB R2020a及以上版本,聚焦Simulink与MATLAB交互核心技能,以MATLAB函数模块为核心案例,详解混合编程仿真的全流程,无需深厚编程基础,纯实操导向、案例可直接复刻,适配高校课程设计、…...

阿里云第一季营收416亿:EBITA为38亿 同比增57%

雷递网 乐天 5月13日阿里巴巴&#xff08;美股代码&#xff1a;“baba”&#xff0c;港股代号&#xff1a;9988&#xff09;今日发布2026年第一季度的财报。财报显示&#xff0c;阿里2026年第一季度营收为2433.8亿元&#xff08;352.83亿美元&#xff09;&#xff0c;同比增长3…...

AI驱动的学术研究技能:自动化文献综述与深度分析工作流

1. 项目概述&#xff1a;一个为AI智能体设计的深度学术研究技能如果你是一名研究生、科研人员&#xff0c;或者任何需要快速、系统地梳理某个领域文献的人&#xff0c;那么你肯定体会过那种面对海量论文时的无力感。传统的流程是&#xff1a;打开Google Scholar&#xff0c;输入…...