基于javascript实现碰撞检测


Posted in Javascript onMarch 12, 2020

本文实例为大家分享了javascript实现碰撞检测的具体代码,供大家参考,具体内容如下

<html>
<head>
<style>
#div1 {width:100px; height:100px; background:red; position:absolute; z-index:2;}
#div2 {width:100px; height:100px; background:yellow; position:absolute; left:230px; top:220px; z-index:1;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.οnlοad=function ()
{
 var oDiv=document.getElementById('div1');
 var oDiv2=document.getElementById('div2');
 
 oDiv.οnmοusedοwn=function (ev)
 {
 var oEvent=ev||event;
 var disX=oEvent.clientX-oDiv.offsetLeft;
 var disY=oEvent.clientY-oDiv.offsetTop;
 
 document.οnmοusemοve=function (ev)
 {
  var oEvent=ev||event;
  
  oDiv.style.left=oEvent.clientX-disX+'px';
  oDiv.style.top=oEvent.clientY-disY+'px';
  
  var l1=oDiv.offsetLeft;//红块左边线
  var r1=oDiv.offsetLeft+oDiv.offsetWidth;//红块右边线
  var t1=oDiv.offsetTop;//红块上边线
  var b1=oDiv.offsetTop+oDiv.offsetHeight;//红块下边线
  
  var l2=oDiv2.offsetLeft;//黄块左边线
  var r2=oDiv2.offsetLeft+oDiv2.offsetWidth;//黄块右边线
  var t2=oDiv2.offsetTop;//黄块上边线
  var b2=oDiv2.offsetTop+oDiv2.offsetHeight;//黄块下边线
  
  if(r1<l2 || l1>r2 || b1<t2 || t1>b2)
  {
  oDiv2.style.background='yellow';
  }
  else
  {
  oDiv2.style.background='green';
  }
 };
 
 document.οnmοuseup=function ()
 {
  document.οnmοusemοve=null;
  document.οnmοuseup=null;
 };
 };
};
</script>
</head>
 
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

基于javascript实现碰撞检测

碰撞检测原理图如上:

我们检测碰撞时,发现两个div碰上检测比没碰上的检测要难,所以以没碰上作为检测条件。画上九宫格,当红色div在黄色div左边线或是右边线或是上边线或是下边线外时是永远不可能碰上的,只要这四个条件都不满足,意味着两个div相撞了,将黄块变绿。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js实现滚动变色的文字效果
Jun 16 Javascript
javascript制作游戏开发碰撞检测的封装代码
Mar 31 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
JS根据生日月份和日期计算星座的简单实现方法
Nov 24 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 Javascript
微信小程序左右滑动的实现代码
Dec 15 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 #jQuery
js 使用ajax设置和获取自定义header信息的方法小结
Mar 12 #Javascript
javascript实现拖拽碰撞检测
Mar 12 #Javascript
原生js实现碰撞检测
Mar 12 #Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
Mar 12 #Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 #Javascript
JS实现碰撞检测效果
Mar 12 #Javascript
You might like
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
Python 26进制计算实现方法
2015/05/28 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
浅谈python3中input输入的使用
2019/08/02 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
公司成立感言
2014/01/11 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
会议欢迎词
2015/01/23 职场文书