当前位置: 首页 > 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.算法新颖…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”&#xff1a;输入模块&#xff08;GPIO、温度、V_REFINT&#xff09;1.4.2 信号 “调度站”&#xff1a;多路开关1.4.3 信号 “加工厂”&#xff1a;ADC 转换器&#xff08;规则组 注入…...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...