av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

JavaScript實現打磚塊游戲

瀏覽:9日期:2023-06-25 08:32:11

本文實例為大家分享了JavaScript實現打磚塊游戲的具體代碼,供大家參考,具體內容如下

html+css部分

<!DOCTYPE html><html> <head> <meta charset='UTF-8'> <title>打磚塊</title> <link rel='stylesheet' type='text/css' href='http://www.4tl426be.cn/bcjs/css/break.css' rel='external nofollow' /> <script type='text/javascript' src='http://www.4tl426be.cn/bcjs/js/break.js'></script> <style type='text/css'> *{ padding: 0; margin: 0; } .content{ position: relative; width: 800px; height: 600px; background-color: #999; margin: 0 auto; overflow: hidden; } .game{ position: relative; width: 550px; height: 500px; background-color: pink; margin: 20px auto 0; } .brick{ position: absolute; width: 50px; height: 20px; background-color: blueviolet; } .flap{ position: absolute; width: 120px; height: 30px; bottom: 0; left: 0; background-color: blue; } .ball{ position: absolute; width: 30px; height: 30px; bottom: 30px; left: 0; border-radius: 50%; background-color: greenyellow; } .btn{ position: absolute; width: 550px; height: 50px; bottom: 0; left: 125px; } .btn button{ width: 120px; height: 40px; } #score{ position: absolute; width: 80px; height: 30px; right: 0; top: 10%; background-color: #fff; /*border: 1px solid red;*/ } </style> </head> <body> <div class='content'> <div class='game'> <!--<div class='brick'></div>--> <!--<div class='flap'></div> <div class='ball'></div>--> </div> <div class='btn'> <button id='start'>開始</button> <button id='reset'>重置</button> </div> <div id='score'> </div> </div> </body></html>

js部分

window.onload = init; function init(){ var gameArea = document.getElementsByClassName('game')[0]; var rows = 5; var cols = 11; var b_width = 50; var b_height = 20; var bricks = []; var speedX = 5; var speedY = -5; var interId = null; var lf = 0; var tp = 0; var flap var ball; var n = 0; var st = document.getElementById('start'); var rt = document.getElementById('reset'); var score = document.getElementById('score'); score.innerHTML = '得分:' + n; renderDom(); bindDom(); function renderDom(){ getBrick(); //得到五彩磚塊 function getBrick(){ for (var i = 0; i < rows; i++) { var tp = i * b_height; var brick = null; for (var j = 0; j < cols; j++) { var lf = j * b_width; brick = document.createElement('div'); brick.className = 'brick'; brick.setAttribute('style','top:' + tp + 'px;left:' + lf + 'px;'); brick.style.backgroundColor = getColor(); bricks.push(brick); gameArea.appendChild(brick); } } } //添加擋板 var flap = document.createElement('div'); flap.className = 'flap'; gameArea.appendChild(flap); //添加擋板小球 var ball = document.createElement('div'); ball.className = 'ball'; gameArea.appendChild(ball); } function bindDom(){ flap = document.getElementsByClassName('flap')[0]; window.onkeydown = function(e){ var ev = e || window.event; var lf = null; if (e.keyCode == 37) { //左鍵往左走 lf = flap.offsetLeft - 10; if (lf < 0) { lf = 0; } flap.style.left = lf + 'px'; }else if (e.keyCode == 39) { //右鍵往右走 lf = flap.offsetLeft + 10; if (lf >= gameArea.offsetWidth - flap.offsetWidth) { lf = gameArea.offsetWidth - flap.offsetWidth } flap.style.left = lf + 'px'; } } st.onclick = function(){ ballMove(); st.onclick = null; } rt.onclick = function(){ window.location.reload(); } } //得到磚塊的隨即顏色 function getColor(){ var r = Math.floor(Math.random()*256); var g = Math.floor(Math.random()*256); var b = Math.floor(Math.random()*256); return 'rgb(' + r + ',' + g + ',' + b +')'; } //實現小球上下左右來回運動 function ballMove(){ ball = document.getElementsByClassName('ball')[0]; interId = setInterval(function(){ lf = ball.offsetLeft + speedX; tp = ball.offsetTop + speedY; //實現磚塊消失的效果 for (var i = 0; i < bricks.length; i++) { var bk = bricks[i]; if ((lf + ball.offsetWidth/2) >= bk.offsetLeft && (lf + ball.offsetWidth/2) <= (bk.offsetLeft + bk.offsetWidth) && (bk.offsetTop + bk.offsetHeight) >= ball.offsetTop ) { bk.style.display = 'none'; speedY = 5; n++; score.innerHTML = '得分:'+n; } } if (lf < 0) { speedX = -speedX; } if (lf >= (gameArea.offsetWidth - ball.offsetWidth)){ speedX = -speedX; } if (tp <= 0) { speedY = 5; }else if((ball.offsetTop + ball.offsetHeight) >= flap.offsetTop && (ball.offsetLeft + ball.offsetWidth/2) >= flap.offsetLeft && (ball.offsetLeft + ball.offsetWidth/2) <= (flap.offsetLeft + flap.offsetWidth) ){ speedY = -5; }else if(ball.offsetTop >= flap.offsetTop){ gameOver(); } ball.style.left = lf + ’px’; ball.style.top = tp + 'px'; },20) } //判斷游戲是否結束 function gameOver(){ alert('game over' + 'n' + '您的得分是' + score.innerHTML); clearInterval(interId); } }

更多關于Js游戲的精彩文章,請查看專題: 《JavaScript經典游戲 玩不停》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 欧美视频免费看 | 国产精品一区二区不卡 | 欧美日本国产 | 亚洲综合精品 | 一区二区日韩 | 91看片看淫黄大片 | 色片网址| 一级毛片黄色 | 亚洲天码中字 | 中文字幕一区在线 | 国产区视频在线 | 一区二区三区久久久 | 久久久久久久久久国产 | 国产激情一区二区三区 | 国产乱码精品一区二区三区忘忧草 | 中文字字幕在线 | 欧美在线性爱视频 | 久久视频一区二区 | 欧美日韩亚洲一区二区三区 | 美女黄色免费网站 | 黄色三级网 | 日本免费毛片 | av激情网| 神马午夜嘿嘿 | 国产乱国产乱300精品 | 在线观看免费毛片 | 亚洲激情一区二区 | 亚洲综合在线视频 | 麻豆成人91精品二区三区 | 国产精品久久久久久无人区 | 一级片免费 | 亚洲看片| 久久久精品在线观看 | 美女黄色在线观看 | 亚洲自拍偷拍一区 | 在线国产91| 天天综合影院 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品在线看 | 美日韩一区二区 | 欧美在线观看一区二区 |