home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Classicos / Arkanoid Flash.swf / scripts / frame_11 / DoAction.as
Encoding:
Text File  |  2006-06-13  |  7.4 KB  |  234 lines

  1. i = "1";
  2. m = (ball_yB - ball_yA) / (ball_xB - ball_xA);
  3. c = ball_yA - m * ball_xA;
  4. row = int((ball_yA - edge_rows) / "20");
  5. col = int((ball_xA - edge_cols) / "40");
  6. H_collision_line = (row + "1") * "20" + "4";
  7. if(ball_yA < H_collision_line and ball_yB >= H_collision_line)
  8. {
  9.    set("ball_y" add i,H_collision_line);
  10.    set("ball_x" add i,(eval("ball_y" add i) - c) / m);
  11.    i += "1";
  12. }
  13. eol = "0";
  14. while(eol == "0")
  15. {
  16.    H_collision_line += "20";
  17.    if(ball_yB < H_collision_line)
  18.    {
  19.       eol = "1";
  20.    }
  21.    else
  22.    {
  23.       set("ball_y" add i,H_collision_line);
  24.       set("ball_x" add i,(eval("ball_y" add i) - c) / m);
  25.       i += "1";
  26.    }
  27. }
  28. V_collision_line = (col + "1") * "40" + "4";
  29. if(ball_xA < V_collision_line and ball_xB >= V_collision_line)
  30. {
  31.    set("ball_x" add i,V_collision_line);
  32.    set("ball_y" add i,m * eval("ball_x" add i) + c);
  33.    i += "1";
  34. }
  35. eol = "0";
  36. while(eol == "0")
  37. {
  38.    V_collision_line += "40";
  39.    if(ball_xB < V_collision_line)
  40.    {
  41.       eol = "1";
  42.    }
  43.    else
  44.    {
  45.       set("ball_x" add i,V_collision_line);
  46.       set("ball_y" add i,m * eval("ball_x" add i) + c);
  47.       i += "1";
  48.    }
  49. }
  50. noOfpts = i - "1";
  51. j = "1";
  52. while(noOfpts >= j)
  53. {
  54.    set("manhattan" add j,(eval("ball_x" add j) - ball_xA) * (eval("ball_x" add j) - ball_xA) + (eval("ball_y" add j) - ball_yA) * (eval("ball_y" add j) - ball_yA));
  55.    set("dist" add j,"0");
  56.    j += "1";
  57. }
  58. n = "1";
  59. while(noOfpts >= n)
  60. {
  61.    d = "1";
  62.    set("dist" add d,eval("manhattan" add n));
  63.    while(noOfpts - "1" >= d)
  64.    {
  65.       if(eval("dist" add (d + "1")) < eval("dist" add d))
  66.       {
  67.          distTemp = eval("dist" add d);
  68.          set("dist" add d,eval("dist" add (d + "1")));
  69.          set("dist" add (d + "1"),distTemp);
  70.       }
  71.       d += "1";
  72.    }
  73.    n += "1";
  74. }
  75. d = "1";
  76. while(noOfpts >= d)
  77. {
  78.    n = "1";
  79.    while(noOfpts >= n)
  80.    {
  81.       if(eval("dist" add d) == eval("manhattan" add n))
  82.       {
  83.          pt_col = int((eval("ball_x" add n) - edge_cols) / "40");
  84.          pt_row = int((eval("ball_y" add n) - edge_rows) / "20");
  85.          T_collision_line = (pt_row + "1") * "20" + "4";
  86.          L_collision_line = (pt_col + "1") * "40" + "4";
  87.          bat_x = getProperty("/bat", _X);
  88.          bat_left = bat_x - batWidth / "2";
  89.          bat_right = bat_x + batWidth / "2";
  90.          bat_collision_line = "390" - ballRadius;
  91.          wall_collision_line = "410" - ballRadius;
  92.          if(eval("ball_y" add n) == bat_collision_line)
  93.          {
  94.             if(eval("ball_x" add n) >= bat_left and bat_right >= eval("ball_x" add n))
  95.             {
  96.                if(eval("ball_x" add n) >= bat_x + int("2" / "6" * batWidth))
  97.                {
  98.                   vector_x = "4";
  99.                   vector_y = - "1";
  100.                }
  101.                else if(eval("ball_x" add n) >= bat_x + int("1" / "6" * batWidth))
  102.                {
  103.                   vector_x = "3";
  104.                   vector_y = - "3";
  105.                }
  106.                else if(eval("ball_x" add n) >= bat_x)
  107.                {
  108.                   vector_x = "1";
  109.                   vector_y = - "4";
  110.                }
  111.                else if(bat_x - int("2" / "6" * batWidth) >= eval("ball_x" add n))
  112.                {
  113.                   vector_x = - "4";
  114.                   vector_y = - "1";
  115.                }
  116.                else if(bat_x - int("1" / "6" * batWidth) >= eval("ball_x" add n))
  117.                {
  118.                   vector_x = - "3";
  119.                   vector_y = - "3";
  120.                }
  121.                else if(bat_x >= eval("ball_x" add n))
  122.                {
  123.                   vector_x = - "1";
  124.                   vector_y = - "4";
  125.                }
  126.                tellTarget("/soundFX")
  127.                {
  128.                   gotoAndStop("hit");
  129.                   play();
  130.                }
  131.                score += addBatScore;
  132.                ball_yB = eval("ball_y" add n);
  133.                ball_xB = eval("ball_x" add n);
  134.                d = noOfpts;
  135.             }
  136.          }
  137.          else if(eval("ball_y" add n) == T_collision_line)
  138.          {
  139.             isVisible1 = getProperty("/brick" add pt_col add (pt_row + "1"), _currentframe);
  140.             isVisible2 = getProperty("/brick" add (pt_col + "1") add (pt_row + "1"), _currentframe);
  141.             if(isVisible1 == "1" or isVisible1 == "2" or isVisible1 == "3")
  142.             {
  143.                tellTarget("/soundFX")
  144.                {
  145.                   gotoAndStop("hitBrick");
  146.                   play();
  147.                }
  148.                brickNo = pt_col add (pt_row + "1");
  149.                tellTarget("/brick" add pt_col add (pt_row + "1"))
  150.                {
  151.                   nextFrame();
  152.                }
  153.                vector_y = - vector_y;
  154.                ball_yB = eval("ball_y" add n);
  155.                ball_xB = eval("ball_x" add n);
  156.                d = noOfpts;
  157.             }
  158.             else if((isVisible2 == "1" or isVisible2 == "2" or isVisible2 == "3") and eval("ball_x" add n) >= L_collision_line)
  159.             {
  160.                tellTarget("/soundFX")
  161.                {
  162.                   gotoAndStop("hitBrick");
  163.                   play();
  164.                }
  165.                brickNo = pt_col + "1" add (pt_row + "1");
  166.                tellTarget("/brick" add (pt_col + "1") add (pt_row + "1"))
  167.                {
  168.                   nextFrame();
  169.                }
  170.                vector_y = - vector_y;
  171.                ball_yB = eval("ball_y" add n);
  172.                ball_xB = eval("ball_x" add n);
  173.                d = noOfpts;
  174.             }
  175.          }
  176.          if(eval("ball_x" add n) == wall_collision_line)
  177.          {
  178.             tellTarget("/soundFX")
  179.             {
  180.                gotoAndStop("hit");
  181.                play();
  182.             }
  183.             score += addWallScore;
  184.             vector_x = - vector_x;
  185.             ball_xB = eval("ball_x" add n);
  186.             ball_yB = eval("ball_y" add n);
  187.             d = noOfpts;
  188.          }
  189.          else if(eval("ball_x" add n) == L_collision_line)
  190.          {
  191.             isVisible1 = getProperty("/brick" add (pt_col + "1") add pt_row, _currentframe);
  192.             isVisible2 = getProperty("/brick" add (pt_col + "1") add (pt_row + "1"), _currentframe);
  193.             if(isVisible1 == "1" or isVisible1 == "2" or isVisible1 == "3")
  194.             {
  195.                tellTarget("/soundFX")
  196.                {
  197.                   gotoAndStop("hitBrick");
  198.                   play();
  199.                }
  200.                brickNo = pt_col + "1" add pt_row;
  201.                tellTarget("/brick" add (pt_col + "1") add pt_row)
  202.                {
  203.                   nextFrame();
  204.                }
  205.                vector_x = - vector_x;
  206.                ball_xB = eval("ball_x" add n);
  207.                ball_yB = eval("ball_y" add n);
  208.                d = noOfpts;
  209.             }
  210.             else if((isVisible2 == "1" or isVisible2 == "2" or isVisible2 == "3") and eval("ball_y" add n) >= T_collision_line)
  211.             {
  212.                tellTarget("/soundFX")
  213.                {
  214.                   gotoAndStop("hitBrick");
  215.                   play();
  216.                }
  217.                brickNo = pt_col + "1" add (pt_row + "1");
  218.                tellTarget("/brick" add (pt_col + "1") add (pt_row + "1"))
  219.                {
  220.                   nextFrame();
  221.                }
  222.                vector_x = - vector_x;
  223.                ball_xB = eval("ball_x" add n);
  224.                ball_yB = eval("ball_y" add n);
  225.                d = noOfpts;
  226.             }
  227.          }
  228.          n = noOfpts;
  229.       }
  230.       n += "1";
  231.    }
  232.    d += "1";
  233. }
  234.