In this tutorial, I’ll cover adding physics for drop targets that creates more realistic behavior.  It allows the ball to ‘move’ through the target enabling the ability to score more than one target with a well placed shot.  Implementing this code is very similar to the rubber dampeners covered in a previous post and requires an update to some of the existing code.

Start by creating your drop target.  This method requires a second drop target created in the same location as the first, but 1 vp unit wider and 5 vp units thinner.  This second drop target is used to prevent ‘side’ hits from dropping the target.  Only hits to the face of the target should cause a drop.  You will need to make sure you drop and raise this second target along with the original in your script.

Next we’ll add all the targets with the same orientation to a collection.  For the purposes of this tutorial, we’ll call the collection dDropTargetsR.  Next we’ll add the following code to our script (make sure the collection is set to fire for hit events).

Drop Target Functions

A couple of notes.

The following line is used to grab the orientation of the drop targets from one of the targets in the target bank.

DropsR.angle = DropBall15.Orientation

Setting the mass determines how much resistance the drop target will provide on the ball.  It should usually be a value less than the mass of the ball if you want the ball to pass through the target.  However, you may set it higher than the mass of the ball to kick the ball back without passing through the target.  I recommend a low value like 0.5, but there are some instances where you may want to increase this to slow the ball down.

DropsR.mass = 0.5

These functions contain and update corTracker function.  This updated code is backward compatible with the rubber dampening functions, so it’s safe to replace the old function in your existing tables.  You will also need to add a new timer in the editor called “RDampen”.  Enable it with an interval of 1.  Add the following to your script if you’ve not already add cor.update for rubber dampeners:

Sub RDampen_Timer()
Cor.Update
End Sub

 

I’ve included Big Shot here with this code implemented.

Big Shot (Gottlieb 1974) DT

 

16 Comments
  1. bord 1 week ago

    Like manna from heaven.

    Thank you.

  2. randr 1 week ago

    Amazing stuff Bill! Very much appreciated.

  3. Thalamus 1 week ago

    I’m sure that this is going to become yet another leap for VP in the right direction and I’m happy to see you posting this after a small hiatus. Downloading Big Shot now, planning to play it tomorrow with beers. ;-)

  4. bord 1 week ago

    I have tested this in a couple games and it is bananas. Seeing more than one target drop when you hit directly between two targets is a revelation. Please tell me you’re privately sharing this with the devs. Impossible to see how the rubber dampening script and now this shouldn’t be built into VP. Once you play one game with it you don’t want to play another game without it.

  5. bord 1 week ago

    In an alternate universe VPX 10.7 beta lasted two weeks and consisted of 10.6 plus the following being written into the program:

    -roth’s rubber dampening script
    -roth’s saucer/kicker script
    -roth’s drop target script
    -roth’s flipper trajectory script

    :mail:

  6. Author
    rothbauerw 1 week ago

    Fuzzel did ask for help to build in the drop target stuff. I just haven’t been able to get to it. Now that I’ve written this part, hopefully I can bring it back to fuzzel and get it built into 10.7.

    That said, I do think this will need a little refinement though. Just watching some videos of Flash Gordon and the targets behave a little differently there. I think this can still be a good and better approximation, but some enhancements may also be in order. Would love others thoughts.

  7. BorgDog 1 week ago

    Have you built in the classic Bally drop target reject? 😁

  8. Author
    rothbauerw 1 week ago

    No, but I’d love some video of it if you have it. I think that’s related to the differing behavior I’m seeing on the Flash Gordon videos. I assume you’re referring to a hard strike where the target doesn’t drop?

  9. BorgDog 1 week ago

    Took me a few games, but got a nice 4 drop sweep on Big Shot. Excellent work. :good: :rose: :heart: :yes:

    would love to see this and all your other stuff built into vp7 as @bord says.

  10. BorgDog 1 week ago

    Yup, the hard strike no drop issue. classic Sterns have that issue a lot too, especially with replacement targets (I think they are less stiff or something). If I can track down some video of it I’ll link it.

  11. bord 1 week ago

    The thinner, non-hooded classic Stern drops fall if you talk too loud. They were phased out halfway through Meteor production and there aren’t any replacements for sale, so you see lots of the harder to drop ones Borg is referring to.

  12. cyberpez 1 week ago

    Does this work for stand up targets also? hmmmmm

    I mean they should work the same (hitting multiple….) they just don’t drop

    • Author
      rothbauerw 1 week ago

      Currently, no, it won’t work the same for standup’s because they don’t drop out of the way for the ball to pass through. But maybe with some enhancements it could.

      I think we need to create something that allows the ball to partially pass through the target (i.e., the target bends backwards after it’s hit before propelling the ball forward). It would make things a little more complex, but I’m thinking maybe we need another target placed behind the original so it can pass through the first and be repelled by the second. This could theoretically allow double hits on stand ups and might also better simulate the drop target behavior I’m seeing on Flash Gordon. It should then also be possible to add in a drop target reject.

  13. cyberpez 1 week ago

    the first could be a drop, to trigger the bending and getting out of the way? then a stand up to actually trigger the hit

  14. Author
    rothbauerw 1 week ago

    Just a quick note for anyone trying to implement this. I think you need to make the targets uncollidable when they drop and collidable again when they raise for this to work or the ball will bounce off the target despite this code. I’ll add to the tutorial above when I have time.

  15. Author
    rothbauerw 1 week ago

    Another note of caution. The second target will drop when hit. This can be prevented by setting a very high Hit Threshold on the second target (1000?) or by using a wall instead.

Leave a reply

©2020 VPinBall.com

Log in with your credentials

or    

Forgot your details?

Create Account

The Vpinball app

FREE
VIEW