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

火柴人大逃亡

欢迎来到程序小院

火柴人大逃亡

玩法:左右两边火柴人,点击左边左边火柴人跳跃,点击右边右边跳跃,
上下快速移动道路,躲过障碍物,看你能坚持多久,快去火柴人大逃亡吧^^。

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

html

<canvas id="c2canvas" width="640" height="960"></canvas>

css

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

js

function resetdpsubmit() {g9param.issubmit = false
}
var g9param = {resetId: "",issubmit: false
};
var cr = {};
cr.plugins_ = {}, cr.behaviors = {}, "function" != typeof Object.getPrototypeOf && (
Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(e) {return e.__proto__
} : function(e) {return e.constructor.prototype
}),
function() {function e(e, t) {this.x = e, this.y = t, cr.seal(this)}function t(e, t, n, r) {this.set(e, t, n, r), cr.seal(this)}function n() {this.tlx = 0, this.tly = 0, this.trx = 0, this.try_ = 0, this.brx = 0,this.bry = 0, this.blx = 0, this.bly = 0, cr.seal(this)}function r(e, t, n, r) {t > e ? r > n ? (h = n > e ? e : n, p = t > r ? t : r) : (h = r > e ? e : r,p = t > n ? t : n) : r > n ? (h = n > t ? t : n, p = e > r ? e : r) : (h = r > t ? t : r, p = e > n ? e : n)}function i() {this.s = null, this.items = null, this.item_count = 0, b && (this.s = new Set),this.values_cache = [], this.cache_valid = !0, cr.seal(this)}function s(e) {w[E++] = e}function o() {this.c = 0, this.y = 0, this.t = 0, this.sum = 0, cr.seal(this)}function u(e) {this.pts_cache = [], this.bboxLeft = 0, this.bboxTop = 0, this.bboxRight = 0, this.bboxBottom = 0, this.convexpolys = null, this.set_pts(e), cr.seal(this)}function a(e, t) {this.cellwidth = e, this.cellheight = t, this.cells = {}}function f(e, t, n) {var r;return a.prototype.totalCellCount++, x.length ? (r = x.pop(), r.grid = e, r.x = t, r.y = n, r) : new cr.GridCell(e, t, n)}function l(e) {a.prototype.totalCellCount--, e.objects.clear(), x.length < 1e3 && x.push(e)}function c(e, t, n) {this.grid = e, this.x = t, this.y = n, this.objects = new cr.ObjectSet}cr.logexport = function(e) {window.console && window.console.log && window.console.log(e)}, cr.seal = function(e) {return e}, cr.freeze = function(e) {return e}, cr.is_undefined = function(e) {return "undefined" == typeof e}, cr.is_number = function(e) {return "number" == typeof e}, cr.is_string = function(e) {return "string" == typeof e}, cr.isPOT = function(e) {return e > 0 && 0 === (e - 1 & e)}, cr.nextHighestPowerOfTwo = function(e) {--e;for (var t = 1; 32 > t; t <<= 1) e |= e >> t;return e + 1}, cr.abs = function(e) {return 0 > e ? -e : e}, cr.max = function(e, t) {return e > t ? e : t}, cr.min = function(e, t) {return t > e ? e : t}, cr.PI = Math.PI, cr.round = function(e) {return e + .5 | 0}, cr.floor = function(e) {return e >= 0 ? 0 | e : (0 | e) - 1}, cr.ceil = function(e) {var t = 0 | e;return t === e ? t : t + 1}, e.prototype.offset = function(e, t) {return this.x += e, this.y += t, this}, e.prototype.mul = function(e, t) {return this.x *= e, this.y *= t, this}, cr.vector2 = e, cr.segments_intersect = function(e, t, n, r, i, s, o, u) {var a, f, l, c, h, p, d, v;if (n > e ? (f = e, a = n) : (f = n, a = e), o > i ? (p = i, h = o) : (p = o, h = i), p > a || f > h) return !1;if (r > t ? (c = t, l = r) : (c = r, l = t), u > s ? (v = s, d = u) : (v = u,d = s), v > l || c > d) return !1;var m = i - e + o - n,g = s - t + u - r,y = n - e,b = r - t,w = o - i,E = u - s,S = cr.abs(b * w - E * y),x = w * g - E * m;if (cr.abs(x) > S) return !1;var T = y * g - b * m;return cr.abs(T) <= S}, t.prototype.set = function(e, t, n, r) {this.left = e, this.top = t, this.right = n, this.bottom = r}, t.prototype.copy = function(e) {this.left = e.left, this.top = e.top, this.right = e.right, this.bottom = e.bottom}, t.prototype.width = function() {return this.right - this.left}, t.prototype.height = function() {return this.bottom - this.top}, t.prototype.offset = function(e, t) {return this.left += e, this.top += t, this.right += e, this.bottom += t, this}, t.prototype.normalize = function() {var e = 0;this.left > this.right && (e = this.left, this.left = this.right, this.right = e), this.top > this.bottom && (e = this.top, this.top = this.bottom, this.bottom = e)}, t.prototype.intersects_rect = function(e) {return !(e.right < this.left || e.bottom < this.top || e.left > this.right || e.top > this.bottom)}, t.prototype.intersects_rect_off = function(e, t, n) {return !(e.right + t < this.left || e.bottom + n < this.top || e.left + t > this.right || e.top + n > this.bottom)}, t.prototype.contains_pt = function(e, t) {return e >= this.left && e <= this.right && t >= this.top && t <= this.bottom}, t.prototype.equals = function(e) {return this.left === e.left && this.top === e.top && this.right === e.right &&this.bottom === e.bottom}, cr.rect = t, n.prototype.set_from_rect = function(e) {this.tlx = e.left, this.tly = e.top, this.trx = e.right, this.try_ = e.top, this.brx = e.right, this.bry = e.bottom, this.blx = e.left, this.bly = e.bottom}, n.prototype.set_from_rotated_rect = function(e, t) {if (0 === t) this.set_from_rect(e);else {var n = Math.sin(t),r = Math.cos(t),i = e.left * n,s = e.top * n,o = e.right * n,u = e.bottom * n,a = e.left * r,f = e.top * r,l = e.right * r,c = e.bottom * r;this.tlx = a - s, this.tly = f + i, this.trx = l - s, this.try_ = f + o, this.brx = l - u, this.bry = c + o, this.blx = a - u, this.bly = c + i}}, n.prototype.offset = function(e, t) {return this.tlx += e, this.tly += t, this.trx += e, this.try_ += t, this.brx += e, this.bry += t, this.blx += e, this.bly += t, this};var h = 0,p = 0;n.prototype.bounding_box = function(e) {r(this.tlx, this.trx, this.brx, this.blx), e.left = h, e.right = p, r(this.tly, this.try_, this.bry, this.bly), e.top = h, e.bottom = p}, n.prototype.contains_pt = function(e, t) {var n = this.trx - this.tlx,r = this.try_ - this.tly,i = this.brx - this.tlx,s = this.bry - this.tly,o = e - this.tlx,u = t - this.tly,a = n * n + r * r,f = n * i + r * s,l = n * o + r * u,c = i * i + s * s,h = i * o + s * u,p = 1 / (a * c - f * f),d = (c * l - f * h) * p,v = (a * h - f * l) * p;if (d >= 0 && v > 0 && 1 > d + v) return !0;n = this.blx - this.tlx, r = this.bly - this.tly;var a = n * n + r * r,f = n * i + r * s,l = n * o + r * u;return p = 1 / (a * c - f * f), d = (c * l - f * h) * p, v = (a * h - f * l) *p, d >= 0 && v > 0 && 1 > d + v}, n.prototype.at = function(e, t) {if (t) switch (e) {case 0:return this.tlx;case 1:return this.trx;case 2:return this.brx;case 3:return this.blx;case 4:return this.tlx;default:return this.tlx} else switch (e) {case 0:return this.tly;case 1:return this.try_;case 2:return this.bry;case 3:return this.bly;case 4:return this.tly;default:return this.tly}}, n.prototype.midX = function() {return (this.tlx + this.trx + this.brx + this.blx) / 4}, n.prototype.midY = function() {return (this.tly + this.try_ + this.bry + this.bly) / 4}, n.prototype.intersects_segment = function(e, t, n, r) {if (this.contains_pt(e, t) || this.contains_pt(n, r)) return !0;var i, s, o, u, a;for (a = 0; 4 > a; a++)if (i = this.at(a, !0), s = this.at(a, !1), o = this.at(a + 1, !0), u = this.at(a + 1, !1), cr.segments_intersect(e, t, n, r, i, s, o, u)) return !0;return !1}, n.prototype.intersects_quad = function(e) {var t = e.midX(),n = e.midY();if (this.contains_pt(t, n)) return !0;if (t = this.midX(), n = this.midY(), e.contains_pt(t, n)) return !0;var r, i, s, o, u, a, f, l, c, h;for (c = 0; 4 > c; c++)for (h = 0; 4 > h; h++)if (r = this.at(c, !0), i = this.at(c, !1), s = this.at(c + 1, !0), o =this.at(c + 1, !1), u = e.at(h, !0), a = e.at(h, !1), f = e.at(h + 1, !0), l = e.at(h + 1, !1), cr.segments_intersect(r, i, s, o, u, a, f, l)) return !0;return !1}, cr.quad = n, cr.RGB = function(e, t, n) {return Math.max(Math.min(e, 255), 0) | Math.max(Math.min(t, 255), 0) << 8 | Math.max(Math.min(n, 255), 0) << 16}, cr.GetRValue = function(e) {return 255 & e}, cr.GetGValue = function(e) {return (65280 & e) >> 8}, cr.GetBValue = function(e) {return (16711680 & e) >> 16}, cr.shallowCopy = function(e, t) {var n;for (n in t) t.hasOwnProperty(n) && (e[n] = t[n]);return e}, cr.arrayRemove = function(e, t) {var n, r;if (t = cr.floor(t), !(0 > t || t >= e.length)) {for (n = t, r = e.length - 1; r > n; n++) e[n] = e[n + 1];e.length = r}}, cr.shallowAssignArray = function(e, t) {e.length = t.length;var n, r;for (n = 0, r = t.length; r > n; n++) e[n] = t[n]}, cr.appendArray = function(e, t) {e.push.apply(e, t)}, cr.fastIndexOf = function(e, t) {var n, r;for (n = 0, r = e.length; r > n; ++n)if (e[n] === t) return n;return -1}, cr.arrayFindRemove = function(e, t) {var n = cr.fastIndexOf(e, t); - 1 !== n && cr.arrayRemove(e, n)}, cr.clamp = function(e, t, n) {return t > e ? t : e > n ? n : e}, cr.to_radians = function(e) {return e / (180 / cr.PI)}, cr.to_degrees = function(e) {return e * (180 / cr.PI)}, cr.clamp_angle_degrees = function(e) {return e %= 360, 0 > e && (e += 360), e}, cr.clamp_angle = function(e) {return e %= 2 * cr.PI, 0 > e && (e += 2 * cr.PI), e}, cr.to_clamped_degrees = function(e) {return cr.clamp_angle_degrees(cr.to_degrees(e))}, cr.to_clamped_radians = function(e) {return cr.clamp_angle(cr.to_radians(e))}, cr.angleTo = function(e, t, n, r) {var i = n - e,s = r - t;return Math.atan2(s, i)}, cr.angleDiff = function(e, t) {if (e === t) return 0;var n = Math.sin(e),r = Math.cos(e),i = Math.sin(t),s = Math.cos(t),o = n * i + r * s;return o >= 1 ? 0 : -1 >= o ? cr.PI : Math.acos(o)}, cr.angleRotate = function(e, t, n) {var r = Math.sin(e),i = Math.cos(e),s = Math.sin(t),o = Math.cos(t);return cr.clamp_angle(Math.acos(r * s + i * o) > n ? i * s - r * o > 0 ? e + n :e - n : t)}, cr.angleClockwise = function(e, t) {var n = Math.sin(e),r = Math.cos(e),i = Math.sin(t),s = Math.cos(t);return 0 >= r * i - n * s}, cr.rotatePtAround = function(e, t, n, r, i, s) {if (0 === n) return s ? e : t;var o = Math.sin(n),u = Math.cos(n);e -= r, t -= i;var a = e * o,f = t * o,l = e * u,c = t * u;return e = l - f, t = c + a, e += r, t += i, s ? e : t}, cr.distanceTo = function(e, t, n, r) {var i = n - e,s = r - t;return Math.sqrt(i * i + s * s)}, cr.xor = function(e, t) {return !e != !t}, cr.lerp = function(e, t, n) {return e + (t - e) * n}, cr.unlerp = function(e, t, n) {return e === t ? 0 : (n - e) / (t - e)}, cr.anglelerp = function(e, t, n) {var r = cr.angleDiff(e, t);return cr.angleClockwise(t, e) ? e + r * n : e - r * n}, cr.qarp = function(e, t, n, r) {return cr.lerp(cr.lerp(e, t, r), cr.lerp(t, n, r), r)}, cr.cubic = function(e, t, n, r, i) {return cr.lerp(cr.qarp(e, t, n, i), cr.qarp(t, n, r, i), i)}, cr.cosp = function(e, t, n) {return (e + t + (e - t) * Math.cos(n * Math.PI)) / 2}, cr.hasAnyOwnProperty = function(e) {var t;for (t in e)if (e.hasOwnProperty(t)) return !0;return !1}, cr.wipe = function(e) {var t;for (t in e) e.hasOwnProperty(t) && delete e[t]};var d = +(new Date);cr.performance_now = function() {if ("undefined" != typeof window.performance) {var e = window.performance;if ("undefined" != typeof e.now) return e.now();if ("undefined" != typeof e.webkitNow) return e.webkitNow();if ("undefined" != typeof e.mozNow) return e.mozNow();if ("undefined" != typeof e.msNow) return e.msNow()}return Date.now() - d};var v = !1,m = !1,g = !1,y = !1;"undefined" != typeof window && (v = /chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent), m = !v && /safari/i.test(navigator.userAgent),g = /(iphone|ipod|ipad)/i.test(navigator.userAgent), y = window.c2ejecta);var b = !m && !y && !g && "undefined" != typeof Set && "undefined" != typeof Set.prototype.forEach;i.prototype.contains = function(e) {return this.isEmpty() ? !1 : b ? this.s.has(e) : this.items && this.items.hasOwnProperty(e)}, i.prototype.add = function(e) {if (b) this.s.has(e) || (this.s.add(e), this.cache_valid = !1);else {var t = e.toString(),n = this.items;n ? n.hasOwnProperty(t) || (n[t] = e, this.item_count++, this.cache_valid = !1) : (this.items = {}, this.items[t] = e,this.item_count = 1, this.cache_valid = !1)}}, i.prototype.remove = function(e) {if (!this.isEmpty())if (b) this.s.has(e) && (this.s["delete"](e), this.cache_valid = !1);else if (this.items) {var t = e.toString(),n = this.items;n.hasOwnProperty(t) && (delete n[t], this.item_count--, this.cache_valid = !1)}}, i.prototype.clear = function() {this.isEmpty() || (b ? this.s.clear() : (this.items = null, this.item_count = 0),this.values_cache.length = 0, this.cache_valid = !0)}, i.prototype.isEmpty = function() {return 0 === this.count()}, i.prototype.count = function() {return b ? this.s.size : this.item_count};var w = null,E = 0;i.prototype.update_cache = function() {if (!this.cache_valid) {if (b) this.values_cache.length = this.s.size, w = this.values_cache, E = 0, this.s.forEach(s), w = null, E = 0;else {var e = this.values_cache;e.length = this.item_count;var t, n = 0,r = this.items;if (r)for (t in r) r.hasOwnProperty(t) && (e[n++] = r[t])}this.cache_valid = !0}}, i.prototype.valuesRef = function() {return this.update_cache(), this.values_cache}, cr.ObjectSet = i;var S = new cr.ObjectSet;cr.removeArrayDuplicates = function(e) {var t, n;for (t = 0, n = e.length; n > t; ++t) S.add(e[t]);cr.shallowAssignArray(e, S.valuesRef()), S.clear()}, o.prototype.add = function(e) {this.y = e - this.c, this.t = this.sum + this.y, this.c = this.t - this.sum - this.y, this.sum = this.t}, o.prototype.reset = function() {this.c = 0, this.y = 0, this.t = 0, this.sum = 0}, cr.KahanAdder = o, cr.regexp_escape = function(e) {return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")}, u.prototype.set_pts = function(e) {this.pts_array = e, this.pts_count = e.length / 2, this.pts_cache.length =e.length, this.cache_width = -1, this.cache_height = -1, this.cache_angle = 0}, u.prototype.is_empty = function() {return !this.pts_array.length}, u.prototype.update_bbox = function() {for (var e, t, n, r = this.pts_cache, i = r[0], s = i, o = r[1], u = o, a = 1, f = this.pts_count; f > a; ++a) n = 2 * a, e = r[n], t = r[n + 1], i > e && (i = e), e > s && (s = e), o > t && (o = t), t > u && (u = t);this.bboxLeft = i, this.bboxRight = s, this.bboxTop = o, this.bboxBottom = u}, u.prototype.set_from_rect = function(e, t, n) {this.pts_cache.length = 8, this.pts_count = 4;var r = this.pts_cache;r[0] = e.left - t, r[1] = e.top - n, r[2] = e.right - t, r[3] = e.top - n, r[4] = e.right - t, r[5] = e.bottom - n, r[6] = e.left - t, r[7] = e.bottom - n, this.cache_width = e.right - e.left, this.cache_height = e.bottom - e.top, this.update_bbox()}, u.prototype.set_from_quad = function(e, t, n, r, i) {this.pts_cache.length = 8, this.pts_count = 4;var s = this.pts_cache;s[0] = e.tlx - t, s[1] = e.tly - n, s[2] = e.trx - t, s[3] = e.try_ - n, s[4] = e.brx - t, s[5] = e.bry - n, s[6] = e.blx - t, s[7] = e.bly - n, this.cache_width = r, this.cache_height = i, this.update_bbox()}, u.prototype.set_from_poly = function(e) {this.pts_count = e.pts_count, cr.shallowAssignArray(this.pts_cache, e.pts_cache), this.bboxLeft = e.bboxLeft, this.bboxTop - e.bboxTop, this.bboxRight = e.bboxRight, this.bboxBottom = e.bboxBottom}, u.prototype.cache_poly = function(e, t, n) {if (this.cache_width !== e || this.cache_height !== t || this.cache_angle !== n) {this.cache_width = e, this.cache_height = t, this.cache_angle = n;var r, i, s, o, u, a, f = 0,l = 1,c = this.pts_array,h = this.pts_cache;for (0 !== n && (f = Math.sin(n), l = Math.cos(n)), r = 0, o = this.pts_count; o > r; r++) i = 2 * r, s = i + 1, u = c[i] * e, a = c[s] * t, h[i] = u * l -a * f, h[s] = a * l + u * f;this.update_bbox()}}, u.prototype.contains_pt = function(e, t) {var n = this.pts_cache;if (e === n[0] && t === n[1]) return !0;var r, i, s, o, u, a, f, l = this.pts_count,c = this.bboxLeft - 110,h = this.bboxTop - 101,p = this.bboxRight + 131,d = this.bboxBottom + 120,v = 0,m = 0;for (r = 0; l > r; r++) i = 2 * r, s = (r + 1) % l * 2, o = n[i], u = n[i + 1], a = n[s], f = n[s + 1], cr.segments_intersect(c, h, e, t, o, u, a, f) && v++, cr.segments_intersect(p, d, e, t, o, u, a, f) && m++;return v % 2 === 1 || m % 2 === 1}, u.prototype.intersects_poly = function(e, t, n) {var r = e.pts_cache,i = this.pts_cache;if (this.contains_pt(r[0] + t, r[1] + n)) return !0;if (e.contains_pt(i[0] - t, i[1] - n)) return !0;var s, o, u, a, f, l, c, h, p, d, v, m, g, y, b, w;for (s = 0, a = this.pts_count; a > s; s++)for (o = 2 * s, u = (s + 1) % a * 2, p = i[o], d = i[o + 1], v = i[u], m = i[u + 1], f = 0, h = e.pts_count; h > f; f++)if (l = 2 * f, c = (f + 1) % h * 2, g = r[l] + t, y = r[l + 1] + n, b = r[c] + t, w = r[c + 1] + n, cr.segments_intersect(p, d, v, m, g,y, b, w)) return !0;return !1}, u.prototype.intersects_segment = function(e, t, n, r, i, s) {var o = this.pts_cache;if (this.contains_pt(n - e, r - t)) return !0;var u, a, f, l, c, h, p, d;for (u = 0, a = this.pts_count; a > u; u++)if (f = 2 * u, l = (u + 1) % a * 2, c = o[f] + e, h = o[f + 1] + t, p = o[l] + e, d = o[l + 1] + t, cr.segments_intersect(n, r, i, s, c, h, p, d)) return !0;return !1}, u.prototype.mirror = function(e) {var t, n, r;for (t = 0, n = this.pts_count; n > t; ++t) r = 2 * t, this.pts_cache[r] = 2 * e - this.pts_cache[r]}, u.prototype.flip = function(e) {var t, n, r;for (t = 0, n = this.pts_count; n > t; ++t) r = 2 * t + 1, this.pts_cache[r] = 2 * e - this.pts_cache[r]}, u.prototype.diag = function() {var e, t, n, r, i;for (e = 0, t = this.pts_count; t > e; ++e) n = 2 * e, r = n + 1, i = this.pts_cache[n], this.pts_cache[n] = this.pts_cache[r], this.pts_cache[r] = i}, cr.CollisionPoly = u, a.prototype.totalCellCount = 0, a.prototype.getCell = function(e, t, n) {var r, i = this.cells[e];return i ? (r = i[t], r ? r : n ? (r = f(this, e, t), this.cells[e][t] = r, r) : null) : n ? (r = f(this, e, t), this.cells[e] = {}, this.cells[e][t] = r, r) :null}, a.prototype.XToCell = function(e) {return cr.floor(e / this.cellwidth)}, a.prototype.YToCell = function(e) {return cr.floor(e / this.cellheight)}, a.prototype.update = function(e, t, n) {var r, i, s, o, u;if (t)for (r = t.left, i = t.right; i >= r; ++r)for (s = t.top, o = t.bottom; o >= s; ++s) n && n.contains_pt(r, s) ||(u = this.getCell(r, s, !1), u && (u.remove(e), u.isEmpty() && (l(u), this.cells[r][s] = null)));if (n)for (r = n.left, i = n.right; i >= r; ++r)for (s = n.top, o = n.bottom; o >= s; ++s) t && t.contains_pt(r, s) || this.getCell(r, s, !0).insert(e)}, a.prototype.queryRange = function(e, t) {var n, r, i, s, o, u;for (n = this.XToCell(e.left), i = this.YToCell(e.top), r = this.XToCell(e.right),o = this.YToCell(e.bottom); r >= n; ++n)for (s = i; o >= s; ++s) u = this.getCell(n, s, !1), u && u.dump(t)}, cr.SparseGrid = a;var x = [];c.prototype.isEmpty = function() {return this.objects.isEmpty()}, c.prototype.insert = function(e) {this.objects.add(e)}, c.prototype.remove = function(e) {this.objects.remove(e)}, c.prototype.dump = function(e) {cr.appendArray(e, this.objects.valuesRef())}, cr.GridCell = c;var T = ["lighter", "xor", "copy", "destination-over", "source-in", "destination-in","source-out", "destination-out", "source-atop", "destination-atop"];cr.effectToCompositeOp = function(e) {return 0 >= e || e >= 11 ? "source-over" : T[e - 1]}, cr.setGLBlend = function(e, t, n) {if (n) switch (e.srcBlend = n.ONE, e.destBlend = n.ONE_MINUS_SRC_ALPHA, t) {case 1:e.srcBlend = n.ONE, e.destBlend = n.ONE;break;case 2:break;case 3:e.srcBlend = n.ONE, e.destBlend = n.ZERO;break;case 4:e.srcBlend = n.ONE_MINUS_DST_ALPHA, e.destBlend = n.ONE;break;case 5:e.srcBlend = n.DST_ALPHA, e.destBlend = n.ZERO;break;case 6:e.srcBlend = n.ZERO, e.destBlend = n.SRC_ALPHA;break;case 7:e.srcBlend = n.ONE_MINUS_DST_ALPHA, e.destBlend = n.ZERO;break;case 8:e.srcBlend = n.ZERO, e.destBlend = n.ONE_MINUS_SRC_ALPHA;break;case 9:e.srcBlend = n.DST_ALPHA, e.destBlend = n.ONE_MINUS_SRC_ALPHA;break;case 10:e.srcBlend = n.ONE_MINUS_DST_ALPHA, e.destBlend = n.SRC_ALPHA}}, cr.round6dp = function(e) {return Math.round(1e6 * e) / 1e6}, cr.equals_nocase = function(e, t) {return "string" != typeof e || "string" != typeof t ? !1 : e.length !== t.length ? !1 : e === t ? !0 : e.toLowerCase() === t.toLowerCase()}, cr.isCanvasInputEvent = function(e) {var t = e.target;return t ? t === document || t === window ? !0 : document && document.body && t === document.body ? !0 : cr.equals_nocase(t.tagName, "canvas") ? !0 : !1 : !0}
}();

源码

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

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

相关文章:

火柴人大逃亡

欢迎来到程序小院 火柴人大逃亡 玩法&#xff1a;左右两边火柴人&#xff0c;点击左边左边火柴人跳跃&#xff0c;点击右边右边跳跃&#xff0c; 上下快速移动道路&#xff0c;躲过障碍物&#xff0c;看你能坚持多久&#xff0c;快去火柴人大逃亡吧^^。开始游戏https://www.or…...

AI革命新篇章:法国天才团队挑战ChatGPT霸主地位

Mistral AI: Guillaume Lample, Arthur Mensch et Timothe Lacroix. ChatGPT 的霸主地位已被三位来自法国的天才所颠覆&#xff01;如上图这三个人&#xff0c;其中一位曾在 DeepMind 工作&#xff0c;另外两位来自 Meta&#xff0c;他们联手为 AI 领域带来了革命性的变革 我…...

数据双向绑定v-modal

v-model v-model就实现了双向数据绑定&#xff0c;实际上它就是通过Vue提供的事件机制。即在子组件通过$emit()触发一个事件&#xff0c;在父组件使用v-on来监听对应的事件并修改相应的数据。 input的v-model就是通过<input :value"value" input"input"…...

Docker 容器jar 运行报错 at sun.awt.FontConfiguration.getVersion 解决方法

docker jar 运行报错 at sun.awt.FontConfiguration.getVersion 初步判断是在运行 Docker 容器中的 JAR 文件时遇到了与字体配置相关的问题。这个问题可能是由于容器内缺少字体配置或字体文件而引起的。 要解决这个问题&#xff0c;你可以尝试以下方法&#xff1a; 1.安装字…...

光学3D表面轮廓仪服务超精密抛光技术发展

随着技术的不断进步&#xff0c;精密制造领域对材料表面的处理要求越来越高&#xff0c;超精密抛光技术作为当下表面处理的尖端技术&#xff0c;对各种高精密产品的生产起到了至关重要的作用&#xff0c;已广泛应用于集成电路制造、医疗器械、航空航天、3C电子、汽车、精密模具…...

详解C++中auto关键字

auto关键字 auto关键字(C11)类型别名思考auto简介auto的使用细则auto与指针和引用结合起来使用在同一行定义多个变量 auto不能推导的场景1.auto不能作为函数的参数2.auto不能直接用来声明数组 auto关键字(C11) 类型别名思考 随着程序越来越复杂&#xff0c;程序中用到的类型也…...

24.云原生ArgoCD高级之数据加密seale sealed

云原生专栏大纲 文章目录 数据加密之seale sealedBitnami Sealed Secrets介绍Bitnami Sealed Secrets工作流程安装sealed-secrets和kubeseal安装sealed-secrets-controller安装kubeseal通过kubeseal将sealed-secrets公钥拿出来通过kubeseal加密secrets替换kustomize下secret为…...

线性代数:线性方程组

目录 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理...

标准的排序组合-算法

题目 有若干个字母&#xff0c;要求计算出长度为4的所有可能得组合 解题 排序组合最适用的就是回溯了&#xff0c;建议大家本地debug一层一层的看能好理解点 private static void getResult(List<String> source, Stack<String> temp, int curLength, int maxL…...

2402C++,C++递归取各种节点名字

参考 explicit FindNamedClassVisitor(ASTContext *Context) : Context(Context) {}元<类 T>极 动作(T&e){串 ae->getQualifiedNameAsString();d.加(a);中 真;} bool VisitCXXRecordDecl(CXXRecordDecl *e) {中 动作(e);} bool VisitFunctionDecl(FunctionDecl*e…...

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)

1.QSet: toList 中的toList 函数已不存在&#xff0c;遇到xx->toList改成直接用&#xff0c;如下&#xff1a; 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…...

Logstash 7.7.1版本安装系统梳理

前言 上一篇文章介绍了 《ElasticSearch7.7.1集群搭建 & Kibana安装》&#xff0c;今天说一下 Logstash的安卓和配置&#xff1b; Logstash是一个开源的数据收集引擎&#xff0c;具有实时管道功能。它可以动态地将来自不同数据源的数据统一起来&#xff0c;并将数据标准化…...

4. sass实用函数归纳

4. sass实用函数归纳 字符串函数 1、quote(string) 给字符串添加引号 quote(xiaoming) // "xiaoming"2、unquote(string) 移除字符串的引号 unquote("xiaoming") // xiaoming3、str-index(string, substring) 返回 substring 子字符串第一次在 stri…...

《元梦之星》赛季更新带来“新”内容,为何却被玩家集体声讨?

前段时间&#xff0c;《元梦之星》迎来了“山海奇遇”赛季的重磅更新&#xff0c;诸多“新”内容的上线吸引了很多玩家们的关注&#xff0c;然而在新版本开启之后没有多&#xff0c;新玩法新时装甚至是游戏中的新改动都引起了不少玩家的不满。 在新赛季开启之后&#xff0c;玩家…...

故障诊断 | 一文解决,CNN-SVM卷积神经网络-支持向量机组合模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,CNN-SVM卷积神经网络-支持向量机组合模型的故障诊断(Matlab) 模型描述 卷积神经网络(Convolutional Neural Network,CNN)和支持向量机(Support Vector Machine,SVM)是两种常用的机器学习算法,它们在不同领域和任务中都表现出…...

菜鸡后端的前端学习记录-2

前言 记录一下看视频学习前端的的一些笔记&#xff0c;以前对Html、Js、CSS有一定的基础&#xff08;都认得&#xff0c;没用过&#xff09;&#xff0c;现在不想从头再来了&#xff0c;学学Vue框架&#xff0c;不定时更新&#xff0c;指不定什么时候就鸽了。。。。 忘了记一下…...

Layui + Echarts 5.0

Layui 怎么整合最新版本的 Echarts 5.0&#xff0c;Echarts 4 升级到 5后&#xff0c;有了很大改变&#xff0c;新的配置项4是无法兼容的&#xff0c;所以想要使用新的功能&#xff0c;都需要升级&#xff01; 新建一个echarts.js文件 layui.define(function (exports) {// 这…...

linux使用iptables禁用ip

iptables是什么&#xff1f; iptables 是一个强大的开源软件&#xff0c;它是 Linux 系统内核中 netfilter 包过滤框架的一部分&#xff0c;用来实现防火墙功能。iptables 提供了一种灵活的方式来控制和管理进出以及通过 Linux 计算机的网络流量。 前提 我在云服务器上用doc…...

安全防御第五次作业

拓扑图及要求如下&#xff1a; 实验注意点&#xff1a; 先配置双机热备&#xff0c;再来配置安全策略和NAT两台双机热备的防火墙的接口号必须一致双机热备时&#xff0c;请确保vrrp配置的虚拟IP与下面的ip在同一网段如果其中一台防火墙有过配置&#xff0c;最好清空或重启&…...

分库分表原则

分库分表原则 单表数据到达千万级别或者20存储空间 优化已经解决不了问题一 IO瓶颈导致性能问题 拆分策略 垂直分库 以表为依据&#xff0c;根据业务将不同的表拆分到不同库中&#xff0c;有点像微服务 垂直分表 以字段为依据&#xff0c;根据字段属性将不同字段拆分到不同…...

VUE PC端可拖动悬浮按钮

一、实现效果&#xff1a; 二、FloatButton.vue <template><div><div class"sssss"><div class"callback float" mousedown"down" touchstart"down" mousemove"move" touchmove"move" mous…...

opencv0014 索贝尔(sobel)算子

前面学习的滤波器主要是用来模糊图像&#xff0c;今天一起来了解关于边缘识别的滤波吧&#xff01;嘿嘿 边缘 边缘是像素值发生跃迁的位置&#xff0c;是图像的显著特征之一&#xff0c;在图像特征提取&#xff0c;对象检测&#xff0c;模式识别等方面都有重要的作用。 人眼如…...

Redis简介和数据类型

简介 Redis是完全开源&#xff08;BSD许可&#xff09;的内存数据结构存储&#xff0c;是一个高性能的 key-value 数据库&#xff0c;用作数据库、缓存、消息代理和流式处理引擎。 Redis 提供数据结构&#xff0c;例如字符串、哈希、列表、集、带有范围查询的排序集、位图、超…...

Day06-Linux下目录命令讲解及重要文件讲解

Day06-Linux下目录命令讲解及重要文件讲解 1. Linux目录文件1.1 Linux系统目录结构介绍1.1.1 Linux与Windows目录结构对比 1.2 重要的Linux配置文件介绍1.2.1 /etc系统初始化及设置相关重要文件1.2.2 /usr目录的重要知识介绍------应用程序目录1.2.3 /var目录下的路径知识-----…...

睿尔曼超轻量仿人机械臂—外置按钮盒使用说明

睿尔曼RM系列机械臂的控制方式有很多种&#xff0c;包括&#xff1a;示教器、JSON、API等。在此为大家介绍外置按钮盒的使用方法。 按钮盒接线安装 按钮盒外观如下图所示&#xff0c;有&#xff1a;急停、暂停、开始、继续。四个功能按钮。用户可通过这四个按钮来实现对机械臂运…...

PYTHON蓝桥杯——每日一练(简单题)

题目 求123...n的值。 输入格式 输入包括一个整数n。 输出格式 输出一行&#xff0c;包括一个整数&#xff0c;表示123...n的值。 提示 说明&#xff1a;请注意这里的数据规模。 本题直接的想法是直接使用一个循环来累加&#xff0c;然而&#xff0c;当数据规模很大时&…...

【数据结构 01】栈

一、原理 栈通常从数据结构和内存空间两个角度解释&#xff0c;从数据结构的角度&#xff0c;栈是一种线性结构表&#xff0c;只允许在固定的一端进行插入和删除元素&#xff0c;从内存空间角度&#xff0c;操作系统为函数和变量分配的内存空间通常在栈区&#xff0c;但是无论…...

⑩电子产品拆解分析-家用无线遥控开关433Mhz

⑩电子产品拆解分析-家用无线遥控开关433Mhz 一、功能介绍二、电路分析以及器件作用1、433发射控制端2、433接收应答端三、Get到的点一、功能介绍 ①免布线随意贴,装上就能使用解决单线开关烦恼;②遥控配对简单,无线通讯距离长,信号可穿墙;二、电路分析以及器件作用 1、43…...

java之手动创建spring-boot-3项目

手动创建 基于springboot3 正确配置maven的前提下&#xff0c;创建一个空的项目 复制下面的pom文件&#xff0c;使用maven下载依赖即可 前提是maven配置的没问题 pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…...

Linux--redhat9创建软件仓库

1.插入光盘&#xff0c;挂载镜像 模拟插入光盘: 点击:虚拟机-可移动设备-CD/DVD 设备状态全选&#xff0c;使用ISO影响文件选择当前版本镜像&#xff0c;点击确认。 2.输入: df -h 可以显示&#xff0c;默认/dev/sr0文件为光盘文件&#xff0c;挂载点为/run/media/root/镜像…...