home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / filler.swf / scripts / com / simianlogic / growthSprite.as < prev    next >
Encoding:
Text File  |  2008-09-02  |  3.9 KB  |  126 lines

  1. package com.simianlogic
  2. {
  3.    import flash.events.Event;
  4.    import flash.filters.DropShadowFilter;
  5.    import flash.filters.GlowFilter;
  6.    import flash.utils.getTimer;
  7.    import org.cove.ape.CircleParticle;
  8.    import org.cove.ape.Vector;
  9.    
  10.    public class growthSprite extends CircleParticle
  11.    {
  12.        
  13.       
  14.       public var growing:Boolean;
  15.       
  16.       public var lastVelocity:Vector;
  17.       
  18.       public var GROWTHRATE:Number = 0.5;
  19.       
  20.       public var myColor:uint = 16777215;
  21.       
  22.       public var birth:int = 0;
  23.       
  24.       public var dirty:Boolean = true;
  25.       
  26.       public var lastPosition:Vector;
  27.       
  28.       public function growthSprite(param1:Number, param2:Number, param3:Number, param4:uint = 16777215, param5:Boolean = false)
  29.       {
  30.          var _loc6_:Number = NaN;
  31.          dirty = true;
  32.          birth = 0;
  33.          myColor = 16777215;
  34.          GROWTHRATE = 0.5;
  35.          _loc6_ = 100;
  36.          if(param5)
  37.          {
  38.             _loc6_ = 1;
  39.          }
  40.          super(param1,param2,param3,false,_loc6_,0.25);
  41.          myColor = param4;
  42.          growing = param5;
  43.          birth = getTimer();
  44.          paint();
  45.       }
  46.       
  47.       public function grow() : void
  48.       {
  49.          var _loc1_:int = 0;
  50.          var _loc2_:int = 0;
  51.          var _loc3_:Vector = null;
  52.          var _loc4_:Vector = null;
  53.          var _loc5_:Number = NaN;
  54.          radius += GROWTHRATE + Math.sqrt((getTimer() - birth) / 1000);
  55.          _loc1_ = Math.min(sprite.parent.mouseX,595 - radius / 2);
  56.          _loc1_ = Math.max(5 + radius / 2,_loc1_);
  57.          _loc2_ = Math.min(sprite.parent.mouseY,495 - radius / 2);
  58.          _loc2_ = Math.max(105 + radius / 2,sprite.parent.mouseY);
  59.          _loc3_ = new Vector(_loc1_,_loc2_);
  60.          _loc5_ = (_loc4_ = _loc3_.minus(position)).magnitude();
  61.          velocity = _loc4_.mult(1 / 5);
  62.          dirty = true;
  63.       }
  64.       
  65.       override public function update(param1:Number) : void
  66.       {
  67.          var _loc2_:Number = NaN;
  68.          if(growing)
  69.          {
  70.             grow();
  71.          }
  72.          else
  73.          {
  74.             addMasslessForce(new Vector(0,2));
  75.          }
  76.          trace(position.x + " " + position.y);
  77.          if(position.x < 5 || position.x > 595 || position.y > 495 || position.y < 5)
  78.          {
  79.             sprite.dispatchEvent(new Event("outOfBoundsEvent",true));
  80.             trace("Out of bounds event dispatched!");
  81.          }
  82.          if(lastVelocity)
  83.          {
  84.             _loc2_ = new Vector(Math.abs(lastVelocity.x - velocity.x),Math.abs(lastVelocity.y - velocity.y)).magnitude();
  85.          }
  86.          if(lastVelocity != null && !growing && _loc2_ > 1)
  87.          {
  88.             if(_loc2_ > 1 && _loc2_ <= 2.5)
  89.             {
  90.                sprite.dispatchEvent(new Event("sound_bounce_soft",true));
  91.             }
  92.             if(_loc2_ > 2.5 && _loc2_ <= 7.5)
  93.             {
  94.                sprite.dispatchEvent(new Event("sound_bounce",true));
  95.             }
  96.             if(_loc2_ > 7.5)
  97.             {
  98.                sprite.dispatchEvent(new Event("sound_bounce_hard",true));
  99.             }
  100.          }
  101.          lastVelocity = new Vector(velocity.x,velocity.y);
  102.          lastPosition = new Vector(position.x,position.y);
  103.          super.update(param1);
  104.       }
  105.       
  106.       override public function paint() : void
  107.       {
  108.          var _loc1_:GlowFilter = null;
  109.          var _loc2_:DropShadowFilter = null;
  110.          super.paint();
  111.          if(dirty)
  112.          {
  113.             _loc1_ = new GlowFilter(myColor,1.5,30,30);
  114.             _loc2_ = new DropShadowFilter(Math.sqrt(radius),45,0,0.6,4,4,1,1,true);
  115.             sprite.filters = [_loc2_];
  116.             sprite.graphics.clear();
  117.             sprite.graphics.lineStyle(1,0,1);
  118.             sprite.graphics.beginFill(myColor,1);
  119.             sprite.graphics.drawCircle(0,0,radius);
  120.             sprite.graphics.endFill();
  121.             dirty = false;
  122.          }
  123.       }
  124.    }
  125. }
  126.