HTML5 메모리 플립 게임 구현 아이디어 및 code_html5 튜토리얼 기술
뒤집힌 2장의 카드가 일치하면 제거되고, 일치하지 않을 경우 2장의 카드는 뒷면으로 반환됩니다.
요구사항 분석
앞면과 뒷면 카드 뽑는 방법 및 매칭 성공 후 카드 제거 방법
덱 생성 방법 및 각 카드 결정 방법 카드의 위치와 해당 그림
카드 섞는 방법
덱의 페어링 정보 기록 방법
클릭 이벤트가 첫 번째 클릭인지 두 번째 클릭인지 확인하는 방법
치팅 이벤트 처리: 동일한 카드를 두 번 클릭합니다. 카드 바깥쪽 영역을 클릭합니다.
카드를 뒤집은 후 일정 시간을 기다려야 합니다. 플레이어가 일시 정지를 달성하는 방법
마우스 클릭 이벤트에 응답하고 마우스 클릭 위치의 좌표를 얻어 어떤 카드가 클릭되었는지 확인
MYCode:
;
<제목>테스트
var ctx;
var 카드; var first_pick = true; //첫 번째 클릭의 부호
var second_card
var back_color = "rgb(255,0,0)"; 카드 뒷면
var table_color = "#FFF";
var Deck = []; //참고
var first_x =
var first_y = 50; 30;
var 카드 너비 = 50;
var 카드 높이 = 50;
var 쌍 = [
["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.sheight =
this.img = img; 🎜>this.draw = draw_back ;
}
function make_deck()//덱 생성 및 그리기
{
var i
var a_card
var a_pic;
var b_pic;
var cx = first_x;
var cy = first_y
for (i = 0; i < pair.length; i )
🎜>a_pic = new Image() ;
a_pic.src = pair[i][0];
a_card = new Card(cx, cy, 카드_폭, 카드_높이, a_pic, i); push(a_card);
b_pic = new Image();
b_pic.src = pair[i][1]
b_card = new Card(cx, cy 카드 높이 margin, 카드 너비, 카드 높이, b_pic, i);
deck.push(b_card);
cx 카드 너비 마진; //참고
a_card.draw()
}
함수 shuffle() //셔플
{
var i;
var j
var temp_img;
var Deck_length; 🎜>var k;
for (k = 0; k < 3 * 데크_길이; k )
{
i = Math.floor(Math.random() * 데크_길이)
j = Math.floor(Math.random () * 데크_길이);
temp_info = 데크[i].info;
temp_img = 데크[i].img
데크[i].info = 데크[j ].info;
데크[i].img = 데크[j].img;
deck[j].info = temp_info;
deck[j].img = temp_img; 🎜>}
function choose(ev)
{
//var out
var mx
var my
//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) { // 오페라
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
if (i != first_card)//동일한 카드를 두 번 클릭하면 처리되지 않습니다.
break
}
}
}
if ( i
{
if (first_pick)//첫 번째 클릭인 경우
{
first_card = i
first_pick = false; ctx.drawImage(카드 .img, 카드.sx, 카드.sy, 카드.swidth, 카드.sheight)
}
else
{
first_pick = //참고
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(데크[first_card].sx, 데크[first_card].sy, 데크[first_card].swidth, 데크[first_card].sheight)
ctx.fillRect(deck[second_card].sx , 데크[second_card] .sy, 데크[second_card].swidth,
deck[first_card].sx =
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');
shuffle()
}
>
123142
< /html>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









HTML의 테이블 테두리 안내. 여기에서는 HTML의 테이블 테두리 예제를 사용하여 테이블 테두리를 정의하는 여러 가지 방법을 논의합니다.

HTML의 Nested Table에 대한 안내입니다. 여기에서는 각 예와 함께 테이블 내에 테이블을 만드는 방법을 설명합니다.

HTML 여백-왼쪽 안내. 여기에서는 HTML margin-left에 대한 간략한 개요와 코드 구현과 함께 예제를 논의합니다.

HTML 테이블 레이아웃 안내. 여기에서는 HTML 테이블 레이아웃의 값에 대해 예제 및 출력 n 세부 사항과 함께 논의합니다.

HTML 순서 목록에 대한 안내입니다. 여기서는 HTML Ordered 목록 및 유형에 대한 소개와 각각의 예에 대해서도 설명합니다.

HTML 입력 자리 표시자 안내. 여기서는 코드 및 출력과 함께 HTML 입력 자리 표시자의 예를 논의합니다.

HTML에서 텍스트 이동 안내. 여기서는 Marquee 태그가 구문과 함께 작동하는 방식과 구현할 예제에 대해 소개합니다.

HTML onclick 버튼에 대한 안내입니다. 여기에서는 각각의 소개, 작업, 예제 및 다양한 이벤트의 onclick 이벤트에 대해 설명합니다.
