home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Beez.swf / scripts / core / objects / BonusBall.as < prev    next >
Encoding:
Text File  |  2008-09-03  |  3.5 KB  |  117 lines

  1. package core.objects
  2. {
  3.    import Box2D.Common.Math.b2Vec2;
  4.    import caurina.transitions.Tweener;
  5.    import core.events.CoreEvent;
  6.    import flash.display.Sprite;
  7.    import flash.geom.Point;
  8.    import flash.media.Sound;
  9.    
  10.    public class BonusBall extends Ball
  11.    {
  12.       
  13.       public static const POWERUP:String = "BonusPowerup";
  14.       
  15.       public static const ATTACH:String = "BonusAttach";
  16.       
  17.       public static const INVERSE:String = "BonusInverse";
  18.       
  19.       public static const ELASTIC:String = "Elasticity";
  20.       
  21.       public static const FREEZE:String = "BonusFreeze";
  22.       
  23.       public static const PUSH_FIELD:String = "BonusPushField";
  24.        
  25.       
  26.       public var bonusDef:BonusDef;
  27.       
  28.       private var sndBonusPowerup:Sound;
  29.       
  30.       public function BonusBall(def:BonusDef)
  31.       {
  32.          bonusDef = def;
  33.          super(def);
  34.       }
  35.       
  36.       override protected function init() : void
  37.       {
  38.          super.init();
  39.          initSounds();
  40.       }
  41.       
  42.       protected function animComplete() : void
  43.       {
  44.       }
  45.       
  46.       public function bonusCollect() : void
  47.       {
  48.          isDead = true;
  49.          dispatchEvent(new CoreEvent(CoreEvent.BONUS_COLLECT,this));
  50.          var animSkin:Sprite = createSkin();
  51.          animSkin.x = skin.x;
  52.          animSkin.y = skin.y;
  53.          var b2PlayerPos:b2Vec2 = engine.playerBall.getBody().GetPosition();
  54.          var playerPos:Point = new Point(b2PlayerPos.x * engine.m_physScale,b2PlayerPos.y * engine.m_physScale);
  55.          Tweener.addTween(animSkin,{
  56.             "scaleX":1.5,
  57.             "scaleY":1.5,
  58.             "rotation":60,
  59.             "time":0.3,
  60.             "transition":"easeoutquad"
  61.          });
  62.          Tweener.addTween(animSkin,{
  63.             "scaleX":0,
  64.             "scaleY":0,
  65.             "x":playerPos.x,
  66.             "y":playerPos.y,
  67.             "rotation":-180,
  68.             "delay":0.4,
  69.             "time":0.5,
  70.             "transition":"easeoutquad",
  71.             "onComplete":animComplete
  72.          });
  73.       }
  74.       
  75.       override protected function createSkin() : Sprite
  76.       {
  77.          var className:String = null;
  78.          switch(bonusDef.type)
  79.          {
  80.             case BonusBall.FREEZE:
  81.                className = "BonusFreezeAsset";
  82.                break;
  83.             case BonusBall.POWERUP:
  84.                className = "BonusPowerupAsset";
  85.                break;
  86.             case BonusBall.PUSH_FIELD:
  87.                className = "BonusPushFieldAsset";
  88.                break;
  89.             case BonusBall.ATTACH:
  90.                className = "BonusAttachAsset";
  91.                break;
  92.             case BonusBall.ELASTIC:
  93.                className = "BonusElasticAsset";
  94.                break;
  95.             case BonusBall.INVERSE:
  96.                className = "BonusInverseAsset";
  97.          }
  98.          var SkinClass:Class = engine.assets.getAssetClass(className);
  99.          var skin:Sprite = new SkinClass();
  100.          skin.width = skin.height = ballDef.r * 2;
  101.          engine.canvas.playerContainer.addChild(skin);
  102.          return skin;
  103.       }
  104.       
  105.       override protected function initSounds() : void
  106.       {
  107.          var BonusPowerupClass:Class = engine.assets.getAssetClass("SndPowerupBonus");
  108.          sndBonusPowerup = new BonusPowerupClass();
  109.       }
  110.       
  111.       protected function playSound() : void
  112.       {
  113.          engine.sndChannel = sndBonusPowerup.play(0,0,engine.sndTransform);
  114.       }
  115.    }
  116. }
  117.