电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

JavaScript實現打磚塊游戲

瀏覽:4日期: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.hdgsjgj.cn/bcjs/css/break.css' rel='external nofollow' /> <script type='text/javascript' src='http://www.hdgsjgj.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
相關文章:
主站蜘蛛池模板: 阳光1号桔柚_无核沃柑_柑橘新品种枝条苗木批发 - 苧金网 | 连栋温室大棚建造厂家-智能玻璃温室-薄膜温室_青州市亿诚农业科技 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 一航网络-软件测评官网| 起好名字_取个好名字_好名网免费取好名在线打分 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 楼承板-开口楼承板-闭口楼承板-无锡海逵 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 代理记账_免费注册公司_营业执照代办_资质代办-【乐财汇】 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 丝印油墨_水性油墨_环保油墨油漆厂家_37国际化工 | 光照全温振荡器(智能型)-恒隆仪器| 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 包头市鑫枫装饰有限公司| 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 首页_中夏易经起名网| 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 井式炉-台车式回火炉-丹阳市电炉厂有限公司 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com |