html5中文学习网

您的位置: 首页 > html5教程 > 入门教程 » 正文

html5记忆翻牌游戏实现思路及代码_html5教程技巧

[ ] 已经帮助:人解决问题
点评:主要功能实现翻开的2张牌如果配对就会消除,否则2张牌都会返回背面,下面为大家介绍一下需求分析及示例代码,感兴趣的朋友可以学习下

e7XHTML5中文学习网 - HTML5先行者学习网

翻开的2张牌如果配对就会消除,否则2张牌都会返回背面。 e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网
需求分析 e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网
怎么绘制正的牌面和背的牌面及配对成功后怎么消除牌面 e7XHTML5中文学习网 - HTML5先行者学习网
怎么生成牌组并且确定每张牌的位置和对应的图片 e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网
怎么洗牌 e7XHTML5中文学习网 - HTML5先行者学习网
怎么记录牌组的配对信息 e7XHTML5中文学习网 - HTML5先行者学习网
怎么确定点击事件是第一次点击还是第二次点击 e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网
作弊事件的处理:两次点击同一张牌 点击已经消除的牌面 点击牌面之外的区域 e7XHTML5中文学习网 - HTML5先行者学习网
牌翻开之后需要给一定时间让玩家看清楚,怎么实现暂停 e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网
鼠标点击事件的响应及获得鼠标点击位置的坐标从而确定点击的是哪一张牌 e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网
MYCode: e7XHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
e7XHTML5中文学习网 - HTML5先行者学习网
<html xmlns="http://www.w3.org/1999/xhtml"> e7XHTML5中文学习网 - HTML5先行者学习网
<head> e7XHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8" /> e7XHTML5中文学习网 - HTML5先行者学习网
<title>test </title> e7XHTML5中文学习网 - HTML5先行者学习网
<script type="text/javascript"> e7XHTML5中文学习网 - HTML5先行者学习网
var ctx; e7XHTML5中文学习网 - HTML5先行者学习网
var canvas; e7XHTML5中文学习网 - HTML5先行者学习网
var card; e7XHTML5中文学习网 - HTML5先行者学习网
var first_pick = true; //第一次点击的标志 e7XHTML5中文学习网 - HTML5先行者学习网
var first_card = -1; e7XHTML5中文学习网 - HTML5先行者学习网
var second_card; e7XHTML5中文学习网 - HTML5先行者学习网
var back_color = "rgb(255,0,0)"; //卡片背面颜色 e7XHTML5中文学习网 - HTML5先行者学习网
var table_color = "#FFF"; e7XHTML5中文学习网 - HTML5先行者学习网
var deck = []; //note e7XHTML5中文学习网 - HTML5先行者学习网
var first_x = 10; e7XHTML5中文学习网 - HTML5先行者学习网
var first_y = 50; e7XHTML5中文学习网 - HTML5先行者学习网
var margin = 30; e7XHTML5中文学习网 - HTML5先行者学习网
var card_width = 50; e7XHTML5中文学习网 - HTML5先行者学习网
var card_height = 50; e7XHTML5中文学习网 - HTML5先行者学习网
var pairs = [ e7XHTML5中文学习网 - HTML5先行者学习网
["1_a.jpg", "1_b.jpg"], e7XHTML5中文学习网 - HTML5先行者学习网
["2_a.jpg", "2_b.jpg"], e7XHTML5中文学习网 - HTML5先行者学习网
["3_a.jpg", "3_b.jpg"], e7XHTML5中文学习网 - HTML5先行者学习网
["4_a.jpg", "4_b.jpg"], e7XHTML5中文学习网 - HTML5先行者学习网
["5_a.jpg", "5_b.jpg"] e7XHTML5中文学习网 - HTML5先行者学习网
]; e7XHTML5中文学习网 - HTML5先行者学习网
function draw_back()//绘制卡片背面 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
ctx.fillStyle = back_color; e7XHTML5中文学习网 - HTML5先行者学习网
ctx.fillRect(this.sx, this.sy, this.swidth, this.sheight); e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
function Card(sx, sy, swidth, sheight, img, info)//构造函数 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
this.sx = sx; e7XHTML5中文学习网 - HTML5先行者学习网
this.sy = sy; e7XHTML5中文学习网 - HTML5先行者学习网
this.swidth = swidth; e7XHTML5中文学习网 - HTML5先行者学习网
this.sheight = sheight; e7XHTML5中文学习网 - HTML5先行者学习网
this.info = info; e7XHTML5中文学习网 - HTML5先行者学习网
this.img = img; e7XHTML5中文学习网 - HTML5先行者学习网
this.draw = draw_back; e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
function make_deck()//生成卡组并绘制 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
var i; e7XHTML5中文学习网 - HTML5先行者学习网
var a_card; e7XHTML5中文学习网 - HTML5先行者学习网
var b_card; e7XHTML5中文学习网 - HTML5先行者学习网
var a_pic; e7XHTML5中文学习网 - HTML5先行者学习网
var b_pic; e7XHTML5中文学习网 - HTML5先行者学习网
var cx = first_x; e7XHTML5中文学习网 - HTML5先行者学习网
var cy = first_y; e7XHTML5中文学习网 - HTML5先行者学习网
for (i = 0; i < pairs.length; i++) e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
a_pic = new Image(); e7XHTML5中文学习网 - HTML5先行者学习网
a_pic.src = pairs[i][0]; e7XHTML5中文学习网 - HTML5先行者学习网
a_card = new Card(cx, cy, card_width, card_height, a_pic, i); e7XHTML5中文学习网 - HTML5先行者学习网
deck.push(a_card); e7XHTML5中文学习网 - HTML5先行者学习网
b_pic = new Image(); e7XHTML5中文学习网 - HTML5先行者学习网
b_pic.src = pairs[i][1]; e7XHTML5中文学习网 - HTML5先行者学习网
b_card = new Card(cx, cy + card_height + margin, card_width, card_height, b_pic, i); e7XHTML5中文学习网 - HTML5先行者学习网
deck.push(b_card); e7XHTML5中文学习网 - HTML5先行者学习网
cx = cx + card_width + margin; //note e7XHTML5中文学习网 - HTML5先行者学习网
a_card.draw(); e7XHTML5中文学习网 - HTML5先行者学习网
b_card.draw(); e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
function shuffle()//洗牌 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
var i; e7XHTML5中文学习网 - HTML5先行者学习网
var j; e7XHTML5中文学习网 - HTML5先行者学习网
var temp_info; e7XHTML5中文学习网 - HTML5先行者学习网
var temp_img; e7XHTML5中文学习网 - HTML5先行者学习网
var deck_length = deck.length; e7XHTML5中文学习网 - HTML5先行者学习网
var k; e7XHTML5中文学习网 - HTML5先行者学习网
for (k = 0; k < 3 * deck_length; k++) e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
i = Math.floor(Math.random() * deck_length); e7XHTML5中文学习网 - HTML5先行者学习网
j = Math.floor(Math.random() * deck_length); e7XHTML5中文学习网 - HTML5先行者学习网
temp_info = deck[i].info; e7XHTML5中文学习网 - HTML5先行者学习网
temp_img = deck[i].img; e7XHTML5中文学习网 - HTML5先行者学习网
deck[i].info = deck[j].info; e7XHTML5中文学习网 - HTML5先行者学习网
deck[i].img = deck[j].img; e7XHTML5中文学习网 - HTML5先行者学习网
deck[j].info = temp_info; e7XHTML5中文学习网 - HTML5先行者学习网
deck[j].img = temp_img; e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
function choose(ev) e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
//var out; e7XHTML5中文学习网 - HTML5先行者学习网
var mx; e7XHTML5中文学习网 - HTML5先行者学习网
var my; e7XHTML5中文学习网 - HTML5先行者学习网
//var pick1; e7XHTML5中文学习网 - HTML5先行者学习网
//var pick2; e7XHTML5中文学习网 - HTML5先行者学习网
var i; e7XHTML5中文学习网 - HTML5先行者学习网
//note e7XHTML5中文学习网 - HTML5先行者学习网
if (ev.layerX || ev.layerX == 0) { // Firefox e7XHTML5中文学习网 - HTML5先行者学习网
mx = ev.layerX; e7XHTML5中文学习网 - HTML5先行者学习网
my = ev.layerY; e7XHTML5中文学习网 - HTML5先行者学习网
} else if (ev.offsetX || ev.offsetX == 0) { // Opera e7XHTML5中文学习网 - HTML5先行者学习网
mx = ev.offsetX; e7XHTML5中文学习网 - HTML5先行者学习网
my = ev.offsetY; e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
for (i = 0; i < deck.length; i++) e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
card = deck[i]; e7XHTML5中文学习网 - HTML5先行者学习网
if (card.sx >= 0)//牌未被消除 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
//判断点击的是哪一张牌 e7XHTML5中文学习网 - HTML5先行者学习网
if (mx > card.sx && mx < card.sx + card.swidth && my > card.sy && my < card.sy + card.sheight) e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
if (i != first_card)//如果两次点击同一张牌不做处理 e7XHTML5中文学习网 - HTML5先行者学习网
break; e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
if (i < deck.length) e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
if (first_pick)//如果是第一次点击 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
first_card = i; e7XHTML5中文学习网 - HTML5先行者学习网
first_pick = false; //note e7XHTML5中文学习网 - HTML5先行者学习网
ctx.drawImage(card.img, card.sx, card.sy, card.swidth, card.sheight); e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
else e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
first_pick = true; //note e7XHTML5中文学习网 - HTML5先行者学习网
second_card = i; e7XHTML5中文学习网 - HTML5先行者学习网
ctx.drawImage(card.img, card.sx, card.sy, card.swidth, card.sheight); e7XHTML5中文学习网 - HTML5先行者学习网
tid=setTimeout(flip_back,1000); e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
function flip_back() e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
if (card.info == deck[first_card].info)//配对成功 e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
ctx.fillStyle = table_color; e7XHTML5中文学习网 - HTML5先行者学习网
ctx.fillRect(deck[first_card].sx, deck[first_card].sy, deck[first_card].swidth, deck[first_card].sheight); e7XHTML5中文学习网 - HTML5先行者学习网
ctx.fillRect(deck[second_card].sx, deck[second_card].sy, deck[second_card].swidth, deck[second_card].sheight); e7XHTML5中文学习网 - HTML5先行者学习网
deck[first_card].sx = -1; e7XHTML5中文学习网 - HTML5先行者学习网
deck[second_card].sy = -1; e7XHTML5中文学习网 - HTML5先行者学习网
first_card=-1; e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
else e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
deck[first_card].draw(); e7XHTML5中文学习网 - HTML5先行者学习网
deck[second_card].draw(); e7XHTML5中文学习网 - HTML5先行者学习网
first_card=-1; e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
function init() e7XHTML5中文学习网 - HTML5先行者学习网
{ e7XHTML5中文学习网 - HTML5先行者学习网
canvas = document.getElementById('canvas'); e7XHTML5中文学习网 - HTML5先行者学习网
canvas.addEventListener('click', choose, false); e7XHTML5中文学习网 - HTML5先行者学习网
ctx = canvas.getContext('2d'); e7XHTML5中文学习网 - HTML5先行者学习网
make_deck(); e7XHTML5中文学习网 - HTML5先行者学习网
shuffle(); e7XHTML5中文学习网 - HTML5先行者学习网
} e7XHTML5中文学习网 - HTML5先行者学习网
</script> e7XHTML5中文学习网 - HTML5先行者学习网
</head> e7XHTML5中文学习网 - HTML5先行者学习网
<body onLoad="init();"> e7XHTML5中文学习网 - HTML5先行者学习网
<canvas id="canvas" width="400" height="400"/> e7XHTML5中文学习网 - HTML5先行者学习网
123142 e7XHTML5中文学习网 - HTML5先行者学习网
</body> e7XHTML5中文学习网 - HTML5先行者学习网
</html> e7XHTML5中文学习网 - HTML5先行者学习网
e7XHTML5中文学习网 - HTML5先行者学习网

e7XHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助