home *** CD-ROM | disk | FTP | other *** search
- package com.simianlogic
- {
- import flash.events.Event;
- import flash.filters.DropShadowFilter;
- import flash.filters.GlowFilter;
- import flash.utils.getTimer;
- import org.cove.ape.CircleParticle;
- import org.cove.ape.Vector;
-
- public class growthSprite extends CircleParticle
- {
-
-
- public var growing:Boolean;
-
- public var lastVelocity:Vector;
-
- public var GROWTHRATE:Number = 0.5;
-
- public var myColor:uint = 16777215;
-
- public var birth:int = 0;
-
- public var dirty:Boolean = true;
-
- public var lastPosition:Vector;
-
- public function growthSprite(param1:Number, param2:Number, param3:Number, param4:uint = 16777215, param5:Boolean = false)
- {
- var _loc6_:Number = NaN;
- dirty = true;
- birth = 0;
- myColor = 16777215;
- GROWTHRATE = 0.5;
- _loc6_ = 100;
- if(param5)
- {
- _loc6_ = 1;
- }
- super(param1,param2,param3,false,_loc6_,0.25);
- myColor = param4;
- growing = param5;
- birth = getTimer();
- paint();
- }
-
- public function grow() : void
- {
- var _loc1_:int = 0;
- var _loc2_:int = 0;
- var _loc3_:Vector = null;
- var _loc4_:Vector = null;
- var _loc5_:Number = NaN;
- radius += GROWTHRATE + Math.sqrt((getTimer() - birth) / 1000);
- _loc1_ = Math.min(sprite.parent.mouseX,595 - radius / 2);
- _loc1_ = Math.max(5 + radius / 2,_loc1_);
- _loc2_ = Math.min(sprite.parent.mouseY,495 - radius / 2);
- _loc2_ = Math.max(105 + radius / 2,sprite.parent.mouseY);
- _loc3_ = new Vector(_loc1_,_loc2_);
- _loc5_ = (_loc4_ = _loc3_.minus(position)).magnitude();
- velocity = _loc4_.mult(1 / 5);
- dirty = true;
- }
-
- override public function update(param1:Number) : void
- {
- var _loc2_:Number = NaN;
- if(growing)
- {
- grow();
- }
- else
- {
- addMasslessForce(new Vector(0,2));
- }
- trace(position.x + " " + position.y);
- if(position.x < 5 || position.x > 595 || position.y > 495 || position.y < 5)
- {
- sprite.dispatchEvent(new Event("outOfBoundsEvent",true));
- trace("Out of bounds event dispatched!");
- }
- if(lastVelocity)
- {
- _loc2_ = new Vector(Math.abs(lastVelocity.x - velocity.x),Math.abs(lastVelocity.y - velocity.y)).magnitude();
- }
- if(lastVelocity != null && !growing && _loc2_ > 1)
- {
- if(_loc2_ > 1 && _loc2_ <= 2.5)
- {
- sprite.dispatchEvent(new Event("sound_bounce_soft",true));
- }
- if(_loc2_ > 2.5 && _loc2_ <= 7.5)
- {
- sprite.dispatchEvent(new Event("sound_bounce",true));
- }
- if(_loc2_ > 7.5)
- {
- sprite.dispatchEvent(new Event("sound_bounce_hard",true));
- }
- }
- lastVelocity = new Vector(velocity.x,velocity.y);
- lastPosition = new Vector(position.x,position.y);
- super.update(param1);
- }
-
- override public function paint() : void
- {
- var _loc1_:GlowFilter = null;
- var _loc2_:DropShadowFilter = null;
- super.paint();
- if(dirty)
- {
- _loc1_ = new GlowFilter(myColor,1.5,30,30);
- _loc2_ = new DropShadowFilter(Math.sqrt(radius),45,0,0.6,4,4,1,1,true);
- sprite.filters = [_loc2_];
- sprite.graphics.clear();
- sprite.graphics.lineStyle(1,0,1);
- sprite.graphics.beginFill(myColor,1);
- sprite.graphics.drawCircle(0,0,radius);
- sprite.graphics.endFill();
- dirty = false;
- }
- }
- }
- }
-