久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5+JS實現俄羅斯方塊原理及具體步驟_html5教程技

HTML5+JS實現俄羅斯方塊原理及具體步驟_html5教程技巧HTML5中文學習網,是中國最大的HTML5中文門戶,為廣大HTML5愛好者提供各種HTML5資料,包括HTML5網站、HTML5資訊、HTML5應用、HTML5游戲、H
點評:俄羅斯方塊有7個部件,每個部件所占的矩形的個數和位置不同,所以建立部件類,然后建立數組儲存7個部件,每個部件包涵數組儲存該部件所占的矩形的個數和位置,下面為大家詳細介紹下
本游戲實現的基本原理:

游戲區域是限定大小的區域,本游戲的游戲區域有21×25個矩形,每個矩形width為10單位,heght為6個單位(canvas 的絕對單位是固定的,非像素)。

創建RusBlock類包含相應的數據和行為,創建二維數組aState[21][25]記錄游戲區域中被標記的矩形。

俄羅斯方塊有7個部件,每個部件所占的矩形的個數和位置不同,所以建立部件類,然后建立數組儲存7個部件,每個部件包涵數組儲存該部件所占的矩形的個數和位置。當下落的部件到底了,就會產生一個新的部件,就部件的被標記的矩形就會賦值給游戲區域的數組。

在游戲循環函數中,打印正在下落的部件,和已經固定好的部件,還有下一下落的部件。

基本知識:

HTML5 CSS JS
本游戲包括三個文件:

RusBlock.html:設定元素
RusBlock.css:設定樣式
RusBlock.js:腳本控制

第一步:界面的設置和素材的準備

RusBlock.html

復制代碼
代碼如下:

<!DOCTYPE html>
<html>
<head>
<title>RusBlock</title>
<link rel=”stylesheet” type=”text/css” href=”RusBlock.css”>
<script type=”text/javascript”>
function ShareGame() {
var URL = “http://share.renren.com/share/buttonshare.do?link=” + document.URL + “&title=RusBlock”;
window.showModalDialog([URL]);
}
</script>
</head>
<body onkeyup=”Action(event)”>
<audio loop=”loop” id=”Background-AudioPlayer” preload=”auto”>
<source src=”audio/background.mp3″ type=”audio/mp3″/>
</audio>
<audio id=”GameOver-AudioPlayer” preload=”auto”>
<source src=”audio/gameover.ogg” type=”audio/ogg”>
</audio>
<audio id=”Score-AudioPlayer” preload=”auto”>
<source src=”audio/score.mp3″ type=”audio/mp3″/>
</audio>
<div id=”Game-Area”>
<div id=”Button-Area”>
<h1 id=”Game-Name”>RusBlock</h1>
<button id=”Button-Game-Start” onclick=”GameStart()”>Start</button>
<button id=”Button-Game-End” onclick=”GameEnd()”>End</button>
<form id=”Form-Game-Level”>
<select id=”Select-Game-Level”>
<option value=”500″ selected=”selected”>Easy</option>
<option value=”300″>Normal</option>
<option value=”200″>Hard</option>
</select>
</form>
<button onclick=”ShareGame()” id=”Button-Game-Share”>分享到人人</button>
</div>
<canvas id=”Game-Canvas”></canvas>
<div id=”Score-Area”>
<h2>Score</h2>
<p id=”Game-Score”>0</p>
</div>
</div>
<script type=”text/javascript” src=”RusBlock.js”></script>
</body>
</html>

第二步:樣式
RosBlock.css

復制代碼
代碼如下:

body {
background-color:gray;
text-align:center;
font-family:’Times New Roman’;
background-image:url(“”);
}
h1#Game-Name {
background-color:white;
width:100%;
font-size:x-large;
}
h2,#Game-Score {
font-size:x-large;
background-color:white;
}
#Game-Area {
position:absolute;
left:10%;
width:80%;
height:99%;
}
canvas#Game-Canvas {
background-color:white;
width:80%;
height:98%;
float:left;
}
#Button-Area ,#Score-Area{
width:10%;
height:100%;
float:left;
}
#Button-Game-Start ,#Button-Game-End,#Button-Game-Share,#Select-Game-Level{
width:100%;
height:10%;
font-size:larger;
border-right-width:3px;
background-color:white;
}
#Select-Game-Level {
width:100%;
height:100%;
font-size:x-large;
border-color:gray;
}

第三步:編寫js代碼

RusBlock.js

Rusblock類包括的成員解析:

數據:

nCurrentComID:當前下落部件的ID

aState[21][25]:存儲游戲區域狀態的數組

CurrentCom:當前下落的部件

NextCom:下一部件

ptIndex:當前下落的部件相對游戲區域的索引

函數:

NewNextCom():產生新的下一部件

NextComToCurrentCom():將下一部件的數據轉移到當前下落的部件上

CanDown():判斷當前部件是否還可以下落

CanNew():判斷是否還可以產生新的部件

Left():當前部件向左移動

Right():當前部件向右移動

Rotate():當前部件順時針旋轉

Acceleratet():當前部件向下加速

Disappear():消去一行

CheckFail():判斷是否游戲失敗

InvalidateRect():刷新當前部件的區域

完成:下載Demo


【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

主站蜘蛛池模板: 欧美久久久久久 | 另类亚洲视频 | 国产一区二区欧美 | 一区二区欧美在线 | 国产在线一区二区三区 | 国产区在线免费观看 | 亚洲综合中文字幕在线观看 | 日本粉嫩一区二区三区视频 | 久久久久久国产 | 精品毛片| 日日操夜夜操天天操 | 亚洲精品国产成人 | 日韩视频国产 | 成人深夜福利 | 国产福利视频在线观看 | 国产精品国产三级国产aⅴ浪潮 | 国产区一区二区三区 | 人碰人操| 91精品久久久久久久99 | 91久久久久久久久久久 | 色www精品视频在线观看 | 精品一区久久 | 一区二区av| av大全在线观看 | 亚洲一区二区三区久久久 | 亚洲国产专区 | 亚洲一区 中文字幕 | 欧美欧美欧美 | 日本不卡一区二区三区在线观看 | 91精品国产综合久久国产大片 | 一区二区三区欧美大片 | 国产探花在线精品一区二区 | 99热热99 | 久久久久国产成人精品亚洲午夜 | 国产成人精品福利 | 国产精品久久午夜夜伦鲁鲁 | 91九色麻豆 | 久久综合888 | 国产精品久久久久久久久污网站 | 欧美一区免费 | 日韩综合在线 |