亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html5記憶翻牌游戲實現思路及代碼

2020-03-24 18:26:08
字體:
來源:轉載
供稿:網友
翻開的2張牌如果配對就會消除,否則2張牌都會返回背面。

需求分析

怎么繪制正的牌面和背的牌面及配對成功后怎么消除牌面
怎么生成牌組并且確定每張牌的位置和對應的圖片

怎么洗牌
怎么記錄牌組的配對信息
怎么確定點擊事件是第一次點擊還是第二次點擊

作弊事件的處理:兩次點擊同一張牌 點擊已經消除的牌面 點擊牌面之外的區域
牌翻開之后需要給一定時間讓玩家看清楚,怎么實現暫停

鼠標點擊事件的響應及獲得鼠標點擊位置的坐標從而確定點擊的是哪一張牌

MYCode:

復制代碼代碼如下:
html xmlns="http://www.w3.org/1999/xhtml"
head
meta charset="utf-8" /
title test /title
script type="text/javascript"
var ctx;
var canvas;
var card;
var first_pick = true; //第一次點擊的標志
var first_card = -1;
var second_card;
var back_color = "rgb(255,0,0)"; //卡片背面顏色
var table_color = "#FFF";
var deck = []; //note
var first_x = 10;
var first_y = 50;
var margin = 30;
var card_width = 50;
var card_height = 50;
var pairs = [
["1_a.jpg", "1_b.jpg"],
["2_a.jpg", "2_b.jpg"],
["3_a.jpg", "3_b.jpg"],
["4_a.jpg", "4_b.jpg"],
["5_a.jpg", "5_b.jpg"]
];
function draw_back()//繪制卡片背面
{
ctx.fillStyle = back_color;
ctx.fillRect(this.sx, this.sy, this.swidth, this.sheight);
}
function Card(sx, sy, swidth, sheight, img, info)//構造函數
{
this.sx = sx;
this.sy = sy;
this.swidth = swidth;
this.sheight = sheight;
this.info = info;
this.img = img;
this.draw = draw_back;
}
function make_deck()//生成卡組并繪制
{
var i;
var a_card;
var b_card;
var a_pic;
var b_pic;
var cx = first_x;
var cy = first_y;
for (i = 0; i pairs.length; i++)
{
a_pic = new Image();
a_pic.src = pairs[i][0];
a_card = new Card(cx, cy, card_width, card_height, a_pic, i);
deck.push(a_card);
b_pic = new Image();
b_pic.src = pairs[i][1];
b_card = new Card(cx, cy + card_height + margin, card_width, card_height, b_pic, i);
deck.push(b_card);
cx = cx + card_width + margin; //note
a_card.draw();
b_card.draw();
}
}
function shuffle()//洗牌
{
var i;
var j;
var temp_info;
var temp_img;
var deck_length = deck.length;
var k;
for (k = 0; k 3 * deck_length; k++)
{
i = Math.floor(Math.random() * deck_length);
j = Math.floor(Math.random() * deck_length);
temp_info = deck[i].info;
temp_img = deck[i].img;
deck[i].info = deck[j].info;
deck[i].img = deck[j].img;
deck[j].info = temp_info;
deck[j].img = temp_img;
}
}
function choose(ev)
{
//var out;
var mx;
var my;
//var pick1;
//var pick2;
var i;
//note
if (ev.layerX || ev.layerX == 0) { // Firefox
mx = ev.layerX;
my = ev.layerY;
} else if (ev.offsetX || ev.offsetX == 0) { // Opera
mx = ev.offsetX;
my = ev.offsetY;
}
for (i = 0; i deck.length; i++)
{
card = deck[i];
if (card.sx = 0)//牌未被消除
{
//判斷點擊的是哪一張牌
if (mx card.sx mx card.sx + card.swidth my card.sy my card.sy + card.sheight)
{
if (i != first_card)//如果兩次點擊同一張牌不做處理
break;
}
}
}
if (i deck.length)
{
if (first_pick)//如果是第一次點擊
{
first_card = i;
first_pick = false; //note
ctx.drawImage(card.img, card.sx, card.sy, card.swidth, card.sheight);
}
else
{
first_pick = true; //note
second_card = i;
ctx.drawImage(card.img, card.sx, card.sy, card.swidth, card.sheight);
tid=setTimeout(flip_back,1000);
}
}
}
function flip_back()
{
if (card.info == deck[first_card].info)//配對成功
{
ctx.fillStyle = table_color;
ctx.fillRect(deck[first_card].sx, deck[first_card].sy, deck[first_card].swidth, deck[first_card].sheight);
ctx.fillRect(deck[second_card].sx, deck[second_card].sy, deck[second_card].swidth, deck[second_card].sheight);
deck[first_card].sx = -1;
deck[second_card].sy = -1;
first_card=-1;
}
else
{
deck[first_card].draw();
deck[second_card].draw();
first_card=-1;
}
}
function init()
{
canvas = document.getElementById('canvas');
canvas.addEventListener('click', choose, false);
ctx = canvas.getContext('2d');
make_deck();
shuffle();
}
/script
/head
body onLoad="init();"
canvas id="canvas" width="400" height="400"/
123142
/body
/html
html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美丝袜一区二区三区| 欧美一级黄色网| 亚洲电影免费观看| 国产999精品| 欧美黑人性猛交| 欧美激情喷水视频| 中文字幕日韩电影| 亚洲图片欧美日产| 超碰91人人草人人干| 国产精品女视频| 亚洲自拍另类欧美丝袜| 色噜噜亚洲精品中文字幕| 日韩人在线观看| 亚洲国产精品va在线看黑人动漫| 国产精品视频区| 国产午夜精品免费一区二区三区| 日本aⅴ大伊香蕉精品视频| 国产精品2018| 亚洲福利视频网| 欧美中文字幕视频| 国产午夜精品一区二区三区| 欧美一级视频在线观看| 人人爽久久涩噜噜噜网站| 亚洲3p在线观看| 国产欧美精品一区二区三区-老狼| 久久久精品在线| 成人欧美一区二区三区黑人孕妇| 中文字幕欧美精品日韩中文字幕| 国产精品igao视频| 性色av一区二区咪爱| 久久精品国产视频| 啪一啪鲁一鲁2019在线视频| 九九久久久久久久久激情| 欧美精品免费在线观看| 国产精品热视频| 日韩在线免费视频| 国产欧美va欧美va香蕉在线| 69精品小视频| 国产欧美一区二区三区久久人妖| 欧美精品午夜视频| 97婷婷大伊香蕉精品视频| 清纯唯美亚洲激情| 亚洲色图在线观看| 国产999视频| 国产一区二区三区视频在线观看| 色综合伊人色综合网| 欧美理论在线观看| 性欧美激情精品| 亚洲电影免费观看高清完整版在线| 久久免费观看视频| 国产精品白嫩美女在线观看| 精品国产欧美一区二区三区成人| 久热爱精品视频线路一| 久久久久亚洲精品| 精品呦交小u女在线| 国产伦精品一区二区三区精品视频| 日本不卡视频在线播放| 欧美性高潮床叫视频| 欧美激情日韩图片| 午夜精品理论片| 欧美日韩成人黄色| 国产经典一区二区| 91av视频导航| 国产精品九九久久久久久久| 亚洲欧洲在线视频| 国产91精品黑色丝袜高跟鞋| 国产专区欧美专区| 久久精品99国产精品酒店日本| 韩国国内大量揄拍精品视频| 免费91麻豆精品国产自产在线观看| 国产香蕉97碰碰久久人人| 91福利视频网| 成人欧美在线视频| 国产欧美日韩视频| 久久男人资源视频| 日本精品中文字幕| 欧美一级高清免费播放| 国产精品美女www| 日本道色综合久久影院| 欧美日韩国产中文字幕| 国内成人精品一区| 久热爱精品视频线路一| 日韩精品免费看| 亲爱的老师9免费观看全集电视剧| 成人疯狂猛交xxx| 91夜夜揉人人捏人人添红杏| 国产裸体写真av一区二区| 久久精品99久久香蕉国产色戒| 九九精品在线视频| 亚洲欧洲国产伦综合| 国产成人精品国内自产拍免费看| 成人黄色片网站| 日本aⅴ大伊香蕉精品视频| 久久久久一本一区二区青青蜜月| 亚洲尤物视频网| 欧美一级电影在线| 亚洲性夜色噜噜噜7777| 久久久电影免费观看完整版| 奇米4444一区二区三区| 精品福利在线看| 日韩av在线免费观看一区| 中文字幕欧美日韩精品| 久久精品视频导航| 欧美视频中文字幕在线| 91九色视频导航| 久久久日本电影| 国产精品视频在线播放| 亚洲区bt下载| 爱福利视频一区| 中文字幕亚洲无线码a| 日韩激情在线视频| 国产精品jizz在线观看麻豆| 国产精品日日摸夜夜添夜夜av| 国产日韩欧美一二三区| 91精品视频在线播放| 亚洲成人在线网| 粗暴蹂躏中文一区二区三区| 亚洲国产精品电影在线观看| 2023亚洲男人天堂| 日产精品99久久久久久| 一区二区三区国产视频| 欧美xxxx做受欧美.88| 久久久久久97| 国产精品视频免费在线| 欧美黑人一级爽快片淫片高清| 国产欧美日韩精品专区| 欧美激情第三页| 热99精品只有里视频精品| 精品亚洲国产成av人片传媒| 宅男66日本亚洲欧美视频| 国产精品免费久久久久久| 91免费在线视频| 亚洲欧美成人一区二区在线电影| 国产成人短视频| 日韩中文综合网| 欧美亚洲成人xxx| 国产日韩精品综合网站| 欧美老女人xx| 亚洲xxxx18| 日韩电影免费在线观看| 国产精品一区二区性色av| 亚洲伊人久久大香线蕉av| 欧洲美女免费图片一区| 日韩国产在线看| 亚洲亚裔videos黑人hd| 国产91精品视频在线观看| 97国产精品视频人人做人人爱| 欧美成aaa人片免费看| 亚洲欧美精品一区二区| 国内免费久久久久久久久久久| 成人xvideos免费视频| 成人黄色网免费| 欧美成aaa人片在线观看蜜臀| 久久91亚洲精品中文字幕奶水| 亚洲区一区二区| 欧美激情精品久久久久久蜜臀| 日韩经典一区二区三区| 欧美日韩成人黄色| 九九精品视频在线观看| 狠狠躁18三区二区一区| 岛国av在线不卡| 日韩精品亚洲元码| 亚洲一区二区三区成人在线视频精品| 欧美性猛交xxxx偷拍洗澡|