Well, I was all revved up to write up a post about how I had completed the next ts-breakout exercise this week, only to discover at the last moment that I actually wasn’t finished at all and had forgotten about some aspects of it. To coin a phrase, “Whoops”.
The goal (as I remembered it) was simply to alter the mechanics of the game to give it a more retro feel. Specifically, the idea was to make the ball only able to remove one brick at a time; after colliding with a brick (destroying or just damaging it), collisions with other bricks would do nothing until the ball collided with either the paddle or the top of screen.
The idea behind this was to make it harder to burrow a path up to the top of the screen, making it all the more worthwhile when you actually get to that point.
To implement it I just used a simple Boolean variable to determine if the ball could damage a brick or not, which only gets reset on level reset, touching the top of the screen, or reflecting from the paddle. I didn’t commit the code because I don’t intend to keep that particular change.
After some play testing I decided that it didn’t fit it with my overall goal for the game, particularly with the idea of bricks that take more than a single hit to destroy; it seems to make things more tedious than it should.
So it wasn’t until I went to mark the exercise as completed that I realized that touching the top of the screen should also have kicked up the ball speed to maximum and made the paddle shorter. The first of those two is easy to accomplish but the other required tweaking the graphic assets of the paddle.
Even though I don’t expect to keep the code overall, the idea of altering the size of the paddle was something that I had pondered, so I’m going to do a bit of a reset on that exercise and continue it into next week.
Thus an important lesson was learned regarding having multiple lists of the same tasks in different places. In retrospect it would have been better to flesh out all of the details in the local task list too. Now I know for the next project.