Guest User

CollisionList Class

a guest
Apr 23rd, 2013
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.coreyoneil.collision
  2. {  
  3.     import flash.display.DisplayObject;
  4.     import com.coryoneil.collision.CollisionList
  5.    
  6.     public class CollisionList extends CDK
  7.     {
  8.         public function CollisionList(target, ... objs):void
  9.         {
  10.             addItem(target);
  11.            
  12.             for(var i:uint = 0; i < objs.length; i++)
  13.             {
  14.                 addItem(objs[i]);
  15.             }
  16.         }
  17.        
  18.         public function checkCollisions():Array
  19.         {
  20.             clearArrays();
  21.            
  22.             var NUM_OBJS:uint = objectArray.length;
  23.             var item1 = DisplayObject(objectArray[0]), item2:DisplayObject;
  24.             for(var i:uint = 1; i < NUM_OBJS; i++)
  25.             {
  26.                 item2 = DisplayObject(objectArray[i]);
  27.                    
  28.                 if(item1.hitTestObject(item2))
  29.                 {
  30.                     if((item2.width * item2.height) > (item1.width * item1.height))
  31.                     {
  32.                         objectCheckArray.push([item1,item2])
  33.                     }
  34.                     else
  35.                     {
  36.                         objectCheckArray.push([item2,item1]);
  37.                     }
  38.                 }
  39.             }
  40.            
  41.             NUM_OBJS = objectCheckArray.length;
  42.             for(i = 0; i < NUM_OBJS; i++)
  43.             {
  44.                 findCollisions(DisplayObject(objectCheckArray[i][0]), DisplayObject(objectCheckArray[i][1]));
  45.             }
  46.            
  47.             return objectCollisionArray;
  48.         }
  49.        
  50.         public function swapTarget(target):void
  51.         {
  52.             if(target is DisplayObject)
  53.             {
  54.                 objectArray[0] = target;
  55.             }
  56.             else
  57.             {
  58.                 throw new Error("Cannot swap target: " + target + " - item must be a Display Object.");
  59.             }
  60.         }
  61.        
  62.         public override function removeItem(obj):void
  63.         {
  64.             var loc:int = objectArray.indexOf(obj);
  65.             if(loc > 0)
  66.             {
  67.                 objectArray.splice(loc, 1);
  68.             }
  69.             else if(loc == 0)
  70.             {
  71.                 throw new Error("You cannot remove the target from CollisionList.  Use swapTarget to change the target.");
  72.             }
  73.             else
  74.             {
  75.                 throw new Error(obj + " could not be removed - object not found in item list.");
  76.             }
  77.         }
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment