色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

JavaScript實現打磚塊游戲

瀏覽:7日期: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.lshqa.cn/bcjs/css/break.css' rel='external nofollow' /> <script type='text/javascript' src='http://www.lshqa.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
相關文章:
主站蜘蛛池模板: 久久成人黄色 | 亚洲香蕉影院 | 日本乱人伦在线观看免费 | 香蕉视频亚洲一级 | 中文字幕在线无限2021 | 国产精品久久久久久久午夜片 | caoporen个人免费公开视频 | 玖玖玖视频在线观看视频6 玖玖影院在线观看 | 欧美午夜a级精美理论片 | 国产成人久久精品二区三区 | 一本久久a久久精品亚洲 | 国产成人午夜精品5599 | 加勒比日本道 | 免费一区二区三区四区五区 | 日本a级毛片视频播放 | 国产一级特黄全黄毛片 | 亚洲国产激情一区二区三区 | 一本色道久久综合 | 国产三级精品三级国产 | 久久久久久久久a免费 | 亚洲精品国产高清不卡在线 | 色综合色狠狠天天久久婷婷基地 | 亚洲欧美日韩综合在线一区二区三区 | 国产成版人视频网站免费下 | 精品久久在线 | 中文字幕成人在线 | 国产一级做a爰片久久毛片男 | 97在线视频免费公开观看 | 成人欧美 | 亚洲欧美在线免费 | 国产一区二区免费在线 | 成人免费看黄网址 | 日本一区二区高清不卡 | 欧美大狠狠大臿蕉香蕉大视频 | 99精品网站 | 亚洲国产精品一区二区第四页 | avtt加勒比手机版天堂网 | 欧美中文字幕一区二区三区 | 国产日韩欧美精品 | 欧美多人三级级视频播放 | 亚洲欧美日韩在线精品一区二区 |