这是我在ImapBox发表的第一篇文章。是我在初学javascript后, 忽然来了兴致, 编写的一个小游戏. 第一次学习setInterval() 这个方法, 觉得非常巧妙, 于是就有了接下来的故事. 由于是初学, 编写的代码比较简单, 可供初学者学习, 也可供相关教学人员参考, 给日常工作带来启发.欢迎一同学习交流.前言
在此感谢玲姐老师, 并怀念曾经还是学生的那一段时光.启发
一开始只是一个小方块在屏幕上不断的移动, 后来变成了两个方块碰撞,再后来增加了各种功能. 游戏用纯js代码编写, 均是最简单的js基础语法.游戏功能说明
代码效果演示
代码
<!DOCTYPE html> <html lang="en"> <head> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>AlsdGo打砖块</title> <!-- 严禁转载 --> <style type="text/css"> .outer { width: 600px; height: 600px; background-color: aquamarine; border: 1px dotted gray; position: absolute; margin-left: 600px; margin-top: 50px; font-size: 50px; text-align: center; color: red; line-height: 300px; } .in { width: 50px; height: 50px; border-radius: 50%; background-color: black; position: absolute; top: 500px; left: 75px; border: 0px; margin: 0px; font-size: 20px; text-align: center; line-height: 50px; color: white; border: 0px solid black; } .btm { width: 200px; height: 50px; background-color: black; position: absolute; top: 550px; left: 0px; border: 0px; margin: 0px; } .btmspan1{ width: 30px; height: 30px; background-color: aquamarine; position: absolute; top: 0px; left: 0px; border: 10px double darkblue; margin: 0px; } .button1 { width: 100px; height: 50px; margin-left: 600px; margin-top: 0px; font-size: 20px; text-align: center; color: black; line-height: 50px; } .button2 { width: 100px; height: 50px; margin-left: 0px; margin-top: 0px; font-size: 20px; text-align: center; color: black; line-height: 50px; } .test0 { width: 100px; height: 50px; margin-left: 1000px; margin-top: -50px; font-size: 15px; text-align: right; line-height: 60px; } .test1 { width: 100px; height: 50px; background-color: #d0d0d0; border: 1px solid black; margin-left: 1100px; margin-top: -50px; font-size: 30px; text-align: right; line-height: 75px; } .square { width: 98px; height: 48px; background-color: salmon; border: 1px solid black; margin: 0px; text-align: center; line-height: 48px; font-size: 30px; } .left { float: left; } .clear-left { clear: left; } .bigger { width: 20px; height: 20px; border-radius: 50%; background-color: blue; position: absolute; top: 0px; left: 0px; font-size: 10px; text-align: center; line-height: 20px; color: yellow; display: none; } .smaller { width: 20px; height: 20px; border-radius: 50%; background-color: red; position: absolute; top: 0px; left: 0px; font-size: 10px; text-align: center; line-height: 20px; color: yellow; display: none; } </style> </head> <body> <div class="outer"> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square clear-left left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="square left"></div> <div class="in">50</div> <div class="btm"> <span class="btmspan1" style="left: 40px;width: 110px;height: 44px;border: 3px dotted darkblue; background-color: aquamarine"></span> <span class="btmspan1" style="left: 150px; background-color: aquamarine"></span> <span class="btmspan1" style="left: 0px; background-color: aquamarine"></span> </div> <div class="bigger">B</div> <div class="smaller">S</div> </div> <div> <button class="button1">开始</button> <button class="button2">停止</button> <button class="button2">减速</button>速度: <button class="button2">0</button> <button class="button2" style="display: none">左移</button> <button class="button2" style="display: none">右移</button> <div class="test0">分数:</div> <div class="test1">100</div> </div> <script type="text/javascript"> var outer = document.getElementsByClassName("outer")[0]; var start = document.getElementsByTagName("button")[0]; var stop = document.getElementsByTagName("button")[1]; var slow = document.getElementsByTagName("button")[2]; var vvvv = document.getElementsByTagName("button")[3]; var vvvv88 = 0; var leftmove = document.getElementsByTagName("button")[4]; var rightmove = document.getElementsByTagName("button")[5]; var indiv = document.getElementsByClassName("in")[0]; var inwidth = 50; var inheight = 50; var ininnerhtml = 50; var btmdiv = document.getElementsByClassName("btm")[0]; var btmspan1div = document.getElementsByClassName("btmspan1")[0]; var btmspan1div1 = document.getElementsByClassName("btmspan1")[1]; var btmspan1div2 = document.getElementsByClassName("btmspan1")[2]; var test1div = document.getElementsByClassName("test1")[0]; var squares = document.getElementsByClassName("square"); var bigger = document.getElementsByClassName("bigger")[0]; var btop = 0; var bleft = 0; var smaller = document.getElementsByClassName("smaller")[0]; var stop1 = 0; var sleft = 0; var step = 1; var timeId1; var step2 = 1; var timeId2; var btmstep = 0; var btmstep2 = 550; var left = 75; var direction = 0; var top2 = 500; var direction2 = 0; function showbigger() { bleft = Math.random() * 580; btop = Math.random() * 300 + 100; bigger.style.top = btop + "px"; bigger.style.left = bleft + "px"; bigger.style.display = "block"; } function showsmaller() { sleft = Math.random() * 580; stop1 = Math.random() * 300 + 100; smaller.style.top = stop1 + "px"; smaller.style.left = sleft + "px"; smaller.style.display = "block"; } function changecolor() { if(btmspan1div.style.backgroundColor == indiv.style.backgroundColor){ btmspan1div.style.backgroundColor = "aquamarine"; btmspan1div.style.borderColor = "darkblue"; }else { btmspan1div.style.backgroundColor = indiv.style.backgroundColor; btmspan1div.style.borderColor = indiv.style.borderColor; } } function changecolor2() { btmspan1div1.style.backgroundColor = btmspan1div.style.backgroundColor; btmspan1div2.style.backgroundColor = btmspan1div.style.backgroundColor; btmspan1div1.style.borderColor = btmspan1div.style.borderColor; btmspan1div2.style.borderColor = btmspan1div.style.borderColor; } showbigger(); showsmaller(); start.onclick = function () { timeId1 = setInterval(updateLeft, 1); timeId2 = setInterval(updateTop, 1); start.innerHTML = "加速"; vvvv88++; vvvv.innerHTML = vvvv88; } stop.onclick = function () { for (var i = 2; i <= timeId1; i++) { clearInterval(i); } for (var i = 2; i <= timeId2; i++) { clearInterval(i); } start.innerHTML = "开始"; } slow.onclick = function () { if (timeId1 > 2) { clearInterval(timeId1); } if (timeId2 > 2) { clearInterval(timeId2); } if (vvvv88 > 0) { vvvv88--; } vvvv.innerHTML = vvvv88; } leftmove.onclick = function () { if (btmstep >= 50) { btmstep = btmstep - 50; } btmdiv.style.left = btmstep + "px"; } rightmove.onclick = function () { if (btmstep <= 350) { btmstep = btmstep + 50; } btmdiv.style.left = btmstep + "px"; } function updateLeft() { if (left <= 600 - inwidth && direction == 0) { left += step; } else if (left <= 0 && direction == 1) { direction = 0; left += step; } else { direction = 1; left -= step; } indiv.style.left = left + "px"; } var kk; var qq; var bottomlocation; var toplocation; var num1 = 0; var num2 = 0; var num3 = 0; var num4 = 0; var num5 = 0; var num6 = 0; var scoreA = 99; function updateTop() { if (num1 == 1 && num2 == 1 && num3 == 1 && num4 == 1 && num5 == 1 && num6 == 1) { for (var i = 2; i <= timeId1; i++) { clearInterval(i); } for (var i = 2; i <= timeId2; i++) { clearInterval(i); } outer.innerHTML = "GOOD GAME"; alert("再来一次"); location.reload(); } if (bleft - left >= -20 && bleft - left <= inwidth && btop - top2 >= -20 && btop - top2 <= inwidth) { bigger.style.display = "none"; showbigger(); if (inwidth < 100) { inwidth = inwidth + 10; inheight = inheight + 10; ininnerhtml = ininnerhtml + 10; indiv.style.width = inwidth + "px"; indiv.style.height = inheight + "px"; indiv.innerHTML = ininnerhtml; indiv.style.lineHeight = ininnerhtml + "px"; var colors = getTwoColor(); indiv.style.backgroundColor = colors[0]; indiv.style.borderColor = colors[1]; } else { indiv.innerHTML = "Max"; var colors = getTwoColor(); indiv.style.backgroundColor = colors[0]; indiv.style.borderColor = colors[1]; } } if (sleft - left >= -20 && sleft - left <= inwidth && stop1 - top2 >= -20 && stop1 - top2 <= inwidth) { smaller.style.display = "none"; showsmaller(); if (inwidth > 20) { inwidth = inwidth - 10; inheight = inheight - 10; ininnerhtml = ininnerhtml - 10; indiv.style.width = inwidth + "px"; indiv.style.height = inheight + "px"; indiv.innerHTML = ininnerhtml; indiv.style.lineHeight = ininnerhtml + "px"; var colors = getTwoColor(); indiv.style.backgroundColor = colors[0]; indiv.style.borderColor = colors[1]; } else { indiv.innerHTML = ""; var colors = getTwoColor(); indiv.style.backgroundColor = colors[0]; indiv.style.borderColor = colors[1]; } } kk = left - btmstep + inwidth/2; qq = btmstep2 - top2 - (inheight-1); bottomlocation = 600 - inheight; if (kk >= 0 && kk <= 200 && qq >= 0) { bottomlocation = btmstep2 - inheight; if(qq==0){ step = Math.abs(kk-100)/100+1; changecolor2(); changecolor(); } } if (top2 == 601-inheight) { scoreA = scoreA - 50; } else if (top2 == 551-inheight && kk >= 0 && kk <= 200) { scoreA++; } test1div.innerHTML = scoreA; if (scoreA < 0) { for (var i = 2; i <= timeId1; i++) { clearInterval(i); } for (var i = 2; i <= timeId2; i++) { clearInterval(i); } outer.innerHTML = "GAME OVER"; alert("再来一次"); location.reload(); } toplocation = 100; switch (true) {//0-550 case left >= 0 && left < 75 && num1 == 1: toplocation = 0; break; case left >= 75 && left < 175 && num2 == 1: toplocation = 0; break; case left >= 175 && left < 275 && num3 == 1: toplocation = 0; break; case left >= 275 && left < 375 && num4 == 1: toplocation = 0; break; case left >= 375 && left < 475 && num5 == 1: toplocation = 0; break; case left >= 475 && left <= 550 && num6 == 1: toplocation = 0; break; case left >= 0 && left < 75 && num1 == 2: toplocation = 50; break; case left >= 75 && left < 175 && num2 == 2: toplocation = 50; break; case left >= 175 && left < 275 && num3 == 2: toplocation = 50; break; case left >= 275 && left < 375 && num4 == 2: toplocation = 50; break; case left >= 375 && left < 475 && num5 == 2: toplocation = 50; break; case left >= 475 && left <= 550 && num6 == 2: toplocation = 50; break; } if (top2 <= bottomlocation && direction2 == 0) {// 正常往下走 top2 += step2; } else if (top2 <= toplocation && direction2 == 1) {// 到顶部换方向 第一层方块 if (top2 == 100) { switch (true) {//0-550 case left >= 0 && left < 75: squares[6].style.backgroundColor = "aquamarine"; squares[6].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num1 = 2; break; case left >= 75 && left < 175: squares[7].style.backgroundColor = "aquamarine"; squares[7].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num2 = 2; break; case left >= 175 && left < 275: squares[8].style.backgroundColor = "aquamarine"; squares[8].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num3 = 2; break; case left >= 275 && left < 375: squares[9].style.backgroundColor = "aquamarine"; squares[9].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num4 = 2; break; case left >= 375 && left < 475: squares[10].style.backgroundColor = "aquamarine"; squares[10].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num5 = 2; break; case left >= 475 && left <= 550: squares[11].style.backgroundColor = "aquamarine"; squares[11].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num6 = 2; break; } } if (top2 == 50) { switch (true) { case left >= 0 && left < 75: squares[0].style.backgroundColor = "aquamarine"; squares[0].style.border = "1px solid aquamarine"; squares[6].style.backgroundColor = "aquamarine"; squares[6].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num1 = 1; break; case left >= 75 && left < 175: squares[1].style.backgroundColor = "aquamarine"; squares[1].style.border = "1px solid aquamarine"; squares[7].style.backgroundColor = "aquamarine"; squares[7].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num2 = 1; break; case left >= 175 && left < 275: squares[2].style.backgroundColor = "aquamarine"; squares[2].style.border = "1px solid aquamarine"; squares[8].style.backgroundColor = "aquamarine"; squares[8].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num3 = 1; break; case left >= 275 && left < 375: squares[3].style.backgroundColor = "aquamarine"; squares[3].style.border = "1px solid aquamarine"; squares[9].style.backgroundColor = "aquamarine"; squares[9].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num4 = 1; break; case left >= 375 && left < 475: squares[4].style.backgroundColor = "aquamarine"; squares[4].style.border = "1px solid aquamarine"; squares[10].style.backgroundColor = "aquamarine"; squares[10].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num5 = 1; break; case left >= 475 && left <= 550: squares[5].style.backgroundColor = "aquamarine"; squares[5].style.border = "1px solid aquamarine"; squares[11].style.backgroundColor = "aquamarine"; squares[11].style.border = "1px solid aquamarine"; scoreA = scoreA + 10; test1div.innerHTML = scoreA; num6 = 1; break; } } direction2 = 0; top2 += step2; } else { direction2 = 1; top2 -= step2; } indiv.style.top = top2 + "px"; } document.onkeydown = function (event) { var e = event || window.event || arguments.callee.caller.arguments[0]; switch (true) { case e.keyCode == 13: timeId1 = setInterval(updateLeft, 1); timeId2 = setInterval(updateTop, 1); start.innerHTML = "加速"; vvvv88++; vvvv.innerHTML = vvvv88; break; case e.keyCode == 37: if (btmstep >= 50) { btmstep = btmstep - 50; } btmdiv.style.left = btmstep + "px"; break; case e.keyCode == 39: if (btmstep <= 350) { btmstep = btmstep + 50; } btmdiv.style.left = btmstep + "px"; break; case e.keyCode == 38: qq = btmstep2 - top2 - (inheight-1); if (btmstep2 >= 200&&qq>inheight) { btmstep2 = btmstep2 - 50; } btmdiv.style.top = btmstep2 + "px"; break; case e.keyCode == 40: if (btmstep2 <= 500) { btmstep2 = btmstep2 + 50; } btmdiv.style.top = btmstep2 + "px"; break; } } function getTwoColor() { var rr = Math.random()*(255+1); var gg = Math.random()*(255+1); var bb = Math.random()*(255+1); var color1 = colorRGB2Hex(rr+","+gg+","+bb); var color2 = colorRGB2Hex((255-rr)+","+(255-gg)+","+(255-bb)); var colors = [color1,color2]; return colors; } function colorRGB2Hex(color) { var rgb = color.split(','); var r = parseInt(rgb[0].split('(')[1]); var g = parseInt(rgb[1]); var b = parseInt(rgb[2].split(')')[0]); var hex = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); return hex; } </script> </body> </html>
后记
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算