界面未作优化 只实现了基本功能 随机生成黑快  点击分数加成 错点以及触底死亡 难度选择等
 
点击—-查看演示
玩家信息
设置开始/暂停 等级选择以及分数统计
1  | <div class="playerInformation">  | 
用户操作1
2
3
4
5
6
7
8
9
10
11
12
13
14
15startBtn.onclick = function () {
        clearInterval(timer);
        timer = setInterval(function () {
            move(speed);
            }
}
        
stopBtn.onclick = function () {// 暂停
            clearInterval(timer);
 }
       
Select.onchange = function () { // 选择等级
            h = -100; //初始化
            speed = parseInt(this.value); //改变速度
}
移动函数
总共五列,初始位置offsetTop=-100px,然后按照设置的速度向下移动。移动的时候 h=0时瞬间把它变成-100 然后慢慢+speed 直到h=0 如此循环
1  | function move(speed) {  | 
生成黑块函数
在第一行的四个格子中随机生成一个黑块1
2
3
4
5function creatBlack() {
    var blackOne = Content.children[0].children[parseInt(Math.random() * 4)]; //随机生成黑块
    blackOne.style.background = "black";
    blackOne.isBlack = 1;
}
用户操作
function playerClick() {
     for (i = 0; i < adot.length; i++) {
         adot[i].index = i;
         adot[i].onclick = function () {
          if (this.isBlack == 1) {
              this.style.background = "#B0E0E6";
               scoreNum += 10;
            Score.innerHTML = "你的得分为:" + scoreNum + "分";
              this.isBlack = 0;} 
              else {
                    this.isBlack = 0;
                    scoreNum = 0;
                    alert("死了")
                    }
            }
        }
}
效果截图
 
  
在这个小案例中。要选择contentde 下第一列元素时,忽略了DOM 中的文本节点,使用obj.fistChild()选择 ,结果错误,因为html中的转行符号占了一个空的文本节点。后来改用obj.children[0]解决了。