Projectile Predictability

  1. Here is the scenario I am faced with:

    I am developing a game that involves a main ship (the player) scrolling forward through a level firing at other ships that fly by.

    There is a particular weapon the player has that will shoot a specific straight-moving projectile at a moving target. Since this moving projectile is slower than the ships move, the projectile needs to be fired in a way that it will "intersect" with the target at some point, thus hitting it no matter how fast it's going.

    Instead of firing my projectile at the target's current location (which provides the target a way to easily dodge the projectile), the projectile needs to account the velocity of its target and fire at an angle that would cause it to "meet" the ship at a specific location in space.

    I hope I've been detailed enough. I've been losing hair trying to visualize a formula for this. Thanks!
     
  2. jcsd
  3. russ_watters

    Staff: Mentor

    In navigation, it is called a "maneuvering board" (you can google that). Draw a picture and use vectors.

    First, draw a heads-up view from the projectile, with one vector directly forward, indicating its speed. Draw a second vector from the same origin indicating the true speed and direction of the target ship. Compute the 3rd leg of the triangle for the relative course and speed of the ship.

    Then draw a heads-up view of the location of the projectile and target. The projectile goes in the middle and the target is whatever distance and direction you see it in. Use the speed and direction you calculated in the first part and find where that intersects with the speed vector for the projectile, which will then give you the direction the projectile needs to go.

    It isn't an easy problem the first time you see it, so you may need to find yourself a good tutorial on maneuvering boards and learn it.
     
  4. I was not able to find anything on this via google...
     
  5. russ_watters

    Staff: Mentor

Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?