With the core functionality already complete, I decided to start thinking about visual manipulations like color, inversion, and rotation. The color feature was the simplest to implement. I added a color picker that allows users to change the fill color of the blobs. To maintain visual contrast, I programmed the background to always shift to the opposite color, so that the blobs remain clearly visible when any color is chosen. From there, I added an inversion effect such that adjacent tiles would swap blob and background colors, meaning the background of one tile blends seamlessly into the blob of the next. The third feature, rotation, allows portions of the tile grid to rotate 90, 180, or 270 degrees when a specific key is pressed.
The five possible changes are:
- Change the size of the tile grid
- Change the tile pattern
- Change the blob/background color
- Toggle the inversion effect
- Toggle the rotation effect