js实现斗地主纸牌扑克小游戏代码
代码语言:html
所属分类:游戏
代码描述:js实现斗地主纸牌扑克小游戏代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>开心斗地主 </title>
<style>
body {
padding: 0;
margin: 0;
height: 100%;
background-color: #eee;
font-size: 12px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-text-size-adjust: none;
}
#main {
margin: 0 auto;
width: 1008px;
}
#textContainer {
margin: 0 auto;
font: 24px arial, verdana;
font-weight: bold;
color: #333;
position: absolute;
top: 200px;
left: 450px;
text-align: center;
text-shadow: 0 2px 2px #ccc;
}
</style>
<script type="text/javascript" >
var casual = {};
casual.trace = function () {
for (var c = [], a = 0; a < arguments.length; a++) c.push(arguments[a]);
typeof console != "undefined" && typeof console.log == "function" && console.log(c.join(" "))
};
casual.inherit = function (c, a) {
var b = function () { };
b.prototype = a.prototype;
c.superClass = a.prototype;
c.prototype = new b;
c.prototype.constructor = c
};
casual.delegate = function (c, a) {
var b = a || window;
if (arguments.length > 2) {
var d = Array.prototype.slice.call(arguments, 2);
return function () {
var e = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(e, d);
return c.apply(b, e)
}
} else return function () {
return c.apply(b, arguments)
}
};
casual.copy = function (c, a, b) {
if (typeof c !== "object") return c;
var d = c.valueOf();
if (c != d) return new c.constructor(d);
if (c instanceof c.constructor && c.constructor !== Object) {
d = a ? new a : casual.clone(c.constructor.prototype);
for (var e in c) if (a || c.hasOwnProperty(e)) d[e] = c[e]
} else {
d = {};
for (e in c) d[e] = c[e]
}
if (b) for (e in b) d[e] = b[e];
return d
};
casual.clone = function (c) {
casual.__cloneFunc.prototype = c;
return new casual.__cloneFunc
};
casual.__cloneFunc = function () { }; (function () {
var c = function (a, b, d, e, f, g) {
this.a = a != undefined ? a : 1;
this.b = b != undefined ? b : 0;
this.c = d != undefined ? d : 0;
this.d = e != undefined ? e : 1;
this.tx = f != undefined ? f : 0;
this.ty = g != undefined ? g : 0
};
casual.Matrix = c;
c.prototype.concat = function (a) {
var b = this.a,
d = this.c,
e = this.tx;
this.a = b * a.a + this.b * a.c;
this.b = b * a.b + this.b * a.d;
this.c = d * a.a + this.d * a.c;
this.d = d * a.b + this.d * a.d;
this.tx = e * a.a + this.ty * a.c + a.tx;
this.ty = e * a.b + this.ty * a.d + a.ty
};
c.prototype.concatTransform = function (a, b, d, e, f, g, h) {
var i = 1,
j = 0;
if (f % 360) {
f = f * Math.PI / 180;
i = Math.cos(f);
j = Math.sin(f)
}
if (g != 0) this.tx -= g;
if (h != 0) this.ty -= h;
this.concat(new c(i * d, j * d, -j * e, i * e, a, b))
};
c.prototype.rotate = function (a) {
var b = Math.cos(a);
a = Math.sin(a);
var d = this.a,
e = this.c,
f = this.tx;
this.a = d * b - this.b * a;
this.b = d * a + this.b * b;
this.c = e * b - this.d * a;
this.d = e * a + this.d * b;
this.tx = f * b - this.ty * a;
this.ty = f * a + this.ty * b
};
c.prototype.scale = function (a, b) {
this.a *= a;
this.d *= b;
this.tx *= a;
this.ty *= b
};
c.prototype.translate = function (a, b) {
this.tx += a;
this.ty += b
};
c.prototype.identity = function () {
this.a = this.d = 1;
this.b = this.c = this.tx = this.ty = 0
};
c.prototype.invert = function () {
var a = this.a,
b = this.b,
d = this.c,
e = this.d,
f = this.tx,
g = a * e - b * d;
this.a = e / g;
this.b = -b / g;
this.c = -d / g;
this.d = a / g;
this.tx = (d * this.ty - e * f) / g;
this.ty = -(a * this.ty - b * f) / g
};
c.prototype.clone = function () {
return new c(this.a, this.b, this.c, this.d, this.tx, this.ty)
};
c.prototype.toString = function () {
return "(a=" + this.a + ", b=" + this.b + ", c=" + this.c + ", d=" + this.d + ", tx=" + this.tx + ", ty=" + this.ty + ")"
}
})(); (function () {
var c = function (a, b, d, e) {
this.x = a != undefined ? a : 0;
this.y = b != undefined ? b : 0;
this.width = d != undefined ? d : 0;
this.height = e != undefined ? e : 0
};
casual.Rectangle = c;
c.prototype.intersects = function (a) {
return this.x <= a.x + a.width && a.x <= this.x + this.width && this.y <= a.y + a.height && a.y <= this.y + this.height
};
c.prototype.intersection = function (a) {
var b = Math.max(this.x, a.x),
d = Math.min(this.x + this.width, a.x + a.width);
if (b <= d) {
var e = Math.max(this.y, a.y);
a = Math.min(this.y + this.height, a.y + a.height);
if (e <= a) return new c(b, e, d - b, a - e)
}
return null
};
c.prototype.containsPoint = function (a, b) {
return this.x <= a && a <= this.x + this.width && this.y <= b && b <= this.y + this.height
};
c.prototype.clone = function () {
return new c(this.x, this.y, this.width, this.height)
};
c.prototype.toString = function () {
return "(x=" + this.x + ", y=" + this.y + ", width=" + this.width + ", height=" + this.height + ")"
}
})(); (function () {
var c = {
_counter: 0
};
casual.NameUtil = c;
c.getUID = function () {
return c._counter++
};
c.createUniqueName = function (a) {
var b = a.charCodeAt(a.length - 1);
if (b >= 48 && b <= 57) a += "_";
return a + c.getUID()
};
c.displayObjectToString = function (a) {
var b;
for (a = a; a != null; a = a.parent) {
var d = a.id != null ? a.id : a.name;
b = b == null ? d : d + "." + b;
if (a == a.parent || a.parent instanceof Stage) break
}
return b
}
})(); (function () {
var c = function (a, b, d) {
this.type = a;
this.params = this.currentTarget = this.target = null;
this.bubbles = b != undefined ? b : false;
this.cancelable = d != undefined ? d : false
};
casual.EventBase = c;
c.prototype.stopPropagation = function () { };
c.prototype.preventDefault = function () { };
c.prototype.clone = function () {
return casual.copy(this)
};
c.prototype.dispose = function () {
delete this.type;
delete this.target;
delete this.currentTarget;
delete this.params
};
c.prototype.toString = function () {
return "[EventBase type=" + this.type + "]"
}
})(); (function () {
var c = function (a, b, d) {
casual.EventBase.call(this, a, b, d);
this.mouseY = this.mouseX = 0
};
casual.inherit(c, casual.EventBase);
casual.StageEvent = c;
c.ENTER_FRAME = "enterframe";
c.MOUSE_DOWN = "mousedown";
c.MOUSE_UP = "mouseup";
c.MOUSE_MOVE = "mousemove";
c.MOUSE_OVER = "mouseover";
c.MOUSE_OUT = "mouseout";
c.supportTouch = function () {
return typeof Touch == "object"
};
c.prototype.toString = function () {
return "[StageEvent type=" + this.type + ", mouseX=" + this.mouseX + ", mouseY=" + this.mouseY + "]"
}
})(); (function () {
var c = function () { };
casual.EventManager = c;
c._maps = {};
c._sources = {};
c._listeners = {};
c._counter = 1;
c.addEventListener = function (a, b, d) {
var e = c._maps[b];
if (e == undefined) e = c._maps[b] = {};
var f = c._sources[a];
if (f == undefined) f = c._sources[a] = c._counter++;
if (e[f] == undefined) e[f] = {};
e = e[f];
a = c._listeners[d];
if (a == undefined) a = c._listeners[d] = c._counter++;
if (!(a in e)) {
e = e[a] = {};
e.type = b;
e.src = f;
e.listener = d;
return true
}
return false
};
c.removeEventListener = function (a, b, d) {
var e = c._maps[b];
if (e == undefined) return false;
var f = c._sources[a];
if (f == undefined) return false;
e = e[f];
if (e == undefined) return false;
var g = true,
h;
for (h in e) if (c._listeners[d] == h) {
delete c._listeners[d];
delete e[h]
} else g = false;
if (g) {
delete c._maps[b][f];
delete c._sources[a]
}
return true
};
c.removeEventListenerByType = function (a, b) {
var d = c._maps[b];
if (d == undefined) return false;
var e = c._sources[a];
if (e == undefined) return false;
d != undefined && delete d[e];
e = true;
for (var f in d) {
e = false;
break
}
e && delete c._maps[b];
return true
};
c.removeAllEventListeners = function (a) {
if (c._sources[a] == undefined) return false;
for (var b in c._maps) {
var d = c._maps[b];
d[scrid] != undefined && delete d[scrid]
}
delete c._sources[a]
};
c.dispatchEvent = function (a, b) {
var d = c._maps[b.type];
if (d == undefined) return false;
var e = c._sources[a];
if (e == undefined) return false;
d = d[e];
if (d == undefined) return false;
if (!b.target) b.target = a;
for (var f in d) {
e = d[f].listener;
typeof e == "function" && e.call(a, b)
}
return true
};
c.hasEventListener = function (a, b) {
var d = c._maps[b];
if (d == undefined) return false;
var e = c._sources[a];
if (e == undefined) return false;
return d[e] != undefined
}
})(); (function () {
var c = function () { };
casual.EventDispatcher = c;
c.prototype.addEventListener = function (a, b) {
casual.EventManager.addEventListener(this, a, b)
};
c.prototype.removeEventListener = function (a, b) {
casual.EventManager.removeEventListener(this, a, b)
};
c.prototype.removeEventListenerByType = function (a) {
casual.EventManager.removeEventListenerByType(this, a)
};
c.prototype.removeAllEventListeners = function () {
casual.EventManager.removeAllEventListeners(this)
};
c.prototype.dispatchEvent = function (a) {
casual.EventManager.dispatchEvent(this, a)
};
c.prototype.hasEventListener = function (a) {
return casual.EventManager.hasEventListener(this, a)
}
})(); (function () {
var c = function () {
casual.EventDispatcher.call(this);
this.name = NameUtil.createUniqueName("DisplayObject");
this.id = null;
this.height = this.width = this.y = this.x = 0;
this.scaleY = this.scaleX = this.alpha = 1;
this.regY = this.regX = this.rotation = 0;
this.mouseEnabled = this.visible = true;
this.useHandCursor = false;
this.stage = this.parent = null
};
casual.inherit(c, casual.EventDispatcher);
casual.DisplayObject = c;
var a = document.createElement("canvas");
a.width = a.height = 1;
c.__hitTestContext = a.getContext("2d");
c.__hitTestTolerance = 100;
c.prototype.getCurrentWidth = function () {
return Math.abs(this.width * this.scaleX)
};
c.prototype.getCurrentHeight = function () {
return Math.abs(this.height * this.scaleY)
};
c.prototype.getStage = function () {
if (this.stage) return this.stage;
for (var b = this; b.parent;) b = b.parent;
if (b instanceof casual.Stage) return this.stage = b;
return null
};
c.prototype.localToGlobal = function (b, d) {
var e = this.getConcatenatedMatrix();
if (e == null) return {
x: 0,
y: 0
};
var f = new casual.Matrix(1, 0, 0, 1, b, d);
f.concat(e);
return {
x: f.tx,
y: f.ty
}
};
c.prototype.globalToLocal = function (b, d) {
var e = this.getConcatenatedMatrix();
if (e == null) return {
x: 0,
y: 0
};
e.invert();
var f = new casual.Matrix(1, 0, 0, 1, b, d);
f.concat(e);
return {
x: f.tx,
y: f.ty
}
};
c.prototype.localToTarget = function (b, d, e) {
b = this.localToGlobal(b, d);
return e.globalToLocal(b.x, b.y)
};
c.prototype.getConcatenatedMatrix = function () {
for (var b = new casual.Matrix,
d = this; d != null; d = d.parent) {
b.concatTransform(d.x, d.y, d.scaleX, d.scaleY, d.rotation, d.regX, d.regY);
if (d instanceof casual.Stage) break
}
return b
};
c.prototype._transform = function (b, d) {
if (d) {
var e = this.localToGlobal(0, 0);
if (e.x != 0 || e.y != 0) b.translate(e.x, e.y)
} else b.translate(this.x, this.y);
this.rotation % 360 > 0 && b.rotate(this.rotation % 360 / 180 * Math.PI);
if (this.scaleX != 1 || this.scaleY != 1) b.scale(this.scaleX, this.scaleY);
d || b.translate(-this.regX, -this.regY);
b.globalAlpha *= this.alpha
};
c.prototype._render = function (b, d, e) {
if (!(!this.visible || this.alpha <= 0)) {
b.save();
d || this._transform(b, e);
this.render(b);
b.restore()
}
};
c.prototype.render = function () { };
c.prototype.hitTestPoint = function (b, d, e, f) {
if (!e) {
f = this.globalToLocal(b, d);
return f.x >= 0 && f.x <= this.getCurrentWidth() && f.y >= 0 && f.y <= this.getCurrentHeight()
}
e = c.__hitTestContext;
e.setTransform(1, 0, 0, 1, -b, -d);
this._render(e, false, true);
f = f || c.__hitTestTolerance;
b = false;
try {
if (e.getImageData(0, 0, 1, 1).data[3] >= f) b = true
} catch (g) {
trace("hitTestPoint:", this, g)
}
e.canvas.width = 0;
e.canvas.width = 1;
return b
};
c.prototype.hitTestObject = function (b, d, e) {
var f = this.getRect(this.getStage()),
g = b.getRect(this.getStage());
if (!d) return f.intersects(g);
f = f.intersection(g);
e = e || c.__hitTestTolerance;
if (f && f.width > 0 && f.height > 0) {
d = false;
try {
var h = c.__hitTestContext;
h.canvas.width = f.width;
h.canvas.height = f.height;
h.setTransform(1, 0, 0, 1, -f.x, -f.y);
this._render(h, false, true);
var i = h.getImageData(0, 0, f.width, f.height).data;
h.canvas.width = 0;
h.canvas.width = f.width;
h.setTransform(1, 0, 0, 1, -f.x, -f.y);
b._render(h, false, true);
var j = h.getImageData(0, 0, f.width, f.height).data;
for (b = 0; b < i.length;) {
if ((i[b] > 0 || i[b + 1] > 0 || i[b + 2] > 0 || i[b + 3] >= e) && (j[b] > 0 || j[b + 1] > 0 || j[b + 2] > 0 || j[b + 3] >= e)) {
d = true;
break
}
b += 4
}
} catch (k) { }
h.canvas.width = 0;
h.canvas.width = h.canvas.height = 1;
return d
}
return false
};
c.prototype.getRect = function (b) {
b = this.localToTarget(0, 0, b);
return new Rectangle(b.x, b.y, this.getCurrentWidth(), this.getCurrentHeight())
};
c.prototype.onMouseEvent = null;
c.prototype.toString = function () {
return NameUtil.displayObjectToString(this)
}
})(); (function () {
var c = function () {
casual.DisplayObject.call(this);
this.children = [];
this.mouseChildren = true
};
casual.inherit(c, casual.DisplayObject);
casual.DisplayObjectContainer = c;
c.prototype.addChild = function (a) {
if (this.getChildIndex(a) != -1) {
a.parent = this;
return a
}
a.parent && a.parent.removeChild(a);
this.children[this.children.length] = a;
a.parent = this;
return a
};
c.prototype.addChildAt = function (a, b) {
if (this.getChildIndex(a) != -1) {
a.parent = this;
return a
}
a.parent && a.parent.removeChild(a);
this.children.splice(b, 0, a);
a.parent = thi.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0