Search Tutorials
Creating a New Laer Shot (cont) 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 IfNow 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|