茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    HTML5+JS實現(xiàn)俄羅斯方塊原理及具體步驟
    來源:易賢網 閱讀:1520 次 日期:2016-07-12 13:49:46
    溫馨提示:易賢網小編為您整理了“HTML5+JS實現(xiàn)俄羅斯方塊原理及具體步驟”,方便廣大網友查閱!

    俄羅斯方塊有7個部件,每個部件所占的矩形的個數(shù)和位置不同,所以建立部件類,然后建立數(shù)組儲存7個部件,每個部件包涵數(shù)組儲存該部件所占的矩形的個數(shù)和位置,下面為大家詳細介紹下

    本游戲實現(xiàn)的基本原理:

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

    創(chuàng)建RusBlock類包含相應的數(shù)據(jù)和行為,創(chuàng)建二維數(shù)組aState[21][25]記錄游戲區(qū)域中被標記的矩形。

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

    在游戲循環(huán)函數(shù)中,打印正在下落的部件,和已經固定好的部件,還有下一下落的部件。

    基本知識:

    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類包括的成員解析:

    數(shù)據(jù):

    nCurrentComID:當前下落部件的ID

    aState[21][25]:存儲游戲區(qū)域狀態(tài)的數(shù)組

    CurrentCom:當前下落的部件

    NextCom:下一部件

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

    函數(shù):

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

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

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

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

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

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

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

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

    Disappear():消去一行

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

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

    下載Demo

    更多信息請查看網頁制作

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網