home *** CD-ROM | disk | FTP | other *** search
/ Champak 110 / jogo-disk-110.iso / Games / tobby_sucuri.swf / scripts / frame_34 / DoAction.as
Text File  |  2008-11-12  |  4KB  |  139 lines

  1. function swimSame(nthis)
  2. {
  3.    var _loc1_ = this;
  4.    var _loc2_ = nthis;
  5.    _loc1_.myNum = _loc2_.myNum;
  6.    _loc1_.px = _loc2_.px;
  7.    _loc1_.py = _loc2_.py;
  8.    _loc1_.limitHx = _loc2_._width / 2;
  9.    _loc1_.limitHy = _loc2_.limitHy;
  10.    _loc1_.ParentMC = _loc2_;
  11.    0;
  12.    _loc1_.nv = undefined;
  13.    _loc1_.initV();
  14.    _loc1_.rotation = 0;
  15.    _loc1_.pCnt = 0;
  16.    _loc1_.oldSpeed = _loc1_.speed;
  17.    _loc1_.attackCnt = 0;
  18. }
  19. swimSame.prototype.initLoc = function(nx, ny)
  20. {
  21.    this.px = nx;
  22.    this.py = ny;
  23. };
  24. swimSame.prototype.swim = function()
  25. {
  26.    var _loc1_ = this;
  27.    var _loc2_ = _root;
  28.    if(_loc1_.attackCnt == 0)
  29.    {
  30.       if(_loc2_.poiMC.stat == "inWater")
  31.       {
  32.          var _loc3_ = Math.abs(_loc2_.poiMC._y - _loc1_.py);
  33.          var d2 = Math.abs(_loc2_.poiMC._x - _loc1_.px);
  34.          if(_loc3_ < 40 && d2 > 80)
  35.          {
  36.             _loc1_.initV2();
  37.             _loc1_.attackCnt = 10;
  38.          }
  39.       }
  40.    }
  41.    else
  42.    {
  43.       if(_loc1_.ParentMC.hitTest(_loc2_.poiMC.anmMC.hitMC))
  44.       {
  45.          _loc2_.poiMC.sameAttack(25);
  46.       }
  47.       _loc1_.attackCnt = _loc1_.attackCnt - 1;
  48.    }
  49.    _loc1_.px += _loc1_.vx * _loc1_.speed;
  50.    _loc1_.py += _loc1_.vy * _loc1_.speed;
  51.    _loc1_.speed *= 0.99;
  52.    if(_loc1_.speed < 2)
  53.    {
  54.       _loc1_.initV();
  55.    }
  56.    _loc1_.wallEvasion();
  57.    if(_loc1_.vx < 0)
  58.    {
  59.       _loc1_.ParentMC._xscale = Math.abs(_loc1_.ParentMC._xscale);
  60.    }
  61.    else
  62.    {
  63.       _loc1_.ParentMC._xscale = - Math.abs(_loc1_.ParentMC._xscale);
  64.    }
  65.    return [_loc1_.px,_loc1_.py,_loc1_.rotation];
  66. };
  67. swimSame.prototype.wallEvasion = function()
  68. {
  69.    var _loc1_ = this;
  70.    var _loc2_ = _root;
  71.    if(_loc1_.px <= _loc2_.limitLeft + _loc1_.limitHx)
  72.    {
  73.       _loc1_.px = _loc2_.limitLeft + _loc1_.limitHx;
  74.       _loc1_.vx = - _loc1_.vx;
  75.       _loc1_.ParentMC.anmMC.gotoAndPlay("swim");
  76.    }
  77.    if(_loc1_.px >= _loc2_.limitRight - _loc1_.limitHx)
  78.    {
  79.       _loc1_.px = _loc2_.limitRight - _loc1_.limitHx;
  80.       _loc1_.vx = - _loc1_.vx;
  81.       _loc1_.ParentMC.anmMC.gotoAndPlay("swim");
  82.    }
  83.    if(_loc1_.py <= _loc2_.limitTop + _loc1_.limitHy)
  84.    {
  85.       _loc1_.py = _loc2_.limitTop + _loc1_.limitHy;
  86.       _loc1_.vy = - _loc1_.vy;
  87.       _loc1_.ParentMC.anmMC.gotoAndPlay("swim");
  88.    }
  89.    if(_loc1_.py >= _loc2_.limitBottom - _loc1_.limitHy)
  90.    {
  91.       _loc1_.py = _loc2_.limitBottom - _loc1_.limitHy;
  92.       _loc1_.vy = - _loc1_.vy;
  93.       _loc1_.ParentMC.anmMC.gotoAndPlay("swim");
  94.    }
  95. };
  96. swimSame.prototype.initV = function()
  97. {
  98.    var _loc3_ = this;
  99.    var _loc2_ = _root.randomInt(30) - 15;
  100.    var _loc1_ = _root.randomInt(20) - 10;
  101.    _loc3_.speed = Math.sqrt(_loc2_ * _loc2_ + _loc1_ * _loc1_);
  102.    var nv = _loc3_.normalize(_loc2_,_loc1_);
  103.    _loc3_.vx = nv.x;
  104.    _loc3_.vy = nv.y;
  105.    _loc3_.ParentMC.anmMC.gotoAndPlay("swim");
  106. };
  107. swimSame.prototype.initV2 = function()
  108. {
  109.    var _loc1_ = this;
  110.    var nvx = _root.poiMC._x - _loc1_.px;
  111.    var _loc3_ = _root.poiMC._y - _loc1_.py;
  112.    _loc1_.speed = 20;
  113.    var _loc2_ = _loc1_.normalize(nvx,_loc3_);
  114.    _loc1_.vx = _loc2_.x;
  115.    _loc1_.vy = _loc2_.y;
  116.    _loc1_.ParentMC.anmMC.gotoAndPlay("swim2");
  117. };
  118. swimSame.prototype.normalize = function(nx, ny)
  119. {
  120.    var _loc2_ = ny;
  121.    var _loc3_ = nx;
  122.    var _loc1_ = Math.sqrt(_loc3_ * _loc3_ + _loc2_ * _loc2_);
  123.    if(_loc1_ > 0)
  124.    {
  125.       _loc3_ /= _loc1_;
  126.       _loc2_ /= _loc1_;
  127.    }
  128.    else
  129.    {
  130.       _loc3_ = 0;
  131.       _loc2_ = 0;
  132.    }
  133.    var nv = new Object();
  134.    nv.x = _loc3_;
  135.    nv.y = _loc2_;
  136.    nv.p = _loc1_;
  137.    return nv;
  138. };
  139.