火柴人大逃亡

欢迎来到程序小院

火柴人大逃亡

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

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

火柴人大逃亡_第1张图片

html


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/

火柴人大逃亡_第2张图片

你可能感兴趣的:(H5小游戏,javascript,开发语言,ecmascript)