This week I finalized all the necessary mechanics of our game. Now the entire game loop works: the player chooses a song in the menu screen, dances to that song, saves their high score if they placed in the score board, and then returns to the menu screen where they can select the next song to play.
In order to accomplish that, I first fixed the keyboard scaling in the high score screen (if you refer to my last week’s report, you can see the keyboard keys were out of place) and implemented the submit key. Now once a player inputs their name using the keyboard, they can choose “submit” and it will save their score on the high score file for that song. When the player sees that song again in the menu screen, their high score will appear on the high score table. We also decided, for the sake of simplicity, to only have five buttons in our mat. To accommodate for this, instead of using a sixth button for deleting characters, I added a delete key opposite to the submit key. Below is a progression of screens that illustrates how an empty high score table (meaning this song was never played before) would change after someone played the song.
The high score is saved to a file, so the next time I run the game, my high score will still be saved.
After finishing the save function, I changed how the text inside the grey rectangles is drawn to make sure it matched the screen resolution. Before, they were drawn to fixed x and y coordinates, so they were not flexible to different screen sizes. I don’t have a picture of how they were before I corrected them, but the correct scaling can be seen on the two menu screens above. I believe that now every graphical component in the game should scale properly to any screen size.
Finally, the last thing I did for the software this week was adding the pause menu interface. Now, when the player pauses in the pause screen, a pause menu pops up, explaining what each arrow will do if they step on them.
Other than working on the game, this week I also helped Tushhar with soldering wires onto our FSRs to build our mat. I accomplished all the goals I had for this week.
For the upcoming week, my individual work will be adding some flare to the game and setting up our Raspberry Pi. By flare I mean some simple animations that will play when the player steps on arrow and the ability to have more than five songs. We planned to have two different animations that will pop up: a little explosion where the arrow is located and a text indicating how well the player scored. These are not required for the game, but will improve the overall experience. Regarding the five song limitation, our game is currently hard coded to display five songs in the menu; I want to change that so that players can add however many songs they want. Lastly, I will setup our RPi because I’m sure an issue or two will arise, and I would love to have our demo use the RPi instead of a laptop (that was our original intention anyway).