home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Classicos / Arkanoid Flash.swf / scripts / frame_7 / DoAction.as
Encoding:
Text File  |  2006-06-13  |  6.2 KB  |  199 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(H_collision_line < ball_yA and H_collision_line >= ball_yB)
  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(H_collision_line < ball_yB)
  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.          B_collision_line = (pt_row + "1") * "20" - "4";
  86.          L_collision_line = (pt_col + "1") * "40" + "4";
  87.          wall_collision_line = "410" - ballRadius;
  88.          ceiling_collision_line = "10" + ballRadius;
  89.          if(eval("ball_y" add n) == ceiling_collision_line)
  90.          {
  91.             tellTarget("/soundFX")
  92.             {
  93.                gotoAndStop("hit");
  94.                play();
  95.             }
  96.             score += addWallScore;
  97.             vector_y = - vector_y;
  98.             ball_yB = eval("ball_y" add n);
  99.             ball_xB = eval("ball_x" add n);
  100.             d = noOfpts;
  101.          }
  102.          else if(eval("ball_y" add n) == B_collision_line)
  103.          {
  104.             isVisible1 = getProperty("/brick" add pt_col add (pt_row - "1"), _currentframe);
  105.             isVisible2 = getProperty("/brick" add (pt_col + "1") add (pt_row - "1"), _currentframe);
  106.             if(isVisible1 == "1" or isVisible1 == "2" or isVisible1 == "3")
  107.             {
  108.                tellTarget("/soundFX")
  109.                {
  110.                   gotoAndStop("hitBrick");
  111.                   play();
  112.                }
  113.                brickNo = pt_col add (pt_row - "1");
  114.                tellTarget("/brick" add pt_col add (pt_row - "1"))
  115.                {
  116.                   nextFrame();
  117.                }
  118.                vector_y = - vector_y;
  119.                ball_yB = eval("ball_y" add n);
  120.                ball_xB = eval("ball_x" add n);
  121.                d = noOfpts;
  122.             }
  123.             else if((isVisible2 == "1" or isVisible2 == "2" or isVisible2 == "3") and eval("ball_x" add n) >= L_collision_line)
  124.             {
  125.                tellTarget("/soundFX")
  126.                {
  127.                   gotoAndStop("hitBrick");
  128.                   play();
  129.                }
  130.                brickNo = pt_col + "1" add (pt_row - "1");
  131.                tellTarget("/brick" add (pt_col + "1") add (pt_row - "1"))
  132.                {
  133.                   nextFrame();
  134.                }
  135.                vector_y = - vector_y;
  136.                ball_yB = eval("ball_y" add n);
  137.                ball_xB = eval("ball_x" add n);
  138.                d = noOfpts;
  139.             }
  140.          }
  141.          if(eval("ball_x" add n) == wall_collision_line)
  142.          {
  143.             tellTarget("/soundFX")
  144.             {
  145.                gotoAndStop("hit");
  146.                play();
  147.             }
  148.             score += addWallScore;
  149.             vector_x = - vector_x;
  150.             ball_xB = eval("ball_x" add n);
  151.             ball_yB = eval("ball_y" add n);
  152.             d = noOfpts;
  153.          }
  154.          else if(eval("ball_x" add n) == L_collision_line)
  155.          {
  156.             isVisible1 = getProperty("/brick" add (pt_col + "1") add pt_row, _currentframe);
  157.             isVisible2 = getProperty("/brick" add (pt_col + "1") add (pt_row - "1"), _currentframe);
  158.             if(isVisible1 == "1" or isVisible1 == "2" or isVisible1 == "3")
  159.             {
  160.                tellTarget("/soundFX")
  161.                {
  162.                   gotoAndStop("hitBrick");
  163.                   play();
  164.                }
  165.                brickNo = pt_col + "1" add pt_row;
  166.                tellTarget("/brick" add (pt_col + "1") add pt_row)
  167.                {
  168.                   nextFrame();
  169.                }
  170.                vector_x = - vector_x;
  171.                ball_xB = eval("ball_x" add n);
  172.                ball_yB = eval("ball_y" add n);
  173.                d = noOfpts;
  174.             }
  175.             else if((isVisible2 == "1" or isVisible2 == "2" or isVisible2 == "3") and B_collision_line >= eval("ball_y" add n))
  176.             {
  177.                tellTarget("/soundFX")
  178.                {
  179.                   gotoAndStop("hitBrick");
  180.                   play();
  181.                }
  182.                brickNo = pt_col + "1" add (pt_row - "1");
  183.                tellTarget("/brick" add (pt_col + "1") add (pt_row - "1"))
  184.                {
  185.                   nextFrame();
  186.                }
  187.                vector_x = - vector_x;
  188.                ball_xB = eval("ball_x" add n);
  189.                ball_yB = eval("ball_y" add n);
  190.                d = noOfpts;
  191.             }
  192.          }
  193.          n = noOfpts;
  194.       }
  195.       n += "1";
  196.    }
  197.    d += "1";
  198. }
  199.