- Structured the code based on the course's example game
- The game loop works and the game is rendered to the player
- Added 1 playable level
- Added physics
- Player can fall
- Player can collide with the map from any direction
- Added player-controlled movement
- Player can move left and right
- Player can jump
- Tested that the player can move left and right
- All rendering refactored into its own Renderer class
- For scaling and rendering content to the display
- Player movement refactored
- split into many smaller methods
- Pylint and autopep added
- With respective tasks
- Test coverage rising
- Added tests for player movement
- Started implementing UI
- Added a Button class to implement buttons with different on-click functions
- Added a menu class mainly to host buttons
- Added a MenuLoop class to loop the menu
- Currently very similar to the GameLoop class
- The player can now die by falling
- Currently this just throws the player back to the start menu
- Refactor GameLoop
- Instead of a single level, takes a list of levels as a parameter
- Save game results into database
- Completely refactor UI
- A single MenuLoop hosts, displays and updates a list of menus instead of a single menu
- A DataBase class added
- game results are stored here
- A config file added
- Currently display height can be set here
- Support dotenv in the future
- Added and updated tests
- Level completion works
- Player can progress from level to level
- 2 new levels added
- A working UI
- Added multiple different menus
- Navigation between menus works with buttons
- Game result affects menu state
- Menus can display data from database
- Moved to using native resolution for menus
- No more scaled and pixelated menus
- Everything in the game and in menus should scale to any display size
- Progress to the next level by reaching the flag on each level
- Refactor main.py and make an UI class
- The main.py file used to have all the code responsible for constructing the UI
- i.e. making the buttons, making the menus, making the menu loop
- As the UI grew so did the amount of code in main.py
- Added an UI class to address this
- The purpose of the UI class is to construct a menu loop from the ui components (buttons, menus)
- Now main.py can simply use the UI class to construct the UI
- The main.py file used to have all the code responsible for constructing the UI
- Added tests for the game loop class
- Added some abstraction classes to make this easier
- A lot of improvements to the documentation
- Docstrings added
- Pre-existing documentation updated
- Added a proper game won screen for when the player passes all levels
- To what screen the player gets sent after the game is decided based on game outcome
- Complete refactor of project structure
- Divided code into sensible packages
- Add dotenv and pytest-dotenv
- Support for configuration with .env added
- Refactored the code to utilize dotenv
- Refactored the tests to utilize pytest-dotenv
- Heaps of work on documentation
- All existing documentation updated
- New documentation added
- Added a button for resetting the database from the UI