斑马斑马跳

欢迎来到程序小院

斑马斑马跳

玩法:行走的斑马,点击鼠标左键斑马左右跳动,左右两侧有大树,和移动的小鸟,
撞到大树和小鸟游戏结束,统计分数,快去斑马跳吧^^。

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

html

<canvas id="c2canvas" width="720" height="1280">

css

html, body {
  background: #fff;
  color: #fff;
  overflow: hidden;
  touch-action: none;
  -ms-touch-action: none;
}
canvas {
  touch-action-delay: none;
  touch-action: none;
  -ms-touch-action: none;
}

js

function s() {
 return function () {}

}
function aa(a) {
 return function (c) {
  this[a] = c
 }
}
function w(a) {
 return function () {
  return this[a]
 }
}
function x(a) {
 return function () {
  return a
 }
}
var z, ca, da, ea, fa, ia, ja, ka, la, ma, na, oa, pa, qa, ra, sa, ta, ua, va, wa, xa, ya,
za, Aa, Ba, Ca, Da, Ea, Fa, Ga, Ha, Ia, Ja, Ka, La, Ma, Na, Oa, Pa, Qa, Ra, Sa, Va, Wa, Xa,
Ya, ab, bb, cb, db, eb, fb, gb, hb, ib, kb, lb, mb, nb, ob, pb, tb, ub, vb, wb, xb, yb, zb,
Ab, Bb, Cb, Db, Eb, Fb, Gb, Hb, Ib, Jb, Nb, Ob, Pb, Qb, Rb, Sb, Tb, Ub, Vb, Wb, Xb, Yb, Zb 
= {};
"function" !== typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === 
typeof "test".__proto__ ? function (a) {
 return a.__proto__
}
  : function (a) {
 return a.constructor.prototype
});
(function () {
 function a(a, b, c, d) {
  this.set(a, b, c, d)
 }
 function c() {
  this.ud = this.td = this.wd = this.vd = this.Ed = this.Dd = this.jc = this.ic = 0
 }
 function b(a, b, c, d) {
  a < b ? c < d ? (n = a < c ? a : c, k = b > d ? b : d) : (n = a < d ? a : d, k = b > 
    c ? b : c) : c < d ? (n = b < c ? b : c, k = a > d ? a : d) : (n = b < d ? b : d, 
    k = a > c ? a : c)
 }
 function d() {
  this.Lh = this.fh = null;
  this.ml = 0;
  v && (this.fh = new Set);
  this.Wl = [];
  this.Ei = !0
 }
 function e(a) {
  u[y++] = a
 }
 function f() {
  this.Cb = this.mr = this.y = this.F = 0
 }
 function g(a) {
  this.Ec = [];
  this.$o = this.cp = this.dp = this.bp = 0;
  this.vp = null;
  this.ao(a)
 }
 function h(a, b) {
  this.ZB =
   a;
  this.YB = b;
  this.cells = {}

 }
 function m(a, b, c) {
  var d;
  return F.length ? (d = F.pop(), d.LD = a, d.x = b, d.y = c, d) : new da(a, b, c)
 }
 function l(a, b, c) {
  this.LD = a;
  this.x = b;
  this.y = c;
  this.Ln = new ea
 }
 fa = function (a) {
  window.console && window.console.log && window.console.log(a)
 };
 ca = function (a) {
  return a
 };
 ia = function (a) {
  return "undefined" === typeof a
 };
 ja = function (a) {
  return "number" === typeof a
 };
 ka = function (a) {
  return "string" === typeof a
 };
 la = function (a) {
  return 0 < a && 0 === (a - 1 & a)
 };
 ma = function (a) {
  --a;
  for (var b = 1; 32 > b; b <<= 1)
   a |= a >> b;
  return a +
  1
 };
 na = function (a) {
  return 0 > a ? -a : a
 };
 oa = function (a, b) {
  return a > b ? a : b
 };
 pa = function (a, b) {
  return a < b ? a : b
 };
 qa = Math.PI;
 ra = function (a) {
  return a + 0.5 | 0
 };
 sa = function (a) {
  return 0 <= a ? a | 0 : (a | 0) - 1
 };
 ta = function (a) {
  var b = a | 0;
  return b === a ? b : b + 1
 };
 ua = function (a, b, c, d, f, k, e, r) {
  var g,
  h,
  u,
  l;
  a < c ? (h = a, g = c) : (h = c, g = a);
  f < e ? (l = f, u = e) : (l = e, u = f);
  if (g < l || h > u)
   return !1;
  b < d ? (h = b, g = d) : (h = d, g = b);
  k < r ? (l = k, u = r) : (l = r, u = k);
  if (g < l || h > u)
   return !1;
  g = f - a + e - c;
  h = k - b + r - d;
  a = c - a;
  b = d - b;
  f = e - f;
  k = r - k;
  r = na(b * f - k * a);
  return na(f * h - k * g) > r ? !1 : na(a * h - b * g) <=
  r
 };
 a.prototype.set = function (a, b, c, d) {
  this.left = a;
  this.top = b;
  this.right = c;
  this.bottom = d
 };
 a.prototype.copy = function (a) {
  this.left = a.left;
  this.top = a.top;
  this.right = a.right;
  this.bottom = a.bottom
 };
 a.prototype.width = function () {
  return this.right - this.left
 };
 a.prototype.height = function () {
  return this.bottom - this.top
 };
 a.prototype.offset = function (a, b) {
  this.left += a;
  this.top += b;
  this.right += a;
  this.bottom += b;
  return this
 };
 a.prototype.normalize = function () {
  var a = 0;
  this.left > this.right && (a = this.left, this.left = this.right,
   this.right = a);
  this.top > this.bottom && (a = this.top, this.top = this.bottom, this.bottom = a)
 };
 a.prototype.SD = function (a) {
  return !(a.right < this.left || a.bottom < this.top || a.left > this.right || 
    a.top > this.bottom)
 };
 a.prototype.TD = function (a, b, c) {
  return !(a.right + b < this.left || a.bottom + c < this.top || a.left + b > this.right
    || a.top + c > this.bottom)
 };
 a.prototype.Fe = function (a, b) {
  return a >= this.left && a <= this.right && b >= this.top && b <= this.bottom
 };
 a.prototype.JC = function (a) {
  return this.left === a.left && this.top === a.top && this.right === a.right &&
  this.bottom === a.bottom
 };
 va = a;
 c.prototype.$n = function (a) {
  this.ic = a.left;
  this.jc = a.top;
  this.Dd = a.right;
  this.Ed = a.top;
  this.vd = a.right;
  this.wd = a.bottom;
  this.td = a.left;
  this.ud = a.bottom
 };
 c.prototype.Dz = function (a, b) {
  if (0 === b)
   this.$n(a);
  else {
   var c = Math.sin(b),
   d = Math.cos(b),
   f = a.left * c,
   k = a.top * c,
   e = a.right * c,
   c = a.bottom * c,
   r = a.left * d,
   g = a.top * d,
   h = a.right * d,
   d = a.bottom * d;
   this.ic = r - k;
   this.jc = g + f;
   this.Dd = h - k;
   this.Ed = g + e;
   this.vd = h - c;
   this.wd = d + e;
   this.td = r - c;
   this.ud = d + f
  }
 };
 c.prototype.offset = function (a, b) {
  this.ic += a;
  this.jc += b;
  this.Dd += a;
  this.Ed += b;
  this.vd += a;
  this.wd += b;
  this.td += a;
  this.ud += b;
  return this
 };
 var n = 0,
 k = 0;
 c.prototype.$w = function (a) {
  b(this.ic, this.Dd, this.vd, this.td);
  a.left = n;
  a.right = k;
  b(this.jc, this.Ed, this.wd, this.ud);
  a.top = n;
  a.bottom = k
 };
 c.prototype.Fe = function (a, b) {
  var c = this.Dd - this.ic,
  d = this.Ed - this.jc,
  f = this.vd - this.ic,
  k = this.wd - this.jc,
  e = a - this.ic,
  r = b - this.jc,
  g = c * c + d * d,
  h = c * f + d * k,
  d = c * e + d * r,
  u = f * f + k * k,
  l = f * e + k * r,
  y = 1 / (g * u - h * h),
  c = (u * d - h * l) * y,
  g = (g * l - h * d) * y;
  if (0 <= c && 0 < g && 1 > c + g)
   return !0;
  c = this.td - this.ic;
  d = this.ud - this.jc;
  g = c * c + d * d;
  h = c * f + d * k;
  d = c * e + d * r;
  y = 1 / (g * u - h * h);
  c = (u * d - h * l) * y;
  g = (g * l - h * d) * y;
  return 0 <= c && 0 < g && 1 > c + g
 };
 c.prototype.Bi = function (a, b) {
  if (b)
   switch (a) {
   case 0:
    return this.ic;
   case 1:
    return this.Dd;
   case 2:
    return this.vd;
   case 3:
    return this.td;
   case 4:
    return this.ic;
   default:
    return this.ic
   }
  else
   switch (a) {
   case 0:
    return this.jc;
   case 1:
    return this.Ed;
   case 2:
    return this.wd;
   case 3:
    return this.ud;
   case 4:
    return this.jc;
   default:
    return this.jc
   }
 };
 c.prototype.ej = function () {
  return (this.ic + this.Dd + this.vd + this.td) /
  4
 };
 c.prototype.fj = function () {
  return (this.jc + this.Ed + this.wd + this.ud) / 4
 };

源码

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/301938.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目总体测试计划书

一、 前言 &#xff08;一&#xff09; 背景 &#xff08;二&#xff09; 目的 &#xff08;三&#xff09; 测试目标 &#xff08;四&#xff09; 适用范围与读者对象 &#xff08;五&#xff09; 术语与缩写 二、 软件测试实施流程 &#xff08;一&#xff09; 测试工作总体流…

系统编程--VIM特辑

这里写目录标题 vim三种工作模式进入文本模式的快捷键在命令模式下进行文本编辑删除快捷键复制粘贴查找替换查找替换 vim其他操作 vim打造简易IDE vim 三种工作模式 具体可见第二章对vim的详细介绍 需要注意的是&#xff0c;在末行模式下执行完一次命令&#xff0c;就可以直接…

RTTI结构详细分析(VC++)

对于RTTI结构的资料真的屈指可数,类的逆向也一直是一个不好弄的问题.对此我只想贡献我的一份力量。 文中我不会分析类的内存布局,因为有很多资料已经分析的挺好的了(见参考资料)。但是现有我能找到的资料对RTTI结构的表述不完整,或者表述模糊不清,参考Clang的部分源码后&#…

什么是VR、AR、MR、XR?

VR、AR、MR、XR的定义 VR虚拟现实是利用计算机技术创造虚拟世界&#xff0c;用户可以通过穿戴VR设备&#xff0c;进入虚拟现实的环境&#xff0c;感受身临其境的体验。 AR增强现实技术是将现实和虚拟世界结合在一起&#xff0c;用户可以通过手机、平板电脑等设备&#xff0c;看…

Weblogic安全漫谈(四)

黑名单机制必然会推动两种研究方向的发展&#xff1a;一是挖掘不在黑名单的新组件&#xff0c;是为绕过规则&#xff1b;二是发掘检查的盲区&#xff0c;是为绕过逻辑。 CVE-2020-14756 二次反序列化具有对抗检查逻辑的天生丽质&#xff0c;在CVE-2018-2893中就有利用字节数组…

文件夹重命名:如何一键完成简体中文文件夹名到繁体中文的批量转换

随着科技的发展&#xff0c;人类越来越依赖计算机和电子设备进行文件管理。在这个过程中&#xff0c;经常会遇到要将简体中文文件夹名转换为繁体中文的情况。这有助于统一文件名的格式&#xff0c;也能提高文件的可读性和检索性。那如何一键完成简体中文文件夹名到繁体中文的批…

【精通C语言】:分支结构switch语句的灵活运用

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C语言详解 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、switch语句1.1 语法1.2 代码示例 二、switch的控制语句2.1 break2.2 defualt子句 三、…

前端下载文件问题之如何获取报错信息

问题&#xff1a;点击下载后。接口会生成并返回文件流。在极端情况下接口数据返回异常&#xff0c;需要抛出错误信息&#xff0c;比如后端拼接错误情况、空文件情况。 难点&#xff1a;responseType设置为Blob后&#xff0c;返回内容为二进制文件流&#xff0c;从而无法获取错误…

03、Kafka ------ CMAK(Kafka 图形界面管理工具) 下载、安装、启动

目录 CMAK&#xff08;Kafka 图形界面管理工具&#xff09;下载安装启动打开 cmak 图形界面 CMAK&#xff08;Kafka 图形界面管理工具&#xff09; Kafka本身并没有提供Web管理工具&#xff0c;而是推荐使用bin目录下各种工具命令来管理Kafka&#xff0c; 这些工具命令其实用起…

安达发|基于APS排程系统的PDM功能

APS系统&#xff08;Advanced Planning and Scheduling&#xff0c;先进计划与排程&#xff09;是一种基于APS系统&#xff08;Advanced Planning and Scheduling&#xff0c;先进计划与排程&#xff09;是一种基于供应链管理和生产管理的综合性软件系统。它通过整合企业内外部…

安达发APS排产软件之PDM产品工艺数据管理

PDM&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;是一种用于管理产品全生命周期内所有与产品相关的信息和数据的技术。在制造业中&#xff0c;PDM系统被广泛应用于产品工艺数据管理&#xff0c;以提高生产效率、降低成本、保证产品质量和缩短产品上…

Vue3+Pinia实现持久化动态主题切换

PC端主题切换大家都用过&#xff0c;下面用Vue3Pinia实现一下这个过程; 【源码地址】 1、准备工作 npm install pinia npm install pinia-plugin-persist2、基础配置 // main.js import { createApp } from vue import App from ./App.vue import bootstrap from "../bo…

Java面向对象(抽象类,接口,内部类)

文章目录 今日内容教学目标 第一章 抽象类1.1 概述1.1.1 抽象类引入 1.2 abstract使用格式1.2.1 抽象方法1.2.2 抽象类1.2.3 抽象类的使用 1.3 抽象类的特征1.4 抽象类的细节1.5 抽象类存在的意义 第二章 接口2.1 概述2.2 定义格式2.3 接口成分的特点2.3.1.抽象方法2.3.2 常量2…

麒麟KYLINOS禁用IPV6地址

原文链接&#xff1a;麒麟KYLINOS操作系统上禁用IPv6的方法 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在麒麟KYLINOS操作系统上禁用IPv6的方法。IPv6是最新的网络通信协议&#xff0c;旨在解决IPv4地址耗尽的问题。然而&#xff0c;在某些特定的网络环境或…

MYSQL 索引使用规则

索引失效 最左前缀法则 where之后写的顺序不重要&#xff0c;存在就可以 范围查询后面的索引查询失效&#xff08;比如>&#xff09;,但是>或者<是不会失效的 不要在索引列上进行运算操作&#xff0c;否则索引失效。 字符串类型字段不加引号索引会失效 尾部模糊匹配…

ThreadLocalRandom类原理剖析

ThreadLocalRandom 类是JDK7在JUC包下新增的随机数生成器&#xff0c;它弥补了Random类在多线程下的缺陷。 Random 类及其局限性 在JDK7之前包括现在&#xff0c;java.util.Random都是使用比较广泛的随机数生成工具类&#xff0c;而且java.lang.Math中的随机数生成也使用的是…

网安面试三十到题(结束)

121 有文件上传了漏洞了&#xff0c;linux下怎么找xx.conf的文件 目录遍历,目录扫描 122 反序列化漏洞原理 ## 你要把别人序列化好的文件进行反序列化进行利用&#xff0c;但是在序列化的过程中&#xff0c;被别人注入了攻击代码、魔 法函数之类的&#xff0c;当你反序列化的时…

花为缘积萨伯爵名表工艺之美,传承卓越

腕表是时间的载体&#xff0c;也是品味的象征。在现代人眼中&#xff0c;它们不仅仅是时间的工具&#xff0c;更是一种艺术形式。在制表工艺的殿堂中&#xff0c;花为缘积萨伯爵名表以其独特的创造力和严谨缜密的要求&#xff0c;创作了一系列典范之作&#xff0c;将技术与美学…

伦敦银1盎司等于多少克?

1盎司的伦敦银大概等于31克&#xff0c;用于衡量伦敦银重量的“盎司”&#xff0c;是国际贵金属市场上专用的计量单位&#xff0c;它的全称是金衡盎司&#xff0c;英文的名字是troy ounce&#xff0c;它与西方日常用于计算重量的单位常衡盎司也不一样&#xff0c;一金衡盎司约等…

DTM分布式事务

DTM分布式事务 从内网看到了关于事务在业务中的讨论&#xff0c;评论区大佬有提及DTM开源项目[https://dtm.pub/]&#xff0c;开学开学 基础理论 一、Why DTM ​ 项目产生于实际生产中的问题&#xff0c;涉及订单支付的服务会将所有业务相关逻辑放到一个大的本地事务&#xff…