• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    HTML5+JS实现俄罗斯方块原理及具体步骤
    本游戏实现的基本原理:

    游戏区域是限定大小的区域,本游戏的游戏区域有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

    上一篇:HTML5样式控制示例代码
    下一篇:html5实现的便签特效(实战分享)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    HTML5+JS实现俄罗斯方块原理及具体步骤 HTML5+JS,实现,俄罗斯,方块,