【杂谈】原生JS完成别踩白块小游戏(七)
2019-11-18杂谈搜奇网54°c
A+ A-
在前面的文章《原生JS完成别踩白块小游戏(六)》中,为人人引见了完成别踩白块小游戏的js代码中挪动结果的要领概述。
下面我们就继承连系源代码中js代码部份,为人人引见细致的完成要领。
相干js代码以下:
//挪动结果 function move(obj) { //默许速率与计分 var speed = 5, num = 0; obj.timer = setInterval(function () { //速率 var step = parseInt(getComputedStyle(obj, null)['top']) + speed; obj.style.top = step + 'px' if (parseInt(getComputedStyle(obj, null)['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 = '游戏完毕'; 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; } else { //游戏完毕 obj.style.top = 0; count.innerHTML = '游戏完毕,最高得分: ' + num; //封闭定时器 clearInterval(obj.timer); //显现最先游戏 go.children[0].innerHTML = '游戏完毕'; go.style.display = "block"; } //盒子加快 if (num % 10 == 0) { speed++; } } //松开触发住手 obj.onmouseup = function (event) { } }, 20) }
此段代码就是用于完成游戏地区挪动的功用结果。这里我们定义了两个变量,速率speed和分数num,并设置初始值分别为5和0。然后又经由过程setInterval() 要领设置了一个定时器。在setInterval() 要领中,存在两个参数,第一个参数则是要实行的函数循环体,第二个参数则示意距离若干毫秒来挪用此函数(这里是20毫秒)。
那末在第一个参数的函数中,getComputedStyle(obj, null)['top']要领就是用来完成给main猎取设置top属性。
setInterval() 要领可根据指定的周期(以毫秒计)来挪用函数或盘算表达式,setInterval() 要领会不停地挪用函数,直到 clearInterval() 被挪用或窗口被封闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 要领的参数。
注:
1000 毫秒= 1 秒。 假如你只想实行一次能够运用 setTimeout() 要领。
getComputedStyle()要领返回的是一个CSS款式声明对象。
因为文章篇幅的题目,我们在后期的文章中再继承为人人引见别踩白块小游戏的js完成要领。
以上就是原生JS完成别踩白块小游戏(七)的细致内容,更多请关注ki4网别的相干文章!