Package | sekati.collisions |
Class | public class CollisionDetector |
Inheritance | CollisionDetector AbstractCollisionDetector flash.events.EventDispatcher |
var detector : CollisionDetector = new CollisionDetector( target, A, B, C );
A
colliding with target
B
colliding with target
C
colliding with target
A
colliding with B.
You may apply an alphaThreshold
to prevent collisions on perimeter alphas, prevent certain colors
from registering collisions with excludeColor()
or aquire the angle of the collision by setting the
returnAngleType
to one of the provided CollisionAngle
's.
detector.alphaThreshold = 0.5; // areas with an alpha >= 0.5 will create a collision. detector.excludeColor( 0xffff0000 ); // The 32-bit color to exclude from collisions. detector.returnAngleType = CollisionAngle.RADIAN; // would return the collision angle as radian in the Collision instance
You may choose to use the built-in frame-based monitoring function to check & respond to Collision
's:
private function collisionHandler( e : CollisionEvent ) : void { var list = e.collisions; // a TypedArray containing one or more Collision instances. for ( var i : int = 0; i < list.length; i++) { var collision : Collision = list[i] as Collision; trace("Collision detected: " + collision.object1 + " & " + collision.object2 + " (angle: " + collision.angle + ", overlap: " + collision.overlap + ")"); } } detector.addEventListener( CollisionEvent.COLLISION, collisionHandler ); detector.startMonitor();
See also
Method | Defined by | ||
---|---|---|---|
CollisionDetector(target:DisplayObject, ... objs)
CollisionDetector Constructor
| CollisionDetector | ||
addItem(obj:DisplayObject):void
Add a
DisplayObject to the list of objects to check for collisions. | AbstractCollisionDetector | ||
Check for collisions with the
target , if an object collided it is recorded and returned by
checkCollisions() as an TypedArray of Collision objects. | CollisionDetector | ||
excludeColor(color32:uint, alphaRange:uint = 255, redRange:uint = 20, greenRange:uint = 20, blueRange:uint = 20):void
Defines a color or color range to exclude from collision detections.
| AbstractCollisionDetector | ||
removeExcludeColor(color32:uint):void
Removes the color specified from the list of colors to exclude from collision detections.
| AbstractCollisionDetector | ||
removeItem(obj:DisplayObject):void
Remove a
DisplayObject from the list of objects to check for collisions. | CollisionDetector | ||
startMonitor():void
Start frame-based automatic collision monitoring.
| AbstractCollisionDetector | ||
stopMonitor():void
Stop frame-based automatic collision monitoring.
| AbstractCollisionDetector | ||
swapTarget(target:DisplayObject):void
Replaces the
target DisplayObject with the DisplayObject specified. | CollisionDetector |
CollisionDetector | () | constructor |
public function CollisionDetector(target:DisplayObject, ... objs)
CollisionDetector Constructor
Parameterstarget:DisplayObject — object to detect collisions upon.
|
|
... objs — which the target may collide with.
|
checkCollisions | () | method |
public override function checkCollisions():TypedArray
Check for collisions with the target
, if an object collided it is recorded and returned by
checkCollisions()
as an TypedArray of Collision
objects.
TypedArray |
removeItem | () | method |
public override function removeItem(obj:DisplayObject):void
Remove a DisplayObject
from the list of objects to check for collisions.
obj:DisplayObject |
swapTarget | () | method |
public function swapTarget(target:DisplayObject):void
Replaces the target DisplayObject
with the DisplayObject
specified.
target:DisplayObject |