7, 碰撞检测, 精确非精确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7, 碰撞检测, 精确非精确相关的知识,希望对你有一定的参考价值。

import tr = egret.sys.tr;

class Main extends egret.DisplayObjectContainer {

    public constructor() {
        super();
        this.once(egret.Event.ADDED_TO_STAGE, this.start, this);
    }

    private start(event:egret.Event) {
        /**
         * 绘制一个 100 * 100 的红色正方形
         */
        var shp:egret.Shape = new egret.Shape();
        shp.graphics.beginFill(0xff0000);
        shp.graphics.drawRect(0,0,100,100);
        shp.graphics.endFill();
        shp.x = 11;
        shp.y = 11;
        this.addChild(shp);
        /**
         * 判断该正方形是否和 某个 点发生碰撞
         * 返回 bool 值
         * 该方法第三个参数, 表示是否开启精确碰撞检测
         * 大量使用精确碰撞检测会消耗性能
         */
        var isHit:boolean = shp.hitTestPoint(10, 10, true); 

        if(isHit) {
            console.log("发生了碰撞!")
        } else {
            console.log("未发生碰撞!")
        }
    }

}

 

以上是关于7, 碰撞检测, 精确非精确的主要内容,如果未能解决你的问题,请参考以下文章

unity3d怎么做碰撞?unity3d如何添加碰撞体?求解!

碰撞检测经典解决方案

精确二分搜索与非精确二分搜索

采用非精确线搜索求步长的Armjio准则--MATLAB实现

采用非精确线搜索求步长的Armjio准则--MATLAB实现

ArithmeticException:“非终止十进制扩展;没有精确可表示的十进制结果”