南强小屋 Design By 杰米
本文实例为大家分享了JavaScript实现打砖块游戏的具体代码,供大家参考,具体内容如下
html+css部分
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>打砖块</title> <link rel="stylesheet" type="text/css" href="css/break.css" rel="external nofollow" /> <script type="text/javascript" src="/UploadFiles/2021-04-02/break.js">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经典游戏 玩不停》
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
js,打砖块
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无JavaScript实现打砖块游戏的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。