Part 2
Creating a New Laser Shot (con't)
If the length of the (x) side of our right triangle is greater than the length of the (y) side, the shot must be more horizontal than vertical. We set it to some value... oh ... say ... "shotspeed". This is a convenient variable to be able to control. "xsign" keeps track of whether the shot should travel left (-) or right (+). To set the other value, we set it as a percentage of "shotspeed". Since we know (x) is the longer value, (y)/(x) is the correct relationship to use to tell what length (y) should be.
Comment: shot is more horizontal than vertical Set Variable: "../shot"&shotname&":xmov" = ..:shotspeed*xsign Set Variable: "../shot"&shotname&":ymov" = ..:shotspeed*(abs_mouse_y/abs_mouse_x)*ysign Else Comment: shot is more vertical than horizontal Set Variable: "../shot"&shotname&":ymov" = ..:shotspeed*ysign Set Variable: "../shot"&shotname&":xmov" = ..:shotspeed*(abs_mouse_x/abs_mouse_y)*xsign End If

Now we set the final stage for the little laser shot to live out its life. We rotate the laser shot to match the rotation of the gun, and we tell it to physically start itself out at the center of the gun. From now on, the shot will control itself (the shot is currently programmed to keep moving until it moves off the edge of the screen.)
Set Property ("../shot"&shotname, Rotation) = angle
 Set Property ("../shot"&shotname, X Position) = gunx
 Set Property ("../shot"&shotname, Y Position) = guny
 End If

The Laser Shot

The laser shot moves itself across the screen from its starting point, using the (xmov) and (ymov) variables that the gun set in it when it was created. In this case, there is no collision checking at all. (The next tutorial "Laser Collision Checking" will deal with this)

The laser shot will cease to exist once it moves off the screen. You do this to keep the amount of moving objects as few as possible. Remove everything as soon as you can and your game will run more smoothly. In this case, we enter some actual numbers (the movie is 350x650 pixels .... see Modify > Movie in the Flash menubar. If you chance your movie size, be sure to reflect that here in these numbers.

The Laser Shot asks "Where am I?"
Set Variable: "my_x" = GetProperty("",_x)
 Set Variable: "my_y" = GetProperty("",_y)

The Laser Shot asks "Am I off the screen?"
If (my_y>(350) or my_y<(0) or my_x>(650) or my_x<(0))

If yes, it self-terminates.
Remove Movie Clip ("")
 Else

If no, the Laser Shot continues its journey.
Set Property ("", X Position) = my_x+xmov
   Set Property ("", Y Position) = my_y+ymov
 End If

And lives happily ever after. Now that you have understood the theory behind detecting the mouse angle and created the gun that can track its target.