• <option id="kikm0"><source id="kikm0"></source></option>
  • 金沙娱东城官网

    Crafty.map

    Functions related with querying entities.

    Methods

    Back to top

    Crafty.map.boundaries()

    public Object Crafty.map.boundaries()
    [Returns]

    An object with the following structure, which represents an MBR which contains all entities

    Return a copy of the minimum bounding rectangle encompassing all entities.

    {
      min: {
        x: val_x,
        y: val_y
      },
      max: {
        x: val_x,
        y: val_y
      }
    }
    Back to top

    Crafty.map.insert()

    public Object Crafty.map.insert(Object obj[, Object entry])
    obj

    An entity to be inserted.

    entry

    An existing entry object to reuse. (Optional)

    [Returns]

    An object representing this object's entry in the HashMap

    obj is inserted in '.map' of the corresponding broad phase cells. An object of the following fields is returned.

    {
      keys: the object that keep track of cells
      obj: The inserted object
      map: the HashMap object
    }
    Back to top

    Crafty.map.refresh()

    public void Crafty.map.refresh(Entry entry)
    entry

    An entry to update

    Update an entry's keys, and its position in the broad phrase map.

    Example

    Crafty.map.refresh(e);
    Back to top

    Crafty.map.remove()

    public void Crafty.map.remove(Entry entry)
    entry

    An entry to remove from the hashmap

    Remove an entry from the broad phase map.

    Example

    Crafty.map.remove(e);
    Back to top

    Crafty.map.traverseRay()

    public void Crafty.map.traverseRay(Object origin, Object direction, Function callback)
    origin

    the point of origin from which the ray will be cast. The object must contain the properties _x and _y.

    direction

    the direction the ray will be cast. It must be normalized. The object must contain the properties x and y.

    callback

    a callback that will be called for each object that is encountered along the ray. This function is called with two arguments: The first one represents the object encountered; the second one represents the distance up to which all objects have been reported so far. The callback can return a truthy value in order to stop the traversal early.

    Traverse the spatial map in the direction of the supplied ray.

    Given the origin and direction the ray is cast and the callback is called for each object encountered in map cells traversed by the ray.

    The callback is called for each object that may be intersected by the ray. Whether an actual intersection occurs shall be determined by the callback's implementation.

    Example

    Crafty.e("2D")
          .setName('First entity')
          .attr({x: 0, y: 0, w: 10, h: 10});
    
    Crafty.e("2D")
          .setName('Second entity')
          .attr({x: 20, y: 20, w: 10, h: 10});
    
    var origin = {_x: -25, _y: -25};
    var direction = new Crafty.math.Vector2D(1, 1).normalize();
    
    Crafty.map.traverseRay(origin, direction, function(ent, processedDistance) {
      Crafty.log('Encountered entity named', ent.getName()); // logs 'First entity'
      Crafty.log('All entities up to', processedDistance, 'px away have been reported thus far.');
      Crafty.log('Stopping traversal after encountering the first entity.');
      return true;
    });
    Back to top

    Crafty.map.unfilteredSearch()

    public Array Crafty.map.search(Object rect[, Array results])
    rect

    the rectangular region to search for entities. This object must contain the properties _x,_y,_w,_h.

    results

    If passed, entities found will be appended to this array.

    [Returns]

    a (possibly empty) array of entities that have been found in the given region

    Do a search for entities in the given region. Returned entities are not guaranteed to overlap with the given region, and the results may contain duplicates.

    This method is intended to be used as the first step of a more complex search. More common use cases should use Crafty.map.search, which filters the results.

    See Also

    金沙娱东城官网