首页 > 编程语言 >碰撞测试(附源码)

碰撞测试(附源码)

时间:2023-07-01 11:22:17浏览次数:30  
标签:const domElement 碰撞 源码 测试 document offsetWidth div2 div1

这里没有办法展示动态效果,具体动态效果请复制到浏览器并在浏览器控制台上查看具体效果:

CSS部分:

 <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            position: absolute;
            top: 0;
            left: 0;
            border-radius: 50%
        }
        #div1 {
            width: 200px;
            height: 200px;
            background: green
        }
        #div2 {
            width: 100px;
            height: 100px;
            background: red
        }


    </style>

HTML部分:

<body>
<div id="div1"></div>
<div id="div2"></div>
</body>

js部分:

<script>
    const div1 = document.getElementById("div1");
    const div2 = document.getElementById("div2");

    function move(domElement) {
        domElement.onmousedown = function (e) {
            const mouseX = e.clientX,
                mouseY = e.clientY,
                oldLeft = domElement.offsetLeft,
                oldTop = domElement.offsetTop
            document.onmousemove = function (e) {
                const x = e.clientX,
                    y = e.clientY
                domElement.style.left = oldLeft + (x - mouseX) + 'px'
                domElement.style.top = oldTop + (y - mouseY) + 'px'
            }
            document.onmouseup = function () {
                document.onmousemove = null
            }
        }
    }

    move(div1)
    move(div2)
    setInterval(function () {
        const x = div1.offsetWidth / 2 + div1.offsetLeft  //div1的圆心left值
        const x2 = div2.offsetWidth / 2 + div2.offsetLeft  //div2的圆心left值
        const y = div1.offsetWidth / 2 + div1.offsetTop  //div1的圆心top值
        const y2 = div2.offsetWidth / 2 + div2.offsetTop  //div2的圆心top值
        const circleDistance = Math.pow(x - x2, 2) + Math.pow(y - y2, 2) //斜边的平方
        const r1AndR2 = Math.pow(div1.offsetWidth / 2 + div2.offsetWidth / 2, 2)

        if (circleDistance <= r1AndR2) {
            console.log('撞上了')
        }
    }, 30)
</script>

 

标签:const,domElement,碰撞,源码,测试,document,offsetWidth,div2,div1
From: https://www.cnblogs.com/xm11667799/p/17519017.html

相关文章

  • 猜数字游戏(附源码)
    CSS部分:<style>html{font-family:sans-serif;}body{width:50%;max-width:800px;min-width:480px;margin:0auto;}.lastResult{......
  • 3d烟花效果的实现(附源码)
    这里没有办法展示动态效果,具体动态效果请复制代码去浏览器中查看:CSS部分:<style>html,body{margin:0px;width:100%;height:100%;overflow:hidden;background:#000;}#canvas{width:100%;height:100%;}</style>HTML部分:<body><can......
  • 3d立体相册的实现(附源码)
    效果图(这里没办法显示动态,具体动态自己复制代码去网页看):CSS部分:html{background:#000;height:100%;}/*最外层容器样式*/.wrap{position:relative;position:absolute;top:0;right:0;bottom:0;left:0;width:200px;......
  • 深度理解Iterator底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数:记录添加数据、删除数据的次数(记录元素个数变化的次数) protectedtransientintmodCount=0;//4}这段代码是一个抽象类AbstractList,实现了List接口。下面是对代码......
  • 离线安装ffmpeg源码包【详细教程】
    今天分享一下ffmpeg源码包的安装过程,针对在没有网络环境下,且不能直接使用yum如何成功安装ffmpeg源码包。博主本人通过正式服务器测试,记录整个安装过程。值得大家收藏同时,我会分享一下如何使用ffmpeg对H.264格式视频(MP4)进行m3u8+ts切片的转换,并生成m3u8+ts格式文件ffmpeg所需要环......
  • Debug Golang源码中的单元测试
    goland配置如上,既可以debuggolang源码中的单元测试。......
  • 【源码分析】Mybatis 的配置解析过程
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌Java知识图谱点击链接:体系化学习Java(Java面试专题)......
  • 深入学习 Mybatis 的四大组件源码
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌Java知识图谱点击链接:体系化学习Java(Java面试专题)......
  • 基准测试BenchmarkDotNet
    今天飞书群里同事争论枚举.GetHashCode()会装箱,要改为(int)枚举,争吵不下纸上谈兵无法说服另外的人,上BenchmarkDotNet基准测试添加BenchmarkDotNet库<PackageReferenceInclude="BenchmarkDotNet"Version="0.13.5"/>性能测试用例classProgram{ staticvoidMain(strin......
  • UE5 源码下载编译过程记录
    前言没有科学上网,就不要折腾了1注册Epic2注册github3关联账号在UE官网登入账号并且关联github账号4下载源码5执行Setup.bat5.1执行出错提示FailedtodownloadFailedtodownload'http://cdn.unrealengine.com/dependencies/UnrealEngine-24819931/19acf26186763763ae43ec3e4bd1......