home *** CD-ROM | disk | FTP | other *** search
/ Champak 108 / jogo-disk-108.iso / Games / Titans / beastboy.swf / scripts / DefineSprite_379 / frame_1 / DoAction.as
Text File  |  2010-05-15  |  6KB  |  299 lines

  1. function cekbound(changeto)
  2. {
  3.    var newpw = r.twidth[changeto];
  4.    var newph = r.theight[changeto];
  5.    ok = 0;
  6.    var left = -99999;
  7.    var i = 0;
  8.    while(i < b.length)
  9.    {
  10.       var l = b[i];
  11.       if(r.y2 > l.y1 and r.y1 < l.y2)
  12.       {
  13.          if(p._x > l.x2 and l.x2 > left)
  14.          {
  15.             left = l.x2;
  16.          }
  17.       }
  18.       i++;
  19.    }
  20.    var right = 99999;
  21.    var i = 0;
  22.    while(i < b.length)
  23.    {
  24.       var l = b[i];
  25.       if(r.y2 > l.y1 and r.y1 < l.y2)
  26.       {
  27.          if(p._x < l.x1 and l.x1 < right)
  28.          {
  29.             right = l.x1;
  30.          }
  31.       }
  32.       i++;
  33.    }
  34.    var up = cekup();
  35.    var down = cekdown();
  36.    if(math.abs(left - right) > 2 * newpw and math.abs(up - down) > newph)
  37.    {
  38.       ok = 1;
  39.       xpos = p._x;
  40.       if(changeto == 3)
  41.       {
  42.          ypos = p._y - 50;
  43.       }
  44.       else
  45.       {
  46.          ypos = p._y - 1;
  47.       }
  48.       if(xpos - left < newpw)
  49.       {
  50.          xpos = left + newpw;
  51.       }
  52.       else if(right - xpos < newpw)
  53.       {
  54.          xpos = right - newpw;
  55.       }
  56.       if(ypos - up < newph)
  57.       {
  58.          ypos = up + newph;
  59.       }
  60.    }
  61.    if(ok)
  62.    {
  63.       return {x:xpos,y:ypos};
  64.    }
  65.    return 0;
  66. }
  67. function cekup()
  68. {
  69.    var up = -9999;
  70.    var i = 0;
  71.    while(i < b.length)
  72.    {
  73.       var l = b[i];
  74.       if(l.t == 0)
  75.       {
  76.          if(r.x2 > l.x1 and r.x1 < l.x2)
  77.          {
  78.             if(r.y2 >= l.y2 and l.y2 > up)
  79.             {
  80.                up = l.y2;
  81.             }
  82.          }
  83.       }
  84.       i++;
  85.    }
  86.    return up;
  87. }
  88. function cekdown()
  89. {
  90.    var down = 9999;
  91.    var i = 0;
  92.    while(i < b.length)
  93.    {
  94.       var l = b[i];
  95.       if(r.x2 > l.x1 and r.x1 < l.x2)
  96.       {
  97.          if(r.y2 <= l.y1 and l.y1 < down)
  98.          {
  99.             down = l.y1;
  100.          }
  101.       }
  102.       i++;
  103.    }
  104.    r.floatbelow = 0;
  105.    var i = 0;
  106.    while(i < c.length)
  107.    {
  108.       var l = c[i];
  109.       if(r.x2 > l.x1 and r.x1 < l.x2)
  110.       {
  111.          if(r.y2 <= l.y1 and l.y1 < down)
  112.          {
  113.             down = l.y1;
  114.             r.floatbelow = l.n;
  115.          }
  116.       }
  117.       i++;
  118.    }
  119.    return down;
  120. }
  121. movieclip.prototype.cekstep = function()
  122. {
  123.    if(!r.jump)
  124.    {
  125.       var land = 9999;
  126.       var i = 0;
  127.       while(i < b.length)
  128.       {
  129.          var l = b[i];
  130.          if(r.x2 > l.x1 and r.x1 < l.x2)
  131.          {
  132.             if(r.y2 == l.y1)
  133.             {
  134.                land = l.y1;
  135.             }
  136.          }
  137.          i++;
  138.       }
  139.       var i = 0;
  140.       while(i < c.length)
  141.       {
  142.          var l = c[i];
  143.          if(r.x2 > l.x1 and r.x1 < l.x2)
  144.          {
  145.             if(r.y2 == l.y1)
  146.             {
  147.                land = l.y1;
  148.             }
  149.          }
  150.          i++;
  151.       }
  152.       if(land == 9999)
  153.       {
  154.          r.onfloat = 0;
  155.          r.jump = 1;
  156.          r.vy = 100;
  157.       }
  158.    }
  159. };
  160. movieclip.prototype.cekleft = function(bumper)
  161. {
  162.    var wall = -99999;
  163.    var i = 0;
  164.    while(i < b.length)
  165.    {
  166.       var l = b[i];
  167.       if(r.y2 > l.y1 and r.y1 < l.y2)
  168.       {
  169.          if(p._x + r.pw > l.x2 + bumper and l.x2 + bumper > wall)
  170.          {
  171.             wall = l.x2 + bumper;
  172.          }
  173.       }
  174.       i++;
  175.    }
  176.    if(r.nx - r.pw < wall)
  177.    {
  178.       r.nx = wall + r.pw + 0.1;
  179.       r.x1 = r.nx - r.pw;
  180.       r.x2 = r.nx + r.pw;
  181.       r.xs = 0;
  182.    }
  183.    return wall;
  184. };
  185. movieclip.prototype.cekright = function(bumper)
  186. {
  187.    var wall = 99999;
  188.    var i = 0;
  189.    while(i < b.length)
  190.    {
  191.       var l = b[i];
  192.       if(r.y2 > l.y1 and r.y1 < l.y2)
  193.       {
  194.          if(p._x - r.pw < l.x1 - bumper and l.x1 - bumper < wall)
  195.          {
  196.             wall = l.x1 - bumper;
  197.          }
  198.       }
  199.       i++;
  200.    }
  201.    if(r.nx + r.pw > wall)
  202.    {
  203.       r.nx = wall - r.pw - 0.1;
  204.       r.x1 = r.nx - r.pw;
  205.       r.x2 = r.nx + r.pw;
  206.       r.xs = 0;
  207.    }
  208.    return wall;
  209. };
  210. movieclip.prototype.updatefloat = function()
  211. {
  212.    var i = 0;
  213.    while(i < c.length)
  214.    {
  215.       var l = c[i];
  216.       if(l.xs != 0)
  217.       {
  218.          var nx = l.x1 + l.xs;
  219.          if(nx < l.xmin)
  220.          {
  221.             nx = l.xmin;
  222.             l.xs = math.abs(l.xs);
  223.          }
  224.          if(nx > l.xmax)
  225.          {
  226.             nx = l.xmax;
  227.             l.xs = - math.abs(l.xs);
  228.          }
  229.          ldis = nx - l.x1;
  230.          l.x1 = nx;
  231.          l.x2 = l.x1 + l.w;
  232.          l.xc = l.x1 + 0.5 * l.w;
  233.          m[l.n]._x = l.x1;
  234.          if(r.onfloat == l.n)
  235.          {
  236.             r.nx = p._x + ldis;
  237.             r.x1 = p._x - r.pw;
  238.             r.x2 = p._x + r.pw;
  239.             if(ldis < 0)
  240.             {
  241.                cekleft();
  242.             }
  243.             else
  244.             {
  245.                cekright();
  246.             }
  247.             p._x = r.nx;
  248.          }
  249.       }
  250.       if(l.ys != 0)
  251.       {
  252.          var ny = l.y1 + l.ys;
  253.          if(ny < l.ymin)
  254.          {
  255.             ny = l.ymin;
  256.             l.ys = math.abs(l.ys);
  257.          }
  258.          if(ny > l.ymax)
  259.          {
  260.             ny = l.ymax;
  261.             l.ys = - math.abs(l.ys);
  262.          }
  263.          l.y1 = ny;
  264.          l.y2 = l.y1 + l.hi;
  265.          m[l.n]._y = l.y1;
  266.          if(r.onfloat == l.n)
  267.          {
  268.             r.y1 = l.y1 - r.ph;
  269.             r.y2 = l.y1;
  270.             r.x1 = p._x - r.pw;
  271.             r.x2 = p._x + r.pw;
  272.             if(l.ys < 0)
  273.             {
  274.                up = cekup();
  275.                if(r.y1 - l.ys < up)
  276.                {
  277.                   r.y1 = up + 0.1;
  278.                   r.y2 = up + r.ph;
  279.                   r.onfloat = 0;
  280.                   r.jump = 1;
  281.                }
  282.             }
  283.             else
  284.             {
  285.                down = cekdown();
  286.                if(r.y2 + l.ys > down)
  287.                {
  288.                   r.y2 = down;
  289.                   r.y1 = r.y2 - r.ph;
  290.                   r.onfloat = 0;
  291.                }
  292.             }
  293.             p._y = r.y2;
  294.          }
  295.       }
  296.       i++;
  297.    }
  298. };
  299.