slide(v) {
        if (v.x === 0 && v.y === 0) {
            return;
        }
        const entity = this.entity;
        const engine = this.engine;
        const position = entity.position;
        const rc = engine.raycaster;
        const ps = rc.options.metrics.spacing;
        const size = entity.size;

        const cwc = this._cwc = computeWallCollisions(
            position.x,
            position.y,
            v.x,
            v.y,
            size,
            ps,
            this._bCrashWall,
            (x0, y0) => rc.getCellPhys(x0 / ps | 0, y0 / ps | 0) !== 0
        );
        position.x += cwc.speed.x;
        position.y += cwc.speed.y;
        entity._inertia.x = cwc.speed.x;
        entity._inertia.y = cwc.speed.y;
    }
/**
     * smooth movement from current position to a new position
     * @param v
     */
smooth movement from current position to a new position
@param v
smooth movement from current position to a new position @param v
slide(v) {
        if (v.x === 0 && v.y === 0) {
            return;
        }
        const entity = this.entity;
        const engine = this.engine;
        const position = entity.position;
        const rc = engine.raycaster;
        const ps = rc.options.metrics.spacing;
        const size = entity.size;
        const cwc = this._cwc = computeWallCollisions(
            position.x,
            position.y,
            v.x,
            v.y,
            size,
            ps,
            this._bCrashWall,
            (x0, y0) => rc.getCellPhys(x0 / ps | 0, y0 / ps | 0) !== 0
        );
        position.x += cwc.speed.x;
        position.y += cwc.speed.y;
        entity._inertia.x = cwc.speed.x;
        entity._inertia.y = cwc.speed.y;
    }
slide ( v ) { if ( v . x === 0 && v . y === 0 ) { return ; } const entity = this . entity ; const engine = this . engine ; const position = entity . position ; const rc = engine . raycaster ; const ps = rc . options . metrics . spacing ; const size = entity . size ; const cwc = this . _cwc = computeWallCollisions ( position . x , position . y , v . x , v . y , size , ps , this . _bCrashWall , ( x0 , y0 ) => rc . getCellPhys ( x0 / ps | 0 , y0 / ps | 0 ) !== 0 ) ; position . x += cwc . speed . x ; position . y += cwc . speed . y ; entity . _inertia . x = cwc . speed . x ; entity . _inertia . y = cwc . speed . y ; }
smooth movement from current position to a new position
 @param v
smooth movement from current position to a new position @param v