不点白块游戏

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
    <style>
    *{
      margin: 0;
      padding: 0;
    }
    .box {
      margin: 50px auto 0 auto;
      width: 400px;
      height: auto;
      border: solid 1px #222;
    }
    #cont {
      width: 400px;
      height: 600px;
      position: relative;
      overflow: hidden;
      }
    #go {
      width: 100%;
      height: 600px;
      position: absolute;
      top: 0;
      font: 700 60px ‘微软雅黑‘;
      text-align: center;
      z-index: 99;
    }
    #go span {
      cursor: pointer;
      background-color: #fff;
      border-bottom: solid 1px #222;
    }
    #main {
      width: 400px;
      height: 600px;
      position: relative;
      top: -150px;
    }
    .row {
      width: 400px;
      height: 150px;
    }
    .row div {
      width: 99px;
      height: 149px;
      border: solid 1px #222;
      float: left;
      border-top-width: 0;
      border-left-width: 0;
      cursor: pointer;
    }
    #count {
      border-top: solid 1px #222;
      width: 400px;
      height: 50px;
      font: 700 36px/50px ‘微软雅黑‘;
      text-align: center;
    }
    #bgm{
      width: 400px;
      height: 50px;
      margin-top: -50px;
      position: absolute;
    }
    h3{text-align:center}
      </style>
 </head>
 <body>
 <h3>只要不是白块,一个个点吧</h3>
    <div class="box">

      <!-- 布局 -->
      <audio src="m_02.mp3" id="bgm" controls loop></audio>
      <div id="cont">
        <div id="go">
          <span>Game start</span>
        </div>
          <div id="main"></div>
      </div>
          <div id="count"></div>
    </div> 

  <script>
  //得当前样式
    function getStyle(obj,arrt){
  //兼容IE
      return obj.currentStyle ? obj.currentStyle[arrt] : getComputedStyle(obj,null)[arrt];
  }

  var main = document.getElementById(‘main‘);
  var go = document.getElementById(‘go‘);
  var count = document.getElementById(‘count‘);
  var cols = [‘#1AAB8A‘,‘#E15650‘,‘#121B39‘,‘#80A84E‘];

  //动态创建div
    function cDiv(classname){
  //创建div
      var oDiv = document.createElement(‘div‘);
  //随机值
      var index = Math.floor(Math.random()*4);
  //行 添加相应的class类
      oDiv.className = classname;
  //创建行之后再动态创建4个小div并添加到行里面
        for(var j =0;j<4;j++){
          var iDiv = document.createElement(‘div‘);
          oDiv.appendChild(iDiv);
        }
  //然后把行添加到main里面
  //判断需要添加的位置
        if(main.children.length == 0){
          main.appendChild(oDiv);
        }else {
          main.insertBefore(oDiv, main.children[0]);
        }
  //随机给行里面的某一个div添加背景色
    oDiv.children[index].style.backgroundColor = cols[index];
  //标记颜色盒子
    oDiv.children[index].className = "i";
  }

  //移动div
  function move(obj){
  //关闭上一个定时器
      clearInterval(obj.timer);
  //默认速度与计分
      var speed = 5,num = 0;
  //定时器管理与开启定时器
      obj.timer = setInterval(function(){
  //速度
      var step = parseInt(getStyle(obj,‘top‘)) + speed;
  //移动盒子
      obj.style.top = step + ‘px‘;
  //判断并创建新的盒子
        if(parseInt(getStyle(obj,‘top‘)) >= 0){
          cDiv(‘row‘);
          obj.style.top = -150 + ‘px‘;
        }
  //删除边界外的盒子
        if(obj.children.length == 6){
  //删除前,如果有盒子没有点击则结束游戏
          for(var i = 0;i<4;i++){
            if(obj.children[obj.children.length - 1].children[i].className == ‘i‘){
  //游戏结束
              obj.style.top = ‘-150px‘;
              count.innerHTML = ‘游戏结束,最高得分: ‘ + num;
  //关闭定时器
              clearInterval(obj.timer);
  //显示开始游戏
              go.children[0].innerHTML = ‘Renew game‘;
              go.style.display = "block";
            }
          }
          obj.removeChild(obj.children[obj.children.length - 1]);
        }

  //点击与计分
  obj.onmousedown = function(event){
  //点击的不是白盒子
  // 兼容IE
      event = event || window.event;
      if((event.target? event.target : event.srcElement).className  == ‘i‘){
  //点击后的盒子颜色
        (event.target? event.target : event.srcElement).style.backgroundColor = "#bbb";
  //清除盒子标记
        (event.target? event.target : event.srcElement).className             = ‘‘;
  //计分
        num++;
  //显示得分
        count.innerHTML = ‘当前得分: ‘ + num;
        bgm.play();
        }
        else{
  //游戏结束
          obj.style.top = 0;
          count.innerHTML = ‘游戏结束,最高得分: ‘ + num;
  //关闭定时器
          clearInterval(obj.timer);
  //显示开始游戏
          go.children[0].innerHTML = ‘Renew game‘;
          go.style.display = "block";
        }
  //盒子加速
      if(num%10 == 0){
        speed++;
      }
    }
  //松开触发停止
    obj.onmouseup=function(event){
      bgm.pause();
    }
  },20)
    }

  //开始游戏
  go.children[0].onclick = function(){
  //开始前判断main里面是否有盒子,有则全部删除
    if(main.children.length){
  //暴力清楚main里面所有盒子
        main.innerHTML = ‘‘;
      }
  //清空计分
    count.innerHTML = ‘游戏开始‘;
  //隐藏开始盒子
    this.parentNode.style.display = "none";
  //调用定时器
    move(main);
  }
  </script>
  <div style="text-align:center;">
</div>
</body>
</html>    

时间: 2024-10-10 16:50:43

不点白块游戏的相关文章

自学easeljs 根据别踩白块游戏规则自己写的代码

主要基于       -------easeljs-0.7.1.min.js-----   去制作这个游戏 思路:主要思路是以行为单位 绑定可点击行 选中则讲 移动最外层容器继续绑定可点击行的下一行 否则结束游戏 HTML页面布局 <script src="js/easeljs-0.7.1.min.js"></script> <script src="easeljs/drawZfx.js"></script> <

jquery之别踩白块游戏的实现

转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5687112.html 前端学习要告一段落了,也没机会写什么像样的东西,然后无意中想起某人以前给我玩了一下别踩白块的游戏,手残还被嘲讽了下,现在想起来觉得这游戏实现起来也不难,于是上星期用jquery写了一个别踩白块的小游戏,就像当初学python的时候一样写了一个2048.然后今天正好抽个时间写个博客纪录下,算是对前一段时间学习的总结,没有玩过的可以去下一个原版的来玩一下,游戏很简单,就是从不断下落的方块中点击黑

C++用EGE简单实现别踩白块游戏

本项目已开源:https://github.com/wmpscc/AvoidBlank 关于EGE 介绍:EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在. 详情见EGE官网 下载:官网提供的下载地址 安装方法一 简单示例 #include <graphics.h> int main() { //初始化为640*480大小 initgraph(6

2cocos2dx别踩白块游戏案例

 1 建立一个别踩白块的项目dtwb(Don'ttouch white block) 2 修改main.cpp中的代码 3 修改AppDelegate.cpp中的代码 4 案例代码 Block.h #ifndef __BLOCK_H__ #define __BLOCK_H__ #include "cocos2d.h" USING_NS_CC; class Block :public CCSprite { public: //分別表示块大小,块颜色,块中的字符串,字的大小,颜色 st

Cocos2dx学习之-----别踩白块V1.0

学了点COCOS2DX,一直感觉也没什么大意思,所以就找个教程做个小游戏出来,反正国庆在校也没啥事,自娱自乐. PS:我用的版本是cocos2dx3.2 一.创建项目 cocos new -p com.donttouchwhiteblock.xuran -l cpp -d . 二.创建block类 因为别猜白块里面最重要的一个元素就是"块",所以我们要为这个元素创建一个类,然后实例化一些方法,以便完成游戏中的诸多行为 首先是gameblock.h文件 #pragma once #inc

小游戏--别踩白块

有图有真相,先上图再说 照旧贴出代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>别踩白块</title> <style type="text/cs

JS实现别踩白块小游戏

最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游戏区域的CSS设置为相对定位.溢出隐藏;两块“游戏板”上分别排布着24块方格,黑色每行随机产生一个,“游戏板”向下滚动并交替显示,将每个操作板的黑块位置存入数组,每次点击时将数组pop出来进行比对(我觉得亮点在这……). 这里是游戏的GitHub地址,大家可以到里点击中部菜单最右边的的Downloa

JS游戏–别踩白块–教学视频

[布尔教育 PHP就业班 课堂案例 ] 玩游戏,不如自己写游戏! 打开浏览器,打开编辑器(sublime,editplus,notepad都行), 花上2个小时,写个"别踩白块"玩一玩. JS游戏_别踩白块(1) 思路分析.wmv JS游戏_别踩白块(2) 框架搭建.wmv JS游戏_别踩白块(3) 之随机黑白块.wmv JS游戏_别踩白块(4) 方块动起来.wmv JS游戏_别踩白块(5) 方块无缝滚动.wmv JS游戏_别踩白块(6) 得分.wmv JS游戏_别踩白块(7) 犯规处

GameBuilder开发游戏应用系列之100行代码实现别踩白块

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-961421749977376 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-961421749977376 微信扫描: 游戏截图: 别踩白块是一款非常流行的游戏,该游戏于2014年4月16日上线App Store.并在全球40多个国家.地区免费游戏榜登顶榜首[4] ,超过一百个国家或地区排名前十 ,5月份荣