国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

js面向對象之如何實現拼圖游戲

來源:懂視網 責編:小OO 時間:2020-11-27 19:56:33
文檔

js面向對象之如何實現拼圖游戲

一、html代碼。<;,<。DOCTYPE html>;<;html lang=";en";>;<;head>;<;meta charset=";UTF-8";>;<;title>;拼圖小游戲<;/title>;<;style>;body。二、js代碼;
推薦度:
導讀一、html代碼。<;,<。DOCTYPE html>;<;html lang=";en";>;<;head>;<;meta charset=";UTF-8";>;<;title>;拼圖小游戲<;/title>;<;style>;body。二、js代碼;
這篇文章主要介紹了js面向對象之如何實現拼圖游戲,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、html代碼

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>拼圖小游戲</title>
<style>
body,td { margin:0; padding:0; }
#begin { display:block; margin:20px auto; }
table { margin:80px auto; background:#fff; border:10px solid pink; }
td { width:100px; height:100px; border:1px solid #ccc; cursor:pointer; background:url(img.jpg) no-repeat; }
</style>
<script src="js.js"></script>
<script>
window.onload = function(){
	var thisGame = new PinTuGame('begin');
}
</script>

</head>

<body>
<button id="begin">開始</button>
</body>
</html>

二、js代碼

function PinTuGame(id){
	var that = this;
	this.oBtn = document.getElementById(id);
	this.oTable = document.createElement('table');
	this.oTbody = document.createElement('tbody');
	this.aTd = null;
	this.aTdMsg = [];	//用于存儲每個圖片的信息
	this.num = 0;	//用于判斷拼圖是否完成
	this.oTable.cellSpacing = '0';
	
	this.createElem();	//初始化游戲界面
	this.oBtn.onclick = function(){
	for(var i = 0; i<that.aTd.length; i++){
	that.aTd[i].style.opacity = 1;	
	}
	this.innerHTML = '重新開始';
	that.aTd[that.aTd.length-1].style.opacity = 0;
	
	var iAlpha = 100;
	var sp = -10;
	var timer = setInterval(function(){
	iAlpha += sp;
	that.oTbody.style.opacity = iAlpha / 100;
	
	if(iAlpha <=0) { sp = -sp; that.randomElem();}
	if(iAlpha > 100) {clearInterval(timer) };
 	},15);	
	that.beginGame();	
	}
}

PinTuGame.prototype = {	//初始化游戲界面
	createElem: function(){
	for(var i =0; i<4; i++){
	var oTr = document.createElement('tr');
	for(var j =0; j<4; j++){
	var oTd = document.createElement('td');
	this.num ++;
	var tdMsg = {
	seq: this.num,
	bgPosition: -100*j+'px '+ -100*i+'px' 	
	};	
	this.aTdMsg.push(tdMsg);
	oTr.appendChild(oTd);
	}
	this.oTbody.appendChild(oTr);	
	}	
	this.oTable.appendChild(this.oTbody);
	document.body.appendChild(this.oTable);	
	
	this.aTd = this.oTbody.getElementsByTagName('td');
	for(var i = 0; i<this.aTd.length; i++){
	this.aTd[i].json = this.aTdMsg[i];
	this.aTd[i].style.backgroundPosition = this.aTd[i].json.bgPosition;
	}
	},
	randomElem: function(){ 	//隨機排序圖片
	this.aTdMsg.sort(function (){
	return Math.random()-0.5; 
	});
	for(var i=0;i<this.aTd.length;i++){
	this.aTd[i].json = this.aTdMsg[i];
	this.aTd[i].style.backgroundPosition = this.aTd[i].json.bgPosition;
	}
	},
	beginGame: function(){	//開始游戲
	var that = this;
	var rows = this.oTbody.rows;
	for(var i =0; i<4; i++){
	for(var j =0; j<4; j++){
	rows[i].cells[j].Y = i;
	rows[i].cells[j].X = j;
	
	rows[i].cells[j].onclick = function(){
	var arr = [ //獲取該圖片的上右下左,四個方向的坐標
	[this.Y-1, this.X],
	[this.Y, this.X+1],
	[this.Y+1, this.X],
	[this.Y, this.X-1]	
	];	
	for(var i = 0; i<arr.length; i++){
	if( arr[i][0]<0 || arr[i][1]<0 || arr[i][0]>3 || arr[i][1]>3)continue;
	if( rows[arr[i][0]].cells[ arr[i][1] ].style.opacity == '0' ){
	
	rows[arr[i][0]].cells[ arr[i][1] ].style.opacity = 1;
	this.style.opacity=0;
	
	//與隱藏的td交換json對象
	var thisJson = this.json;
	this.json = rows[arr[i][0]].cells[ arr[i][1]].json; 
	rows[arr[i][0]].cells[arr[i][1]].json = thisJson;	
	
	//與隱藏的td交換bakcground-position
	this.style.backgroundPosition=this.json.bgPosition;
	rows[arr[i][0]].cells[arr[i][1]].style.backgroundPosition=rows[arr[i][0]].cells[arr[i][1]].json.bgPosition;	
	}
	}
	that.checkWin();
	};	
	}	
	}
	},
	checkWin: function(){	//檢測游戲是否完成
	var aJson = [];
	for(var i = 0; i<this.aTd.length; i++){
	aJson.push(this.aTd[i].json.seq);
	}	
	for(var i = 0; i<aJson.length-1; i++){
	if(aJson[i]>aJson[i+1])return;	
	}
	for(var i = 0; i<this.aTd.length; i++){
	this.aTd[i].style.opacity = 1;	
	}
	alert('恭喜,勝利啦!');
	location.reload(); 
	}	
}

二、游戲圖片素材


聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

js面向對象之如何實現拼圖游戲

一、html代碼。<;,<。DOCTYPE html>;<;html lang=";en";>;<;head>;<;meta charset=";UTF-8";>;<;title>;拼圖小游戲<;/title>;<;style>;body。二、js代碼;
推薦度:
標簽: 實現 js 對象
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 九九九九热精品免费视频 | 国产成人久久久精品一区二区三区 | 91精品久久久久久久久久 | 国产综合社区 | 国内精品视频在线观看 | 日韩电影精品 | 亚洲图片在线观看 | 国产欧美日本亚洲精品五区 | 国产精选免费视频 | 欧美日韩性视频一区二区三区 | 国产高清不卡一区二区 | 国产精品视频福利一区二区 | 亚洲va欧美ⅴa国产va影院 | 欧美一区二区精品 | 全免费a级毛片免费毛视频 热re91久久精品国产91热 | 好看的电影网站亚洲一区 | 中文国产成人精品久久一区 | 伊人婷婷色| 97成人资源 | 亚洲视频免费在线观看 | 欧美高清免费 | 久久婷婷色一区二区三区 | 多人伦精品一区二区三区视频 | 一区二区精品视频 | 日韩高清欧美 | 一边摸一边爽一边叫床免费视频 | 黄毛片| 国产视频一 | 久久精品国产精品亚洲毛片 | 国产精品福利久久久久久小说 | 成人无码一区二区片 | 国产精品亚洲综合 | 国产日韩欧美视频 | 可以看的毛片网站 | 国产香蕉视频 | 国产日韩欧美高清 | 亚洲色图欧美在线 | 在线视频一二三区2021不卡 | 亚洲欧洲日韩国产 | 日韩精品一区二区三区 在线观看 | 亚洲国产精品成人综合久久久 |