home *** CD-ROM | disk | FTP | other *** search
- gunx = _X;
- guny = _Y;
- sx = getProperty("../ship", _X);
- sy = getProperty("../ship", _Y);
- mouse_x = sx - gunx;
- mouse_y = sy - guny;
- if(Number(mouse_x) < 0)
- {
- abs_mouse_x = Number(mouse_x) + Number(mouse_x * -2);
- xsign = -1;
- }
- else
- {
- abs_mouse_x = mouse_x;
- xsign = 1;
- }
- if(Number(mouse_y) < 0)
- {
- abs_mouse_y = Number(mouse_y) + Number(mouse_y * -2);
- ysign = -1;
- }
- else
- {
- abs_mouse_y = mouse_y;
- ysign = 1;
- }
- input = Number(abs_mouse_x * abs_mouse_x) + Number(abs_mouse_y * abs_mouse_y);
- call("sqrt");
- hyp = output;
- sin_theta = abs_mouse_y / hyp;
- counter = 0;
- found = 0;
- while(!found)
- {
- if(Number(eval("..:sine_lookup_table").substr(Number(counter * 6) + 1,5)) <= Number(sin_theta))
- {
- angle = counter;
- }
- else
- {
- found = 1;
- }
- counter = Number(counter) + 1;
- }
- if(Number(sx) < Number(gunx))
- {
- angle = Number(90 - angle) + 90;
- }
- if(Number(sy) > Number(guny))
- {
- angle = Number(angle) + 180;
- }
- else
- {
- angle = Number(90 - angle) + 90;
- }
- _rotation = angle;
- divx = gunx - sx;
- divy = guny - sy;
- if(Number(shooting) == 0)
- {
- if(Number(divx) > Number(eval("/:threshold")))
- {
- _X = _X - eval("/:playerspeed");
- }
- else if(Number(divx) < Number(- eval("/:threshold")))
- {
- _X = Number(_X) + Number(eval("/:playerspeed"));
- }
- if(Number(divy) > Number(eval("/:threshold")))
- {
- _Y = _Y - eval("/:playerspeed");
- }
- else if(Number(divy) < Number(- eval("/:threshold")))
- {
- _Y = Number(_Y) + Number(eval("/:playerspeed"));
- }
- }
- call("hittest");
-