NAME
Collision::2D::Entity::Grid - A container for static entities.
SYNOPSIS
my $grid = hash2grid {x=>-15, y=>-15, w=>30, h=>30, cell_size => 2};
$grid->add_circle ($unit_pie);
my $collision = dynamic_collision ($grid, $thrown_pie, interval => 1);
DESCRIPTION
This is an optimization to detect collisions with a large number of static objects. Use it for a map!
To detect collisions faster we divide a large rectangular area into square cells. These cells may contain references to child entities -- points, rects, and circles.
Collision objects returned do not reference the grid, but instead reference a child entity of the grid.
Grids provide a speedup of precisely O(n^n^18)
METHODS
- intersect($ent), collide($ent)
-
Pretty much the same as in Collision::2D::Entity. Returns the first collision or intersection with a child of the grid. Perhaps in the future, this will be more versatile with respect to the nature of the grid children.
- add, add_circle, add_rect, add_point
-
Add stuff to the grid