home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / xwung.swf / scripts / com / lofiminds / gm / GameObject.as < prev    next >
Encoding:
Text File  |  2008-09-03  |  4.9 KB  |  180 lines

  1. package com.lofiminds.gm
  2. {
  3.    import flash.geom.ColorTransform;
  4.    
  5.    public class GameObject
  6.    {
  7.        
  8.       
  9.       public var hasColorTransform:Boolean = false;
  10.       
  11.       public var colorTransform:ColorTransform;
  12.       
  13.       public var depth:int;
  14.       
  15.       public var gravityY:Number = 0;
  16.       
  17.       public var vspeed:Number = 0;
  18.       
  19.       public var useCustomDraw:Boolean;
  20.       
  21.       public var image:GameImage;
  22.       
  23.       public var hspeed:Number = 0;
  24.       
  25.       public var image_speed:Number = 0;
  26.       
  27.       public var image_count:Number = 0;
  28.       
  29.       public var image_index:Number = 0;
  30.       
  31.       public var image_angle:Number = 0;
  32.       
  33.       public var x:Number = 0;
  34.       
  35.       public var y:Number = 0;
  36.       
  37.       public var friction:Number = 0;
  38.       
  39.       internal var collisionData:CollisionData;
  40.       
  41.       public function GameObject()
  42.       {
  43.          colorTransform = new ColorTransform();
  44.          collisionData = new CollisionData();
  45.          super();
  46.       }
  47.       
  48.       public function destroy() : void
  49.       {
  50.       }
  51.       
  52.       public function getClass() : Class
  53.       {
  54.          throw new Error("baseclass getClass() called, must override");
  55.       }
  56.       
  57.       public function update() : void
  58.       {
  59.          var _loc1_:Number = NaN;
  60.          if(image_speed != 0)
  61.          {
  62.             image_index += image_speed;
  63.             if(image_index >= image_count)
  64.             {
  65.                image_index -= image_count;
  66.                animationEnd();
  67.             }
  68.             else if(image_index < 0)
  69.             {
  70.                image_index += image_count;
  71.                animationEnd();
  72.             }
  73.          }
  74.          x += hspeed;
  75.          y += vspeed;
  76.          vspeed += gravityY;
  77.          if(friction != 0)
  78.          {
  79.             _loc1_ = getSpeed();
  80.             _loc1_ = Math.max(_loc1_ - friction,0);
  81.             setSpeedAndDirection(_loc1_,getDirection());
  82.          }
  83.       }
  84.       
  85.       public function onCollision(param1:CollisionContext) : void
  86.       {
  87.       }
  88.       
  89.       final public function getDirection() : Number
  90.       {
  91.          return 0 - Math.atan2(vspeed,hspeed);
  92.       }
  93.       
  94.       final public function setImage(param1:GameImage) : void
  95.       {
  96.          if(image == param1)
  97.          {
  98.             return;
  99.          }
  100.          image = param1;
  101.          image_count = param1.frameCount;
  102.       }
  103.       
  104.       public function set image_blend(param1:uint) : void
  105.       {
  106.          var _loc2_:uint = uint(param1 >> 16 & 255);
  107.          var _loc3_:uint = uint(param1 >> 8 & 255);
  108.          var _loc4_:uint = uint(param1 & 255);
  109.          colorTransform.redMultiplier = _loc2_ / 255;
  110.          colorTransform.greenMultiplier = _loc3_ / 255;
  111.          colorTransform.blueMultiplier = _loc4_ / 255;
  112.          hasColorTransform = true;
  113.       }
  114.       
  115.       final public function getSpeed() : Number
  116.       {
  117.          return Math.sqrt(hspeed * hspeed + vspeed * vspeed);
  118.       }
  119.       
  120.       final public function setSpeedAndDirection(param1:Number, param2:Number) : void
  121.       {
  122.          param2 = 0 - param2;
  123.          hspeed = Math.cos(param2) * param1;
  124.          vspeed = Math.sin(param2) * param1;
  125.       }
  126.       
  127.       public function onCustomDraw(param1:GameGraphics) : Boolean
  128.       {
  129.          return true;
  130.       }
  131.       
  132.       final public function motionAdd(param1:Number, param2:Number) : void
  133.       {
  134.          param1 = 0 - param1;
  135.          hspeed += Math.cos(param1) * param2;
  136.          vspeed += Math.sin(param1) * param2;
  137.       }
  138.       
  139.       final internal function prepareCollisionData() : void
  140.       {
  141.          var _loc3_:Number = NaN;
  142.          var _loc4_:Number = NaN;
  143.          var _loc5_:Number = NaN;
  144.          var _loc1_:CollisionData = this.collisionData;
  145.          var _loc2_:Number = _loc1_.lastAngle - image_angle;
  146.          if(Math.abs(_loc2_) > 0.05)
  147.          {
  148.             _loc1_.lastAngle = image_angle;
  149.             _loc1_.isAABB = image_angle == 0;
  150.             _loc3_ = 0 - image_angle;
  151.             _loc4_ = Math.sin(_loc3_);
  152.             _loc5_ = Math.cos(_loc3_);
  153.             _loc1_.obbAxisX.x = _loc5_;
  154.             _loc1_.obbAxisX.y = _loc4_;
  155.             _loc1_.obbAxisY.x = -_loc4_;
  156.             _loc1_.obbAxisY.y = _loc5_;
  157.          }
  158.          if(_loc1_.lastImage != this.image)
  159.          {
  160.             _loc1_.lastImage = this.image;
  161.             _loc1_.aabbRect.width = image.boundsWidth;
  162.             _loc1_.aabbRect.height = image.boundsHeight;
  163.             _loc1_.obbExtentX = image.boundsHalfWidth;
  164.             _loc1_.obbExtentY = image.boundsHalfHeight;
  165.          }
  166.          if(_loc1_.isAABB)
  167.          {
  168.             _loc1_.aabbRect.x = x - image.boundsHalfWidth;
  169.             _loc1_.aabbRect.y = y - image.boundsHalfHeight;
  170.          }
  171.          _loc1_.obbCenterX = x;
  172.          _loc1_.obbCenterY = y;
  173.       }
  174.       
  175.       public function animationEnd() : void
  176.       {
  177.       }
  178.    }
  179. }
  180.