zoukankan      html  css  js  c++  java
  • 通过坐标比较来取代hitTest()

    众所周之flash里通过hitTest()来检测碰撞

    例子:如果检测a是否与b碰撞 如图:

    Code

    这样就完成了 hitTest()的碰撞演示

    hitTest()方法存在很多限制。应用很单一。

    比如,当可以拖拽的物体需要与很多排列很紧密的目标检测的时候

    就会束手无策了。如图:

    当把a拖到球的中间位置,hitTest()会认为是与四个球都碰到了

    这恰恰不是我们想看到的结果;

    解决的方法就是计算坐标之间的距离来判断

    Code

    另外:在flash里,hitTest()并不是我们看到的区域碰到一起就认为碰到。

    flash里的hitTest()认为原件(影片剪辑)的左极点到右极点之间的区域,和顶极点与底极点之间的区域

    即一个 矩形的区域,不管原件本身是什么形状。

    看到这个区域很简单,就是把原件(什么形状的都可以)拖到舞台后,

    点击这个原件后,出现了矩形区域。

    这就会造成视觉上,没有碰到,但是已经有了交叉区域,

    hitTest()认为碰到了。

    所以就又不得不通过 检查坐标的接近程度来进行判断。

    如果两个物体的原点坐标距离,小于他们的宽度(高度)一半

    就认为是碰到

    hitTest()测试    源文件下载

    坐标检测例子     源文件下载   

      

    naiking

    我在醒着

  • 相关阅读:
    docker,构建nginx反向代理tomcat
    centos7 Docker Compose 的安装
    tomcat8以上管理页面提示403问题
    实战docker,编写Dockerfile定制tomcat8镜像,实现web应用在线部署
    pycharm的MySQLdb模块导不进去时解决办法
    使用Docker创建Elasticsearch服务
    使用Docker搭建Tomcat运行环境
    win7查看某个端口被占用的解决方法
    在docker中使用mysql数据库,在局域网访问
    c++11 其他特性(一)
  • 原文地址:https://www.cnblogs.com/naiking/p/1277996.html
Copyright © 2011-2022 走看看