home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Acao / BugTime.swf / scripts / DefineSprite_164 / frame_2 / DoAction.as
Encoding:
Text File  |  2005-10-04  |  1.2 KB  |  63 lines

  1. gunx = _X;
  2. guny = _Y;
  3. sx = getProperty("../gun", _X);
  4. sy = getProperty("../gun", _Y);
  5. mouse_x = sx - gunx;
  6. mouse_y = sy - guny;
  7. if(Number(mouse_x) < 0)
  8. {
  9.    abs_mouse_x = Number(mouse_x) + Number(mouse_x * -2);
  10.    xsign = -1;
  11. }
  12. else
  13. {
  14.    abs_mouse_x = mouse_x;
  15.    xsign = 1;
  16. }
  17. if(Number(mouse_y) < 0)
  18. {
  19.    abs_mouse_y = Number(mouse_y) + Number(mouse_y * -2);
  20.    ysign = -1;
  21. }
  22. else
  23. {
  24.    abs_mouse_y = mouse_y;
  25.    ysign = 1;
  26. }
  27. input = Number(abs_mouse_x * abs_mouse_x) + Number(abs_mouse_y * abs_mouse_y);
  28. call("sqrt");
  29. hyp = output;
  30. sin_theta = abs_mouse_y / hyp;
  31. counter = 0;
  32. found = 0;
  33. if(Number(mouse_x) < Number(-2) or Number(mouse_x) > 0)
  34. {
  35.    while(!found)
  36.    {
  37.       if(Number(eval("..:sine_lookup_table").substr(Number(counter * 6) + 1,5)) <= Number(sin_theta))
  38.       {
  39.          angle = counter;
  40.       }
  41.       else
  42.       {
  43.          found = 1;
  44.       }
  45.       counter = Number(counter) + 1;
  46.    }
  47.    if(Number(sx) < Number(gunx))
  48.    {
  49.       angle = Number(90 - angle) + 90;
  50.    }
  51.    if(Number(sy) > Number(guny))
  52.    {
  53.       angle = Number(angle) + 180;
  54.    }
  55.    else
  56.    {
  57.       angle = Number(90 - angle) + 90;
  58.    }
  59.    _rotation = angle;
  60. }
  61. divx = gunx - sx;
  62. divy = guny - sy;
  63.