JS实现碰撞检测实例详解

本文主要介绍了js实现碰撞检测的方法,结合实例形式分析了javascript碰撞检测的原理与相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。

本文实例讲述了JS实现碰撞检测的方法。分享给大家供大家参考,具体如下:

一个简单的碰撞检测例子,检测p1是否和p2发生碰撞,当p1碰到p2时,改变p2的颜色,看测试图

JS实现碰撞检测实例详解

看一下分析图:

JS实现碰撞检测实例详解

当p1在p2的上边线(t2)以上的区域活动时,始终碰不上
当p1在p2的右边线(r2)以右的区域活动时,始终碰不上
当p1在p2的下边线(b2)以下的区域活动时,始终碰不上
当p1在p2的左边线(r2)以左的区域活动时,始终碰不上

除了以上四种情况,其他情况表示p1和p2碰上了,下面试完整测试代码

HTML部分:

登录后复制

css部分:

    #p1{      width:100px ;height: 100px;background: green;      position: absolute;    }    #p2{      width:100px ;height: 100px;background: yellow;      position: absolute;left: 300px;top: 200px;z-index: -1;    }

登录后复制

JS部分:

  window.onload = function () {    var op = document.getElementById('p1');    var op2 = document.getElementById('p2');    var disX = 0;    var disY = 0;    op.onmousedown = function (ev) {      var ev = ev|| window.event;      disX = ev.clientX - op.offsetLeft;      disY = ev.clientY - op.offsetTop;      document.onmousemove = function (ev) {        var ev = ev|| window.event;        var t1 = op.offsetTop;        var l1 = op.offsetLeft;        var r1 = op.offsetLeft + op.offsetWidth;        var b1 = op.offsetTop + op.offsetHeight;        var t2 = op2.offsetTop;        var l2 = op2.offsetLeft;        var r2 = op2.offsetLeft + op2.offsetWidth;        var b2 = op2.offsetTop + op2.offsetHeight;        if(b1r2 || t1>b2 || r1<l2){// 表示没碰上        }else{          op2.style.background = 'blue';        }        op.style.left = ev.clientX - disX +'px';        op.style.top = ev.clientY - disY +'px';      }      document.onmouseup = function () {        document.onmousemove = null;        document.onmouseup = null;      }      return false;    }  }

登录后复制

相关推荐:

JS实现简单的浮动碰撞效果实例分享

实例详解JS实现小球的弹性碰撞效果

javascript制作游戏开发碰撞检测的封装代码_javascript技巧

以上就是JS实现碰撞检测实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2790364.html

(0)
上一篇 2025年3月8日 18:55:39
下一篇 2025年2月22日 21:37:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • node.js文件上传重命名以及移动位置详解

    本篇文章主要介绍了node.js文件上传重命名以及移动位置的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一个关于node上传文件的例子,下面是前端代码,  doUpload() {  var for…

    编程技术 2025年3月8日
    200
  • Vue.js的组件和模板详解

    指令是vue.js中一个重要的特性, 主要提供了一种机制将数据的变化映射为dom行为。下面通过本文给大家分享vue.js的组件和模板,需要的朋友参考下吧,希望能帮助到大家。 摘要: 指令是Vue.js中一个重要的特性, 主要提供了一种机制将…

    2025年3月8日 编程技术
    200
  • JS获取数组中出现次数最多元素的方法详解

    本文主要介绍了js获取数组中出现次数最多及第二多元素的方法,涉及javascript针对数组的遍历、排序、判断、查询等相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 整型数组中出现次数最多和第二多的元素 用哈希数组 function…

    2025年3月8日
    200
  • JavaScript优先队列与循环队列实例详解

    本文主要介绍了javascript数据结构之优先队列与循环队列,结合实例形式较为详细的分析了javascrip数据结构中优先队列与循环队列的原理、定义与使用方法,需要的朋友可以参考下,希望能帮助到大家。 优先队列 实现一个优先队列:设置优先…

    2025年3月8日
    200
  • Express multer上传与使用详解

    本文主要介绍了express系列之multer上传的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 这两天在看《nodejs权威指南》,这本书看了好久了,但是读的一直不细,这次才好好看了…

    2025年3月8日
    200
  • 微信小程序getUserInfo回调详解

    本文主要介绍了微信小程序-getuserinfo回调的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下,希望能帮助到大家。 微信小程序-getUserInfo回调的实例详解 前言: 这里就不吹嘘微…

    2025年3月8日
    200
  • JavaScript实现报警器提示音效果详解

    本文主要给大家分享分享一段代码基于javascript实现报警器提示音效果,非常不错,具有参考借鉴价值,需要的朋友参考下吧,希望能帮助到大家。 原型图: 项目需求: 服务器接受到报警后将消息推送到前台,(通过前端实时消息提示的效果-webs…

    2025年3月8日
    200
  • JavaScript双向链表定义与使用方法

    本文主要介绍了javascript数据结构之双向链表定义与使用方法,简单介绍了双向链表的原理,并结合实例形式分析了双向链表的定义与使用方法,需要的朋友可以参考下,希望能帮助到大家。 双向链表和普通链表的区别在于,在链表中,一个节点只有链向下…

    2025年3月8日
    200
  • vue中v-model动态生成详解

    本文主要介绍了vue中v-model动态生成的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下,希望能帮助到大家。 vue中v-model动态生成的实例详解 前言: 最近在做公司的项目中,有这么一…

    2025年3月8日
    200
  • 微信小程序input输入实例详解

    本文主要介绍了微信小程序 input输入及动态设置按钮的实现的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。 微信小程序 input输入及动态设置按钮的实现 【需求】实现当手机号已填写和协议已勾选时,“立即登录…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论