麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JavaScript > 正文

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

2020-03-24 17:51:43
字體:
來源:轉載
供稿:網友
游戲實現的基本原理:

游戲區域是限定大小的區域,本游戲的游戲區域有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 rdquo;GameStart() Start /button
button id= Button-Game-End rdquo;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 rdquo;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
html教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄视频网站免费观看 | 国产精品久久久免费观看 | japanese massage tube | 国产精品999在线观看 | 国产三级三级三级三级 | 天天看成人免费毛片视频 | 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 国产一级在线看 | 在线观看国产一区二区 | 成人偷拍片视频在线观看 | 在线播放免费播放av片 | 久久久久性| 日韩精品hd | 国产亚洲精品一区二区三区 | 我爱我色成人网 | 国产91亚洲精品久久久 | 91精品国产91| 欧美激情性色生活片在线观看 | 日韩精品中文字幕在线观看 | 日本教室三级在线看 | 亚洲精品一区二区三区在线看 | 国产精品视频成人 | 国产精品久久久久久模特 | 亚洲精品免费播放 | 美国av片在线观看 | 中国国语毛片免费观看视频 | 狠狠久久 | 成人在线免费观看网址 | 成人精品免费看 | av电影免费播放 | 久久精品亚洲一区二区 | 一级片免费在线 | 日本看片一区二区三区高清 | 久久成人精品视频 | 欧美18一19sex性护士农村 | 久草久视频 | 欧美视频一级 | 在线免费观看毛片视频 | 亚洲欧洲日产v特级毛片 | 国产精品99久久久久久宅女 | 鲁丝片一区二区三区免费入口 |