用html与js实现简单的弹砖块小游戏(初级)

用键盘的左右键控制一个板块让小球反弹,小球反弹到上面,与其相碰的砖块会消失,小球落地会重新开始游戏。

弹砖块小游戏--初级

第一部分body:要注意格式,父级与子级,兄弟的关系。

<div class="container"><div id="zhuan"><!-- id砖只有管理权限,没有定位权限 --><!-- <div class="zhuan"></div> --></div><div class="ball"></div><div class="ban"></div></div>

第二部分样式:只写主要样式,宽高颜色等按自我需求书写,(想要源代码的私)。

   body {display: flex;justify-content: center;align-items: center;}.container {position: relative;}.container .zhuan {position: absolute;}.container .ball {border-radius: 50%;position: absolute;}.container .ban {bottom: 10px;position: absolute;}

第三部分script:

获取元素:

    var dContainer = document.querySelector(".container");var dBall = document.querySelector(".ball");var dBan = document.querySelector(".ban");var dZhuan = document.getElementById("zhuan");var timer = null;//计时开始

《1:上方砖块的建立,横纵即双循环,添加元素div。

   function setZhuan() {for (var i = 0; i < 6; i++) {for (var j = 0; j < 10; j++) {var d = document.createElement("div");d.className = "zhuan";d.style.left = 25 + j * 56 + 'px';  //每一个砖块的横坐标d.style.top = 30 + i * 15 + 'px';  //每一个砖块的纵坐标dZhuan.appendChild(d);}}}

《2:设置小球,小球的定位得动态,还得注意方向,以及速度的随机性(随机涵数)。

  // 设置小球function setBall() {//初始位置dBall.style.left = dBan.offsetLeft + (dBan.offsetWidth - dBall.offsetWidth) / 2 + 'px';dBall.style.top = dBan.offsetTop - dBall.offsetHeight + 'px';//定义其速度,随机 // 横向dBall.sx = Math.random() > 0.5 ? rand(3, 8) : -1 * rand(3, 8);// 纵向dBall.sy = -1 * rand(3, 8);}

随机函数(重点):

 // 随机函数function rand(min, max) {return Math.round(Math.random() * (max - min) + min);}

《3:小球运动

function ballMove() {dBall.style.left = dBall.offsetLeft + dBall.sx + 'px';dBall.style.top = dBall.offsetTop + dBall.sy + 'px';if (dBall.offsetLeft <= 0 || dBall.offsetLeft >= 588) {dBall.sx *= -1;}if (dBall.offsetTop <= 0) {dBall.sy *= -1;}if (dBall.offsetTop >= 348) {// 停止游戏clearInterval(timer);// 去掉砖dZhuan.innerHTML = '';// 重新开始start();}}

《4:板块状态

    var isLeft = false;var isRight = false;window.onkeydown = function (e) {if (e.keyCode === 37) {isLeft = true;}if (e.keyCode === 39) {isRight = true;}}window.onkeyup = function (e) {if (e.keyCode === 37) {isLeft = false;}if (e.keyCode === 39) {isRight = false;}}

《5:板块移动

 function banMove() {var left = dBan.offsetLeft;if (isLeft) { left -= 12; }if (isRight) { left += 12; }left = left < 0 ? 0 : left;left = left > 540 ? 540 : left;dBan.style.left = left + 'px';}

《6:碰撞检测

function check() {// 1.ban与ballif (isCrash(dBall, dBan)) {dBall.style.top = dBan.offsetTop - dBall.offsetHeight + 'px';dBall.sy *= -1;}// 2.ball与砖var zs = dZhuan.children;for (var i = 0; i < zs.length; i++) {if (isCrash(zs[i], dBall)) {// 小球继续运动dBall.sy *= -1;// 删除砖dZhuan.removeChild(zs[i]);i--;}}}
  function isCrash(a, b) {var l1 = a.offsetLeft;var t1 = a.offsetTop;var r1 = l1 + a.offsetWidth;var b1 = t1 + a.offsetHeight;var l2 = b.offsetLeft;var t2 = b.offsetTop;var r2 = l2 + b.offsetWidth;var b2 = t2 + b.offsetHeight;if (r2 < l1 || r1 < l2 || b2 < t1 || b1 < t2) {return false;} else {return true;}}

《7:计时开始

function start() {setZhuan();setBall();//  开启计时器timer = setInterval(function () {// 1.挡板运动banMove();// 2.小球运动ballMove();// 3.碰撞检测check();}, 30)}start();

Html:简单实现弹砖块小游戏相关推荐

  1. 基于Java简单的弹珠小游戏

    package GameItem;import javax.swing.Timer; import java.awt.*; import java.awt.event.*;public class P ...

  2. C语言 弹小球 小游戏(控制台)

    C语言实现弹小球游戏 编译环境:vs2019 需求: 小球在控制台界面内不停移动,碰到边界则改变方向,控制棍子接住小球,得分加一,小球没有被接住则游戏结束. 思路: _getch()函数接收a.d两个 ...

  3. Python游戏开发,pygame模块,Python实现打砖块小游戏

    前言: 本期我们将利用python制作一个打砖块小游戏,废话不多说,让我们愉快地开始吧~ 效果展示 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdjcY4gn-16 ...

  4. Unity3D基础34.1:打砖块小游戏优化

    前文:https://blog.csdn.net/Jaihk662/article/details/86768910(打砖块小游戏设计) 前面实现了一个非常的简单打砖块小游戏,但可以发现里面有许多不合 ...

  5. Arduino中编写打砖块小游戏(完整代码)

    标题 Arduino中编写打砖块小游戏(完整代码) 程序中有大量的注释,希望真的能帮助到你! (一)环境 硬件:OLED 屏幕(128*64).摇杆模块(程序中使用的是摇杆模块的模拟量,如果你身边没有 ...

  6. 打砖块小游戏php程序,javascript实现打砖块小游戏(附完整源码)

    小时候玩一天的打砖块小游戏,附完整源码 在?给个赞? 实现如图 需求分析 1.小球在触碰到大盒子上.左.右边框,以及滑块后沿另一方向反弹,在碰到底边框后游戏结束: 2.小球在触碰到方块之后,方块消失: ...

  7. 用JAVA实现一个简易的打砖块小游戏

    概述 利用java实现打砖块小游戏,游戏界面包括以下元素 顶部的各色砖块 底部的挡板 小球 游戏信息展示面板 玩法包括 使用鼠标或者键盘移动挡板 打掉砖块,得分 每一局有3次机会,挡板没有接到小球,机 ...

  8. VUE+Canvas 实现桌面弹球消砖块小游戏

    大家都玩过弹球消砖块游戏,左右键控制最底端的一个小木板平移,接住掉落的小球,将球弹起后消除画面上方的一堆砖块. 那么用VUE+Canvas如何来实现呢?实现思路很简单,首先来拆分一下要画在画布上的内容 ...

  9. python小游戏代码大全-Python实现打砖块小游戏代码实例

    这次用Python实现的是一个接球打砖块的小游戏,需要导入pygame模块,有以下两条经验总结: 1.多父类的继承2.碰撞检测的数学模型 知识点稍后再说,我们先看看游戏的效果和实现: 一.游戏效果 二 ...

最新文章

  1. java脚本_写一个在线Java脚本执行器
  2. Windows内核对象管理
  3. 大牛深入浅出讲解c语言do{...}while(0)功能及用法
  4. Java虚拟机学习(3): 类加载机制
  5. node与mysql开源_node与mysql的相互使用————node+mysql
  6. RHEL6 grub修复
  7. linux 4433端口,linux – 使用相同的openssl端口443绑定不同端口的apache ssl端口
  8. WUSTOJ 1285: Factors(Java)
  9. 算法笔记_138:稳定婚姻问题(Java)
  10. js去空格的其他方法
  11. java项目:基于ssm的高校后勤管理系统(spring+spring mvc+mybatis+easyui+jquery)1004
  12. 清华大学计算机直硕生,推免数据 | 清华大学计算机系三大巨变——直硕生减半,本校增多,211增多...
  13. 关于画法几何和机械制图有感
  14. 语言学句法分析树形图怎么画_科学网—《泥沙龙笔记:漫谈自动句法分析和树形图表达》 - 李维的博文...
  15. 线程执行完之后会释放吗_有人说,爬完黄山之后的第二件事就是去歙县徽州古城,你会去吗?...
  16. 语雀桌面端技术架构实践
  17. 云与瘦客户机 未来IT数据安全延续
  18. 从vue项目简单了解什么是SSR
  19. 《龙武》9.15正式上线链游玩家平台 | 再续仙侠、血雨江湖
  20. 做自媒体进行文章查重的工具哪个好?操作方便快捷吗?

热门文章

  1. 百万级PHP网站架构-Poppen.de
  2. C语言学习笔记第五天_项目训练
  3. 什么是等级保护?为什么要开展等级保护?
  4. java ecb加密_AES(Rijndael)算法ECB模式加密
  5. Linux上一款强大的GIF录制软件,Peek
  6. 思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义...
  7. 抖音小店为什么没生意?万顿思教育
  8. 苹果(mac)更新喜马拉雅的xm后缀如何改成MP3,不知道windows适不适用
  9. 反问疑问_反问疑问句
  10. jsp70786体育馆售票门票系统