January 21, 2015

#30daydeveloper - Day 17 - Spawn Animations

Hello! If this is your first time reading about my thirty day developer challenge, click here to go to the first post!

Wow turn rates were really difficult. Who would've thought that I should've paid more attention in high school trigonometry class? But I managed to get turn rates working after a good amount of whiteboarding.

The problem essentially was the way angles were being calculated. The ball may be facing -175 degrees, but if the player was 175 degrees, then the logical way to turn was counter-clockwise, but due to the way I was calculating the angle differences, the ball would turn almost a complete 360 degree turn towards the player.

My whiteboard scribbling
Therefore, I had to calculate out each specific scenario of ball versus player angles. What quadrant are they in? Are they negative or positive? Which direction should I turn towards to get the correct angle fastest?

In addition to turn rates, I also implemented spawn animations. Now the balls grow in size before beginning to target the player. Once the ball reaches it's maximum size, it starts towards the player. If the angle towards the player changes, the ball comes to a stop before recalculating the new angle. You can also click on the ball to force an angle change. This mechanic combined with the ability to stop time should allow players to launch enemy balls into the correct corner.

An update wouldn't be complete unless there was a change to the scoring system, right? Now balls don't disappear when they collide with a different colored corner. They just simply go through. Whereas if the corner and the ball color are the same, then the ball's current net worth is added to the player score. In addition, every time a ball collides with another ball, their respective net worths go up. This way, the player has incentive to bounce balls against each other before shooting them into a corner for maximum points.


On a side note, my lower back really hurts.

No comments:

Post a Comment