欢迎来到程序小院
玩法:左右两边火柴人,点击左边左边火柴人跳跃,点击右边右边跳跃,
上下快速移动道路,躲过障碍物,看你能坚持多久,快去火柴人大逃亡吧^^。
开始游戏https://www.ormcc.com/play/gameStart/266
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;
}
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/