JS关于小球撞墙问题

学习了JS,自己写了一个关于小球撞墙的小练习,呈现的的效果是点击框里的空白会出现小球去撞红色的墙,墙后面有一个血槽,小球撞一下,血槽的血就少一格,当血槽里的血都消失时,墙消失.下面是具体实现的代码.

一.首先是body里的内容:创建一个大的div块,里面包含两个元素,是两个div快当作墙和血槽

<body>
      <div id="wrap">
           <div id="wall"></div>
           <div id="blood"></div>
      </div>
</body>

二.是css中的样式

*{

margin:0;

padding:0;

}

#wrap{

width:800px;

height:300px;

border:1px solid black;

position:relative;

margin: 50px auto;

}

#wall{

width:50px;

height:100px;

background:red;

position:absolute;

top:100px;

right:50px;

}

#blood{

width:10px;

height:100px;

border:1px solid black;

background:red;

box-sizing:border-box;

position:absolute;

top:100px;

right:30px;

}

#ball{

width:30px;

height:30px;

background:purple;

border-radius:50%;

position:absolute;

top:135px;

left:0;

}

.sblood{

width:10px;

height:10px;

background:red;

border:1px solid black;

box-sizing:border-box;

}

三.JS中的代码

<script type="text/javascript">
    var wrap = document.getElementById(‘wrap‘);
    var wall = document.getElementById(‘wall‘);
    var blood = document.getElementById(‘blood‘);

补血
   var sblood;
   for(var i=0;i<10;i++){
   sblood = document.createElement(‘div‘);
   sblood.className = ‘sblood‘;
   blood.appendChild(sblood);
}
  wall.blood = 10;

创建小球
  function createBall(){
  var ball = document.createElement(‘div‘);
  ball.id = ‘ball‘;
  wrap.appendChild(ball);

var timer = null;
  var offValue = ball.offsetLeft;
  ball.move = function (){

timer = setInterval(function(){
  offValue += 10;
  ball.style.left = offValue+‘px‘;

判断是否撞墙
  if (offValue >= wall.offsetLeft-ball.offsetWidth) {
  wall.blood--;
  if (wall.blood>=0) {
  blood.childNodes[10-wall.blood-1].style.opacity = 0;
  ball.clear();
}
  if (wall.blood<=0) {
  wall.remove();
  blood.remove();
 }
}
墙没有的时候才会撞到这
  if (offValue >= wrap.offsetWidth-ball.offsetWidth) {
  ball.clear();
 }
 },10);
}
  ball.clear = function (){
  ball.remove();
  clearInterval(timer);
}
  ball.move();
}
  wrap.onclick = function(){
  createBall();
}
</script>

时间: 2024-10-15 21:02:27

JS关于小球撞墙问题的相关文章

用java实现小球撞墙

import javax.swing.JFrame; import java.awt.event.KeyListener;import java.awt.event.KeyEvent;import java.awt.Color;import javax.swing.JPanel;import java.awt.Graphics;public class MyBall extends JFrame{ ballPanel bp; public MyBall(){ bp=new ballPanel()

练习.小球撞墙反弹

1 package com.java7.myball.main; 2 import java.awt.*; 3 4 public class MyBall { 5 public static void main(String[] args) { 6 Frame w = new Frame(); 7 w.setSize(300, 400); 8 9 MyPanel mp = new MyPanel(); 10 w.add(mp); 11 12 Thread t = new Thread(mp);

酒驾太可怕 男子喝醉骑电动车撞墙身亡

相信大家对酒驾都不陌生,喝酒太误事并且现在酒驾的查处越来越严格,所以很多车主只要喝酒一般就不会开车.但现在电动车的管理还不严格,喝酒过后骑电动车再寻常不过.但最近在南京发生的一件奇葩事故让很多人看到,酒驾不仅针对开机动车的车主,骑电动车的也要注意酒驾的危害.开新在这里提醒广大车主开车骑车一定要注意人身安全,喝酒之后一定不能再去开车骑车了. 11月9号下午,南京一条街道上一男子酒后骑电动车回家时,不慎撞上路边民房,该男子当场身亡.该死者已经被急救人员抬上120救护车送往南京六合人民医院.医生告诉交

js中小球碰壁反弹

一. 在指定容器内的碰壁反弹 <!DOCTYPE HTML> <html> <head> <title></title> <meta charset="UTF-8"/> <style type="text/css"> .ball{ height: 60px; width: 60px; background: blue; border-radius: 50%; position: ab

原生js的弹力小球

有段日子没发博客了,今天来一弹. 这次发的东西,难度比较大,用原生js,写的一个弹力小球,而且是群发,下面是一张截图. 每一次点击"添加小球",都会触发程序,新创造一个div盒子.定义css样式,然后塞进大盒子中. 接着,给这个div小球创造一个定时器,让他开始移动,并且在碰到墙壁时,会停止匀速运行的定时器,执行另一个函数,开启变速移动的定时器,同时对div小球开启进行变形定时器,实现碰到墙壁后的减速.变形.改变方向.再加速和恢复体形. 讲述原理比较简单,而真正做起来,就麻烦了. 程序

Canvas+Js制作动量守恒的小球碰撞

目的:通过js实现小球碰撞并实现动量守恒 canvas我们就不多说了,有用着呢. 我们可以通过canvas画2D图形(圆.方块.三角形等等)3D图形(球体.正方体等待). 当然这只是基础的皮毛而已,canvas的强大之处在于可以做游戏,导入模型,粒子效果,实现漫游又或者全景和VR. 这里我们介绍纯js写的2D小球碰撞.(主要是博主的Three.js不咋地) 好吧,老规矩,先上图! 额...很尴尬的是博主的截图功底不咋地,没有截下碰撞的瞬间. 话不多说,开始教程. 首先我们需要创建画布给它一个id

JS的小游戏&quot;贪吃蛇&quot;

贪吃蛇儿时的回忆,今天刚好学习到这了,就刚好做了一个,也是学习了吧,需要掌握的知识: 1,JS函数的熟练掌握, 2,JS数组的应用, 3,JS小部分AJAX的学习 4,JS中的splice.shift等一些函数的应用, 基本上就这些吧,下面提重点部分: 前端的页面,这里可自行布局,我这边提供一个我自己的布局: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org

js+jQuery实现贪吃蛇小游戏

这是我第一次这么认真的去写一个程序.今天老师布置的编程任务是实现一个贪吃蛇的小游戏,一开始感觉很茫然的,因为以前都没有这么系统的去做过一个编程任务.后来理清思路去做,感觉问题也并不是那么的难. 首先,第一步肯定是要编写出我们的的静态页面. 第二步,让我们的贪吃蛇先从一个开始动起来. 第三步,让我们通过键盘去控制他的运动方向. 第四步,让我们去判断我们的贪吃蛇有没有撞墙,有没有吃到自己,因为这已经犯规了. 第五步,给我们的贪吃蛇随机生成一个‘食物’. 第六步,实现每当我们的贪吃蛇吃了一个食物,他都

基于Node.js的ghost开源博客平台

Ghost 是一套基于Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验. 1.安装node windows 下安装npm:http://blog.csdn.net/yczz/article/details/6938260 第一步: 下载node.js的windows版当前最新版本是http://nodejs.org/dist/v0.5.10/node.exe 第二步:设置环境变量把node.exe所在目录加入到PATH环境