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

首頁 > 編程 > HTML > 正文

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

2024-08-26 00:17:21
字體:
來源:轉載
供稿:網友

點評:俄羅斯方塊有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 = “?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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频欧洲视频| 国产精品人成电影| 欧美高清视频一区二区| 亚洲欧美精品一区二区| 美日韩在线视频| 久久精品一区中文字幕| 性欧美暴力猛交69hd| 亚洲福利视频在线| 欧美性xxxxx极品娇小| 日韩国产在线看| www国产亚洲精品久久网站| 亚洲毛片在线观看.| 亚洲天堂网站在线观看视频| 国产成人在线一区| 久久精品国产欧美激情| 欧美激情免费看| 国产欧美一区二区三区在线| 国产精品xxx视频| 国产精品白丝av嫩草影院| 日韩乱码在线视频| 成人动漫网站在线观看| 日韩的一区二区| 亚洲一区二区中文| 久久精品国产亚洲一区二区| 日韩小视频网址| 中文字幕一区二区精品| 国产精品自产拍在线观| 国产精品久久久91| 美日韩精品免费观看视频| 91九色视频在线| 国产精品1区2区在线观看| 亚洲精品wwww| 狠狠久久亚洲欧美专区| 欧美影院在线播放| 91亚洲国产成人精品性色| 亚洲国产精品一区二区三区| 亚洲xxx视频| 欧美日韩国产综合视频在线观看中文| 2021久久精品国产99国产精品| 91九色国产社区在线观看| 国产精品白丝jk喷水视频一区| 亚洲图片在线综合| 中文字幕欧美日韩在线| 国产在线视频一区| 中文字幕欧美专区| 欧美黑人又粗大| 97人人模人人爽人人喊中文字| 成人网在线免费观看| www.欧美三级电影.com| 不卡毛片在线看| 亚洲精品suv精品一区二区| 在线观看免费高清视频97| 久久久伊人欧美| 日韩在线观看免费av| 亚洲人成伊人成综合网久久久| 日韩h在线观看| 国模精品视频一区二区| 日韩激情av在线免费观看| 欧美性色xo影院| 亚洲天堂av在线播放| 国产精品女人网站| 欧美与黑人午夜性猛交久久久| 日本精品一区二区三区在线播放视频| 欧美日韩一区二区精品| 中文字幕亚洲一区| 亚洲精品天天看| 亚洲成人激情图| 久久精品成人一区二区三区| 欧美性猛交xxxx久久久| 最近2019年中文视频免费在线观看| 国产欧美va欧美va香蕉在线| 国产精品欧美日韩一区二区| 久久久久久国产精品三级玉女聊斋| 国产精品久久综合av爱欲tv| 97国产在线视频| 日韩欧美国产骚| 精品久久久香蕉免费精品视频| 欧美午夜美女看片| 狠狠色噜噜狠狠狠狠97| 亚洲香蕉成人av网站在线观看| 国产精品v日韩精品| 欧美做受高潮电影o| 国产在线观看不卡| 日本午夜在线亚洲.国产| 亚洲男人av在线| 国产97在线|日韩| 91中文在线视频| 国产精品丝袜久久久久久不卡| 永久免费看mv网站入口亚洲| 深夜福利日韩在线看| 亚洲精品第一页| 91精品久久久久久久久不口人| 欧美激情一级欧美精品| 国产精品高精视频免费| 精品亚洲一区二区三区在线观看| 最新日韩中文字幕| 精品国产户外野外| 国产亚洲福利一区| 国产精品久久久久久久9999| 成人妇女免费播放久久久| 亚洲欧美在线看| 亚洲国语精品自产拍在线观看| 国产精品久久久久久av下载红粉| 亚洲香蕉伊综合在人在线视看| 成人a级免费视频| 日韩午夜在线视频| 国产精品久久视频| 高跟丝袜欧美一区| 欧美激情精品久久久久| 中文字幕一区二区精品| 色综合久久悠悠| 成人性生交大片免费观看嘿嘿视频| 国产日韩欧美在线看| 日韩精品视频免费在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲天堂av高清| 色樱桃影院亚洲精品影院| 亚洲色图35p| 国产精品av在线播放| 国产精品久久久久久久久久三级| 国产综合在线视频| 国产精品小说在线| 亚洲最大中文字幕| 亚洲激情国产精品| 欧美精品精品精品精品免费| 亚洲高清av在线| 91影视免费在线观看| 精品国内亚洲在观看18黄| 久久精品国产一区| 91成品人片a无限观看| 91wwwcom在线观看| 国产亚洲人成网站在线观看| 久久久亚洲国产天美传媒修理工| 亚洲国产精品嫩草影院久久| 视频直播国产精品| 欧美电影免费看| 国产精品999999| 尤物九九久久国产精品的分类| 国产精品视频男人的天堂| 精品在线欧美视频| 国产经典一区二区| 国产91在线播放九色快色| 国产精品成人va在线观看| 日韩视频中文字幕| 国产成人精品亚洲精品| 欧美激情精品久久久久久变态| 亚洲第一中文字幕| 久久精彩免费视频| 欧美日韩国产麻豆| 日韩av网站大全| 欧美性生交xxxxxdddd| 亚洲欧美综合精品久久成人| 国产精品入口尤物| 国产精品永久免费观看| 国内精品小视频在线观看| 国产一区二区欧美日韩| 欧美成人三级视频网站| 午夜精品国产精品大乳美女| 一区二区欧美在线| 亚洲色图综合久久| 久久久久一本一区二区青青蜜月| 亚洲成人av在线| 亚洲精品视频中文字幕| 色悠悠久久久久|