界面未作优化 只实现了基本功能 随机生成黑快 点击分数加成 错点以及触底死亡 难度选择等
点击—-查看演示
玩家信息
设置开始/暂停 等级选择以及分数统计
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]解决了。