Menacing Bloons

In this chapter, we'll add some bloons for you to pop. We will use the Pythagorean Theorem to measure distances and tell whether your big spiky ball is touching a bloon.

Add Bloons

Let's lay down some bloons to pop.

Create a new layer called Bloons. Arrange it underneath the Big Spiky Ball layer.

Now add various bloons all around the level.

Various bloons around the level

Script Bloons

Add a new script to one of your Bloons. Edit the script, and name it something useful like "Bloon".

We're going to measure the distance to the big spiky ball. If it's less than a certain amount, this bloon will pop.

Get Big Spiky Ball

First, we will need a reference to the big spiky ball.

  • Create a When the level starts event block.
    • Add a new property called ball using a Set instance ball property block.
    • Set ball to a first instance by tag "Ball" sensing block.

Why use When the level starts instead of When created, as we did for the big spiky ball? Well, we don't know which order game objects will be created. If we tried to get the ball before it was created, our code would fail. We start the level only when everything has been properly created. This is a good time to look for things, because we know they must exist.

Remember we said the tag "Ball" was important? This is where we use the tag to find the ball. If it's misspelled, our code will fail. Be sure to use the same capitalization.

Get XY Distances

Now we need to measure the distances between the big spiky ball and the bloon in the X and Y axes.

Luckily, we know the X and Y positions of each.

  • Create a Constantly event block.
    • Add a new variable called dx (it means "difference in X") using a Set number dx variable block.
    • Create a couple of loose x position of myself blocks.
      • Replace one myself with ball.
    • Set dx to x position of ball - x position of myself.
    • Do the same with dy, making sure to change to y position in both blocks.

Blocks measuring dx and dy

We now know the X and Y distances. But how do we get the straight line distance? We use Pythagoras.

Get Hypotenuse Distance

The shortest distance between two points is a straight line. The length of that line can be derived from the X and Y sides of a right-angle triangle, using the Pythagorean Theorem.

  • Still in the Constantly event block...
  • Add a new variable called distance using a Set number distance variable block.
    • Add a square root operator block.
    • Add a + operator block.
      • In the first field of the addition block, add a ^ operator block, and set its second field to 2. (^ means "to the power of", so ^2 means "squared".)
      • Set the first field to dx (thus "dx squared").
      • Duplicate the power block and its contents. Change dx to dy. Add this to the addition operator block.

Blocks calculating distance

That's it! This is the Pythagorean Theorem in action. Now you know the distance.

Check for Poppage

Finally, if the distance is short enough, we know the big spiky ball is close to the bloon. Bloons pop when they're close to big spiky balls.

What's a good distance? Today we'll use the width of the bloon. It's a decent approximation.

We can assume the bloon and the big spiky ball are of similar radius. When two objects touch, the distance between centers is equal to the two radii added together. If they're identical, two radii equals the diameter - or the width.

Let's check this now.

  • Still in the Constantly event block...
  • Add an if... do control flow block.
    • Set the condition to distance < Actual width of myself.
    • Set the do to the destroy myself control flow block.

Blocks checking for collision

Double check your work - you might be finished.

Script The Other Bloons

Don't forget to apply your new script to all the other bloons! Select it in the sidebar, and click or drag over all the other bloons.

Victory

Save and play your game. Are your bloons popping? If so, congratulations! You've successfully used the Pythagorean Theorem to measure distances, and used that to make game logic decisions.

If things still aren't working, go back and check your scripts. You're nearly there!

To see more of the bloons, check out our pro resource Bloons Trigonometry Defense. You'll learn about trigonometry, use Pythagoras, and write your own tower defense game. With monkeys.

You can also try your hand at 4 extra challenges. Just keep reading for more advanced activities...

results matching ""

    No results matching ""